FFmpeg压制bilibili视频随便写写

最近问的有点多的一个问题。如何在符合标准的情况下压制的更清楚。
所以随便写写

先看下压制要求

似乎根据不同的账号有所不同。这个是我的。。
首先确定一下
视频:
分辨率: 1080P
码率 6000
码率峰值 24000(其实如果不是你的视频特别奇葩,是不会超过限制的)不过 后黑压制基本GG
gopsize 10秒 按帧率可以计算一下(例 60fps * 10 = 600, 也就是600帧里一定要有个关键帧)
色彩空间 位深度: yuv420 8位。
音频: 双声道 44100 320kbps
FFMPEG 下载和使用:
老生常谈的话题。见以前的一片文章吧。懒得再写一遍了

编码器和参数选择
依据要求:
x264编码器: 软编码,目前来讲市面上最好的H264编码器了。软编码会比硬编码效果好不少
Profile main: main profile默认的色彩空间是标准的 yuv420p。8位的位深度,yuv420。无需再设置。(注:yuv420p、NV12、yuy2等格式的差别基本也是我面试音视频工程师(图像处理方向)的必考题之一)
其他参数依据要求。
命令
基础编码参数
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: 分辨率 特别注意:如果原片低于改分辨率一定要缺省(不写)因为拉伸画面不会有超分辨的效果。而且随着分辨率增加,相同码率情况下,清晰度一定偏低
用编码时间换清晰度的参数
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: 值越大损失越严重 取值区间 0-51(悠着点写)
执行过程

不多说了 大致都能看懂吧。。你编码总时长约等于 speed 乘 视频总时长。
是不是很简单~

另外,最近忙着炒大头菜股,没太多时间写工具(像引用的文章那种)。有空再说吧。

技术交流群:711929228
本期进群问题:AoM是那个公司发起的?
正确答案:谷歌
解析:AOM Alliance for Open Media 谷歌发起的开源媒体联盟。加入条件是 会费+技术团队 也就是要求联盟成员企业氪金还肝。推出了AV1编码标准。