FFmpeg中使用libx264的碼率控制
阿新 • • 發佈:2018-10-01
con 文件 兩種 參數 child 開發者 crf lan children
兩種碼率控制模式:crf模式和ABR模式
一、crf模式
Constant Rate Factor(crf)優點是提供了最大的壓縮效率,每一幀可以按照要求的視頻質量去決定它需要的比特數。缺點是,不能計算規定時間的視頻文件大小,或者準確控制輸出碼率。
1. 選擇一個crf值
crf值是視頻質量的量化值,取值範圍0~51,其中0為無損模式,23為默認值,51代表最差質量。crf值加6,輸出碼率大概減少一半;
2. 選擇一個預設(preset)
preset似的編碼器能夠在編碼速度和壓縮率之間做出權衡。也就是說,選擇越慢的編碼速度,壓縮率就會越高。如果要求編碼速度更快,一般選擇ultrafast。
開發者還可以基於輸入內容的獨特性通過使用--tune來改變參數設置。如果沒有特殊要求,一般選擇zerolantency。
av_opt_set(pCodecCtx->priv_data, "preset", "ultrafast", 0); av_opt_set(pCodecCtx->priv_data, "crf", "20", AV_OPT_SEARCH_CHILDREN);
二、ABR模式
Average Bit Rate(ABR)模式更註重碼率控制,適合在一段時間內生成固定大小的視頻,而不太註重視頻質量的場景。
FFmpeg中使用libx264的碼率控制