ffmpeg常用轉碼參數解析

轉碼命令示例

$ ffmpeg -i input.flv -vcodec h264 -s 960x540 -pix_fmt yuv420p -b 800k -r 25.0 -g 50 /
–acodec aac -ab 64k –ac 2 -ar 44100 -profile:v high -level:v 3.1 -subq 5 -me_method /
umh -me_range 8 -refs 8 -bf 3 -b_strategy 1 -trellis 2 -aq-mode 1 -aq-strength 0.5 /
 -qcomp 0.5 -deblock 1:1 -threads auto -thread_type slice+frame -f flv output.flv

轉碼參數分析

基本參數

-i 文件輸入選項

-vcodec 在-i前時表示解碼時用到的解碼器,在-i後面表示編碼時用的編碼器,前後可同時出現

-s 表示編碼輸出的分辨率,如1280x720等

-aspect 表示寬高比,可以寫16:9、4:3這種,也可以寫小數,比如1.3333

-pix_fmt 表示編碼像素格式,如yuv420p等

-b 表示視頻的碼率,與-b:v含義一樣,單位爲bps,可寫成如“-b:v 500k”

-r 表示幀率,如25.0等

-g 表示gop的大小,一般可設爲幀率的2倍

-acodec 表示音頻編碼器,如aac等

-ab 表示音頻的碼率,與-b:a含義一樣,與視頻一樣單位爲bps,如“-b:a 128k”等

-ac 表示音頻的通道數,即單聲道雙聲道等

-ar 表示音頻的採樣率,如44100、48000等

-profile:v 表示視頻編碼時用的profile,質量由低到高有base、main、high等選項

-f 表示輸出的封裝格式,如mp4、flv、mov等

進階參數

subq 亞像素運動估計複雜度;調高此值,理論上可提升畫質和壓縮比,但影響編碼速率;設置爲5,即剛好不是用RDO;

me_method 全像素運動預測模式;調高此值,理論上可提升畫質和壓縮比,但影響編碼速率;設置爲hex,可較好的平衡編碼速率與質量;

me_range 最大運動搜索範圍,單位像素;調高此值,理論上可提升畫質和壓縮比,但影響編碼速率;當me_method值爲umh以下時(不含umh),此時,該值有效範圍爲4至16;當me_method值爲umh以上時(含umh),此值可設置更大值,但影響編碼速率;

refs 最大參考幀隊列長度,即DPB大小;調高此值,理論上可提升畫質和壓縮比,但影響編碼速率; level爲3.1時,1280x720的片源DPB最大值爲5,level爲4.1時,1280x720的片源DPB最大值爲9,1920x1080的片源DPB最大值爲4;

bf 最大連續B幀數;調高此值,理論上可提升壓縮比,但影響編碼速率;一般在使用幀級並行編碼時,邏輯CPU核數 = bf + 1;

b_strategy B幀生成策略,控制P幀與B幀的決策;調高此值,更精確的判定是否使用B幀,但影響編碼速率;設置爲1,可較好的平衡編碼速率與壓縮比;

trellis 網格化量化;調高此值,理論上可提升畫質和壓縮比,但影響編碼速率;設置爲1,可較好的平衡編碼速率與壓縮比;

aq-mode 自適應量化模式,將位元合理分配給圖像各個部分的策略;調高此值,理論上可提升畫質,但影響編碼速率;設置爲1,可較好的平衡編碼速率與壓縮比;

aq-strength 自適應量化強度,即將位元分配給圖像低頻部分的傾向性;調低此值,理論上可增加圖像低頻部分的碼率,有效範圍0至2.0;

qcomp 量化曲線係數;調低此值,碼率更平穩,調高此值,量化的變化率更加穩定,有效範圍0至1.0;

deblock 啓用去方塊濾波,可有效降低方塊效應,但會使畫面較模糊,一般範圍爲-3至3;

threads 編碼線程數;一般設爲auto,由系統判定,也可設置爲當前邏輯CPU核數的1.5倍;

thread_type 並行編碼的類型;一般使用幀級並行處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章