FFmpeg壓制bilibili視頻隨便寫寫

最近問的有點多的一個問題。如何在符合標準的情況下壓制的更清楚。
所以隨便寫寫

先看下壓制要求

似乎根據不同的賬號有所不同。這個是我的。。
首先確定一下
視頻:
分辨率: 1080P
碼率 6000
碼率峰值 24000(其實如果不是你的視頻特別奇葩,是不會超過限制的)不過?后黑壓制基本GG
gopsize 10秒 按幀率可以計算一下(例 60fps * 10 = 600, 也就是600幀里一定要有個關鍵幀)
色彩空間 位深度: yuv420 8位。
音頻: 雙聲道 44100 320kbps
FFMPEG 下載和使用:?
老生常談的話題。見以前的一片文章吧。懶得再寫一遍了

編碼器和參數(shù)選擇
依據要求:
x264編碼器: 軟編碼,目前來講市面上最好的H264編碼器了。軟編碼會比硬編碼效果好不少
Profile main: main profile默認的色彩空間是標準的 yuv420p。8位的位深度,yuv420。無需再設置。(注:yuv420p、NV12、yuy2等格式的差別基本也是我面試音視頻工程師(圖像處理方向)的必考題之一)
其他參數(shù)依據要求。
命令
基礎編碼參數(shù)
ffmpeg -i videoplayback.mp4 -c:v libx264 -b:v 6000k?-profile:v main -s 1920x1080 -c:a aac -b:a 320k?1.mp4
-i videoplayback.mp4:?視頻文件
-c:v libx264?:選用x264編碼器
-b:v 6000k: 碼率
-s 1920x1080: 分辨率 特別注意:如果原片低于改分辨率一定要缺省(不寫)因為拉伸畫面不會有超分辨的效果。而且隨著分辨率增加,相同碼率情況下,清晰度一定偏低
用編碼時間換清晰度的參數(shù)
ffmpeg?-i videoplayback.mp4?-preset:v?slower?-c:v libx264?-b:v 6000k?-profile:v main?-s 1920x1080?-c:a aac?-b:a 320k?1.mp4
-preset:v?slower?: 較慢編碼 (編碼速度越慢編出來的越清晰。不過我覺得很多人大概等不起)
可選值:?ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow and placebo
進一步精細調整編碼損失
ffmpeg?-i videoplayback.mp4?-preset:v?slower?-c:v libx264?-b:v 6000k?-profile:v main?-s 1920x1080?-c:a aac?-b:a 320k -x264opts?crf=18?1.mp4?
-x264opts?crf=18: 值越大損失越嚴重 取值區(qū)間 0-51(悠著點寫)
執(zhí)行過程

不多說了 大致都能看懂吧。。你編碼總時長約等于 speed 乘 視頻總時長。
是不是很簡單~

另外,最近忙著炒大頭菜股,沒太多時間寫工具(像引用的文章那種)。有空再說吧。

技術交流群:711929228??
本期進群問題:AoM是那個公司發(fā)起的???
正確答案:谷歌??
解析:AOM Alliance for Open Media 谷歌發(fā)起的開源媒體聯(lián)盟。加入條件是 會費+技術團隊 也就是要求聯(lián)盟成員企業(yè)氪金還肝。推出了AV1編碼標準。