对于个人项目,使用 AV1 编解码器,我将视频的比特率限制为 88kbps,选择的视频比特率为 66kbps,单声道音频比特率为 22kbps。
我目前使用这个命令:
ffmpeg -i input.mp4 -c:v libaom-av1 -strict -2 -b:v 66150 -c:a libfdk_aac -ar 22050 -b:a 22050 -ac 1 -maxrate 66150 -bufsize 66150 -vf scale=720:-1 -movflags +faststart output.mp4
但是,我的最终视频有 95kbps 比特率:Duration: 00:01:09.73, start: 0.000000, bitrate: 95 kb/s
Stream #0:0(und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv, progressive), 720x302, 69 kb/s, 24 fps, 24 tbr, 12288 tbn, 12288 tbc (default)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 22 kb/s (default)
有没有一种方法可以验证我的需求? 66+22>88kbps正常吗?
问候,
编辑 1:正如@Gyan 建议的那样,我尝试减少 -bufsize 参数,但我的比特率仍然过高。最有效的方法是将视频比特率 -b:v 设置为 50kbps ,但它提供了较差的图像...
ffmpeg -i input.mp4 -c:v libaom-av1 -strict -2 -b:v 50k -c:a libfdk_aac -ar 22050 -b:a 22050 -ac 1 -minrate 33075 -maxrate 66150 -bufsize 44100 -vf scale=-1:360 -movflags +faststart -threads 1 output.mp4
如果开销是原因,任何限制开销的想法?
最佳答案
经过几次交流,这里有一个非常合适的解决方案,带有 84kbps 比特率和良好的图像质量,感谢 page , 使用 2通编码:
ffmpeg -i input.mp4 -c:v libaom-av1 -strict -2 -b:v 65k -pass 1 -c:a libfdk_aac -ar 22050 -b:a 22050 -ac 1 -minrate 54k -maxrate 72k -bufsize 33075 -vf scale=-1:360 -movflags +faststart -threads 1 -an -f mp4 /dev/null && _
ffmpeg -i input.mp4 -c:v libaom-av1 -strict -2 -b:v 65k -pass 2 -c:a libfdk_aac -ar 22050 -b:a 22050 -ac 1 -minrate 54k -maxrate 72k -bufsize 33075 -vf scale=-1:360 -movflags +faststart -threads 1 output.mp4
注意:它可能会要求您覆盖/dev/null。
感谢大家的帮助!
关于FFMpeg 和最大比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58095646/