ffmpeg CBR精准码流控制三个步骤
x264可以設置VBR和CBR的編碼模式,VBR為可變碼率,CBR為恒定碼率。盡管互聯網上VBR居多,但是CBR依然存在。
ffmpeg是通過-b:v來指定視頻碼率,但這個設定的是平均值,并不能夠很好的控制上下波動幅度。如果要控制波動,還需要控制最大碼率和最小碼率,即-b:v,maxrate,minrate。同時為了更好的控制編碼時的波動還可以設置編碼時的buffer大小,即設置-bufsize即可。buffer的設置并不是越小越好,而是恰到好處,如1Mbit/s,bufsize設置為50KB,可以很好的控制碼率波動。
下面就來分析一下這條命令行,具體如下。
● 設置B幀的個數,并且是每兩個P幀之間包含10個B幀
● 設置視頻碼率為1000kbit/s
● 設置最大碼率為1000kbit/s
● 設置最小碼率為1000kbit/s
● 設置編碼的buffer大小為50KB
● 設置H.264的編碼HRD信號形式為CBR
● 設置每50幀一個GOP
● 設置場景切換不強行插入關鍵幀
根據上述參數設置之后生成的output.ts文件,使用Bitrate Viewer觀察其碼率波動效果,結果如圖4-6所示。
從圖中可以看到碼率波動為最小996kbit/s,最大碼率為1001kbit/s,碼率得到了控制
補充關于B幀:
如果不希望出現B幀,多用B幀才能使得h264真正壓縮率達到200,I幀壓縮率最低,P幀中等,B幀最高,因此B幀也會增加編碼器負載,但可以減少碼率。與不用相比,多用B幀時,同樣的碼率視頻更清晰。
補充:
ABR是VBR和CBR的混合方案,VBR一般用于媒體存儲,而不是網絡傳輸,其實網絡傳輸所謂的CBR一般都是ABR,只要單位時間內把碼率控制住就可以了。ABR編碼在速度上是VBR編碼的2到3倍,但低于CBR。
CBR編碼的缺點在于質量不穩定,當有運動產生時,質量會下降,尤其是設置的碼率較低時更明顯。
VBR的優勢是當內容簡單時,分配的碼率就少,當視頻復雜時就多分配點碼率,因此在相同文件大小時,VBR的視頻質量要好于CBR。當兩者質量相同時,VBR大小可能只是CBR的一半。
h264編碼的幀由大到小依次為:
I > P > B
(互相之間約有5倍的差距)
x264的編碼耗時由長到短依次為:
P > B > I
通常而言,較小的幀因為幀內壓縮計算量(deblock、cabac等)小,所以耗時相對短。
P幀的編碼耗時長是因為幀間壓縮(宏塊尋找、運動補償等)耗時長所以提高了總體耗時。
總結
以上是生活随笔為你收集整理的ffmpeg CBR精准码流控制三个步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps手机版ppt动画效果_wps pp
- 下一篇: 文件服务器怎么限制速度,文件服务器的速度