使用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實現自動化推拉流的腳本代碼