轉碼命令示例
$ 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 並行編碼的類型;一般使用幀級並行處理。