3

嘿伙计们,我正在学习开发一个将视频转换为 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])

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

谢谢

4

1 回答 1

3

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

有关详细信息,请参阅 FFMPEG 自己的H.264 编码指南

于 2021-04-14T13:25:32.510 回答