FFmpeg-- H264編碼profile & level控制

前言

最近遇到了個別mp4視頻,在播放時只有聲音沒有畫面的問題。
經(jīng)過比對兩個視頻的頭信息,發(fā)現(xiàn)是因為使用的H264 High profile導(dǎo)致的,轉(zhuǎn)碼成H264 Main即可。

H264 Profile

H.264有四種畫質(zhì)級別,分別是baseline, extended, main, high:

  1. Baseline Profile:基本畫質(zhì)。支持I/P 幀,只支持無交錯(Progressive)和CAVLC;
  2. Extended profile:進階畫質(zhì)。支持I/P/B/SP/SI 幀,只支持無交錯(Progressive)和CAVLC;(用的少)
  3. Main profile:主流畫質(zhì)。提供I/P/B 幀,支持無交錯(Progressive)和交錯(Interlaced), 也支持CAVLC 和CABAC 的支持;
  4. High profile:高級畫質(zhì)。在main Profile 的基礎(chǔ)上增加了8x8內(nèi)部預(yù)測、自定義量化、 無損視頻編碼和更多的YUV 格式;

H.264 Baseline profile、Extended profile和Main profile都是針對8位樣本數(shù)據(jù)、4:2:0格式(YUV)的視頻序列。在相同配置情況下,High profile(HP)可以比Main profile(MP)降低10%的碼率。 根據(jù)應(yīng)用領(lǐng)域的不同,Baseline profile多應(yīng)用于實時通信領(lǐng)域,Main profile多應(yīng)用于流媒體領(lǐng)域,High profile則多應(yīng)用于廣電和存儲領(lǐng)域。

profile、Level 主要參數(shù):

參考FFmpeg-- H264編碼profile & level控制

蘋果的設(shè)備對不同profile的支持

蘋果的設(shè)備對不同profile的支持

ffmpeg如何控制profile&level

ffmpeg -i input.mp4 -profile:v main -level 4.0 output.mp4

從壓縮比例來說,baseline< main < high ,對于帶寬比較局限的在線視頻,可能會選擇high,但有些時候,做個小視頻,希望所有的設(shè)備基本都能解碼(有些低端設(shè)備或早期的設(shè)備只能解碼baseline),那就犧牲文件大小吧,用baseline。自己取舍吧!

參考鏈接

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

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