docker部署ffserver(docker-compose封裝)播放本地視訊以及推流案例
阿新 • • 發佈:2019-02-07
系統版本: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