1. 程式人生 > >FFmpeg中使用libx264的碼率控制

FFmpeg中使用libx264的碼率控制

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的碼率控制