如何为 480p 和 1080p 视频获取类似于 youtube 的 ffmpeg 配置?我有一个功能,但输出质量太低

How to get ffmpeg configuration similar to that of youtube for 480p and 1080p video? I have got a function but the output quality is too low

大家好,我正在学习开发一个将视频转换为 youtube 质量(或足够接近)480p 和 1080p 的网站,我对 ffmpeg 不太熟悉并且正在努力阅读其文档。

我有这些功能,

video_480p      = subprocess.call([FFMPEG_PATH, '-i', input_file, '-codec:v', 'libx264', '-crf', '20', '-preset', 'medium',
                    '-b:v', '1000k', '-maxrate', '1000k', '-bufsize', '2000k','-vf', 'scale=-2:480', '-codec:a', 'aac', '-b:a',
                     '128k', '-strict', '-2', file_480p])

同样我还有一个功能,

new_video       = subprocess.call([FFMPEG_PATH, '-i', input_file, '-codec:v', 'libx264', '-crf', '20', '-preset', 'medium',
                    '-b:v', '1000k', '-maxrate', '1000k', '-bufsize', '2000k','-vf', 'scale=-2:1080', '-codec:a', 'aac', '-b:a',
                     '128k', '-strict', '-2', output_file])

这两个功能都对视频进行了转码,但是 returns 视频质量较低,谁能为我提供 480p 和 1080p 的正确设置,这与 youtube 质量相似或接近?

谢谢

我的猜测是您的 -maxrate 论点严重限制了质量。尝试删除除 -crf 20 和缩放选项之外的所有内容。要获得更高的质量,降低 其值(技术范围:0 = 无损,但文件很大;51 = 质量最差,文件最小)。实用值为 23(默认值),“视觉无损”为 17-18。第二个表盘是-preset,如果有时间的话可以设置成slow或者slower

更多细节,参见FFMPEG自己的H.264 Encoding Guide