【问题标题】: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如何为 480p 和 1080p 视频获得类似于 youtube 的 ffmpeg 配置?我有一个功能,但输出质量太低
【发布时间】:2021-07-09 08:56:41
【问题描述】:

大家好,我正在学习开发一个将视频转换为 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 的正确设置?

谢谢

【问题讨论】:

    标签: python python-3.x ffmpeg pyffmpeg


    【解决方案1】:

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

    更多详情请看FFMPEG自己的H.264 Encoding Guide

    【讨论】:

    • 您好,感谢您的回复。你对 maxrate 有什么建议?就像我也担心文件大小一样。它就像一个 30 分钟的全高清视频应该小于 GB。
    • 另外,我对这个值 -b:v 感到困惑,因为我不明白它的作用。
    • 如链接指南中所写(间接),它似乎是您的视频流的 目标 比特率。仅当您需要特定的数据速率并知道要选择哪个值时,才有意义。一般来说,只指定一个目标质量(使用-crf)并让编解码器完成剩下的工作会更安全。
    猜你喜欢
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多