如何为 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。
大家好,我正在学习开发一个将视频转换为 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。