FFMpeg 和最大比特率

标签 ffmpeg constraints bitrate

对于个人项目,使用 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/

相关文章:

c++ - 解析具有多个流的音频文件时出错 - ffmpeg

ios - 无法将顶部约束添加到 View

t-sql - 临时表上的 SQL 约束

audio - 使用ffmpeg转码后,我发现音频码率不是我期望的值

ios - 如何计算视频的比特率?

ruby-on-rails - 发布请求不处理上传

python - OpenCV 无法读取某些 mp4 文件,转换为 avi 也无济于事

ruby-on-rails - ffmpegthumbnailer 错误与carrierwave-video-thumbnailer

MySQL 插入...选择 : Skip records with foreign key constraint error

mp3 - 如何在不下载的情况下确定 .mp3 比特率?