1. 程式人生 > >利用ffmpeg進行視訊推拉流

利用ffmpeg進行視訊推拉流

使用FFMPEG命令列進行推拉流的操作

最新在公司實習,小組安排的技術需求第一階段,使用ffmpeg進行推拉流的處理以及自動化指令碼的編寫
在這裡記錄一下

ffmpeg工具去官網下載編譯即可(265格式需要自己寫相關程式碼並進行編譯)

首先是推流的指令

ffmpeg -re -i filename -r 40 -ss 0 -t 10 -c copy -f flv url

使用-re是限制ffmpeg的上傳幀率,如果在使用ffmpeg推流的時候一定要新增-re的選項,否則ffmpeg會按照自身能力進行最大幀率的上傳,就會導致流媒體伺服器處理能力受限或者拉流端處理能力有限導致各類問題

使用-i是必須有的,後面接要上傳的檔名字
使用-r是顯式設定上傳幀率,在使用-re的情況下預設25
使用-ss是設定從檔案的哪個時間點開始上傳,支援hh:mm:ss的格式
使用-t是設定上傳檔案的時間長度
使用-c表示音訊視訊編碼格式保持不變,不進行轉碼(也可以分別攜程-acodec -vcodec 後面接著要編碼的形式或者copy)
使用-f表示上傳時使用的檔案封裝格式,一般流媒體服務使用flv格式進行
最後一個url表示上傳的流媒體伺服器地址

接著是拉流的指令

ffmpeg -i url -c copy -f flv filename

拉流的指令就比較簡單,同樣也可以使用-ss -t等引數

需要注意的一點是,-ss既可以放在-i之前,也可以放在檔名的後面,但是建議放在檔名的後面,這樣會加快檔案讀取速度

下一篇文章列出使用python實現自動化推拉流的指令碼程式碼