1. 程式人生 > >docker部署ffserver(docker-compose封裝)播放本地視訊以及推流案例

docker部署ffserver(docker-compose封裝)播放本地視訊以及推流案例

系統版本:Centos7

部署成功後就一個想法:“差之毫釐謬以千里”。以供大家參考

注:要按照步驟來部署
FFserver是一個用於音訊和視訊流媒體伺服器

1.建立docker-compose.yml(在自己常用的目錄下方便管理執行)

------------------(配置開始)----------------------

vi docker-compose.yml

填寫如下配置檔案,esc :wq 儲存退出

ffserver:
  image: vimagick/ffserver
  ports:
    - "554:554"
    - "8090:8090"
  volumes:
    - ./ffserver.conf:/etc/ffserver.conf
    - ./data:/data
  restart: always

2.建立對映的ffserver配置檔案ffserver.conf

vi ffserver.conf

填寫如下配置內容

HTTPPort 8090
HTTPBindAddress 0.0.0.0

RTSPPort 554
RTSPBindAddress 0.0.0.0

MaxClients 100
MaxBandwidth 100000
CustomLog -

<Feed feed.ffm>
File /data/feed.ffm
</Feed>

<Stream video.mp4>
Format rtp
Feed feed.ffm
VideoCodec libx264
VideoFrameRate 24
VideoBitRate 100
VideoSize 640x480
#AVPresetVideo default
#AVPresetVideo baseline
AVOptionVideo flags +global_header
NoAudio
#AudioCodec libmp3lame
#AudioBitRate 32
#AudioChannels 2
#AudioSampleRate 22050
#AVOptionAudio flags +global_header
</Stream>

<Stream status.html>
Format status
</Stream>

<Stream test-sss.mp4>
Format rtp
File "/data/sss.mp4"
</Stream>

3.tree可以檢視當前目錄的目錄樹(沒有data目錄建立data目錄mkdir data)

tree
.
├── data
│   └── video.mp4
├── docker-compose.yml
└── ffserver.conf

需要推流的視訊放在data目錄下

4.執行剛才配置的docker-compose檔案

docker-compose up -d

5.VLC播放本地視訊vlc中輸入如下地址就可以播放stream中配置的本地視訊

rtsp://ip:554/test-sss.mp4

test-sss.mp4 是配置stream所起的名稱

5.1.ffmpeg推流

docker-compose exec ffserver ffmpeg -re -i video.mp4 http://localhost:8090/feed.ffm

5.2.如果想迴圈推流的話可以用如下配置

docker-compose exec ffserver ffmpeg -re -stream_loop -1 -i video.mp4 http://localhost:8090/feed.ffm

6.那麼到這一步就可以開啟客戶端(vlc)請求視訊流地址URL

vlc下輸入:ip是伺服器ip地址——如果不知道ipconfig查詢
http://ip:8090/video.rtsp
其他方式:
ffplay:
rtsp://easypi.info/video.mp4
firefox:
http://easypi.info:8090/status.html

輸入URL之後就會看到自己配置的視訊了

------------------(配置結束)----------------------
ffserver.conf配置檔案的引數意思,僅供參考:

HTTPPort 8090                       #繫結埠號 
BindAddress 0.0.0.0             #繫結ip 
MaxHTTPConnections 2000         #最大HTTP連線數 
MaxClients 1000                 #最大客戶端連線數 
MaxBandwidth 1000               #最大頻寬 
CustomLog -                     #日誌檔案,“-”為直接列印 
NoDaemon                        #預設全域性引數 
 
<Feed feed1.ffm>                #Feed:每一個輸入建立一個Feed 
    File data/feed1.ffm             #Feed快取檔案 
    FileMaxSize 10M               #快取檔案最大值 
    ACL allow 127.0.0.1             #允許寫入Feed的ip 
</Feed> 
 
#傳遞實時流
<Stream video.mp4>               #Stream:每一個廣播(轉換後的視訊流)的轉碼設定專案 
    Format rtp                      #視訊流格式 
    Feed feed1.ffm                  #視訊流的種子來源 
    VideoFrameRate 35              #視訊幀頻 
    VideoBitRate 128                #視訊位元率 
    VideoSize 160x80                #視訊幀大小 
    AVOptionVideo flags +global_header 
    AudioBitRate 24                 #音訊位元率 
    AudioChannels 1                 #音訊聲道 
    AudioSampleRate 44100 
    AVOptionAudio flags +global_header 
</Stream> 
  
<Stream stat.html>  #檢查伺服器狀態,ffserver啟動後,在web瀏覽器中輸入地址:http://localhost:8090/stat.html,若能看到 ffserver Status 說明成功啟動,通過內容可以看到在ffserver.conf配置的流資訊等內容           
Format status  
</Stream>

#已經存在的檔案而非實時流
File “myfile/testvideo/test.flv”
Format flv
#加入一個RTSP應用
File “myfile/testvideo/test.mpg”
Format rtp