ffmpeg 常用實(shí)戰(zhàn)參數(shù)

ffmpeg 常用參數(shù)
-analyzeduration 分析源目標(biāo)的最大時長,毫秒
-re 按照播放的速率去讀取源文件,放在-i之前
-listen 對-i的源進(jìn)行監(jiān)聽,例如 -listen 1 -i tcp://127.0.0.1:1234
-stream_loop 循環(huán)讀取,一般用于直播流的模擬, 例如-stream_loop -1
-c:v video codec
-c:a audio codec
-b:v 視頻碼流
-b:a 音頻碼流
-profile:v 視頻的profile 例如 baseline high 等
-pix_fmt 像素格式 ,例如-pix_fmt yuv420p,瀏覽器一般只能播 yuv420p及以下的
-vf 一些濾鏡 ;例如 -vf drawtext , 可以利用drawtext實(shí)時的寫入視頻時間,drawtext="text='%{localtime:%X}':x=0:y=0:fontsize=30:fontcolor=white"
-preset 和 -tune 屬于模版試的配置,preset 例如ultrafast veryfast slow等 ,tune 有film,animation等等
-x264-params 設(shè)置x264的參數(shù),例如keyint=29:scenecut=0
-r 幀率
-maxrate 最大速率,目前沒有十分搞清楚,可以配合 -bufsize使用,
-f 輸出格式 flv、mp4等

推流地址可支持
tcp://ip:port
rtmp://ip:port
等等

案例1:抓取屏幕linux:
ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 -c:v libx264 -preset superfast -tune zerolatency -b:v 800k -maxrate 800k -bufsize 800k -vf "scale=720:-1" -g 60 -f flv rtmp://rtmp

案例2:通過設(shè)定gop減少緩沖時間
通過ffmpeg,讀取攝像頭實(shí)時流,推送至支持webrtc直播的srs服務(wù)器,發(fā)現(xiàn)啟動播放非常慢,要10-15秒。
經(jīng)過參數(shù)查看發(fā)現(xiàn),該攝像頭為特規(guī)設(shè)備,幀率為5. 而webrtc播放器應(yīng)該是要攢夠他認(rèn)為足夠的關(guān)鍵幀信息才開始播放,而這個閾值可能被設(shè)定成一般的常用數(shù)字,而且不太清楚如何修改,另外的辦法就是通過設(shè)定ffmpeg的GOP參數(shù),強(qiáng)制關(guān)鍵幀間隔。
通過設(shè)定ffmpeg -g 10, webrtc播放器順利在2秒內(nèi)起播。

案例3:針對mp4的meta信息的提前
-movflags faststart

附ffmpeg linux下編譯選項(xiàng)
./configure --bindir=/ffmpeg/build/bin --incdir=/ffmpeg/build/include/ --libdir=/ffmpeg/build/lib/ --docdir=/ffmpeg/build/doc --enable-static --enable-shared --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfdk-aac --enable-nonfree --enable-libopus

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容