我在目录中有一系列.jpg
个文件,我希望将其转换为ffmpeg
的电影。当我制作所有jpeg的.mp4
文件时,视频质量与原始图像几乎相同。当我创建一个.webm
文件时,它看起来很块。这些是我使用的两个命令:
$ ffmpeg -i %10d.jpg -s 640x480 -r 16 test.mp4
$ ffmpeg -i %10d.jpg -s 640x480 -r 16 test.webm
我对视频编码几乎一无所知,所以任何帮助都会受到赞赏。
答案 0 :(得分:4)
当'n'介于1(优质)和31(最差质量)之间时,请使用-qscale n
。
这实际上设定了一个恒定的质量但可变的比特率。
现在,当您设置qscale 1时,您的代码将看起来像这样:
ffmpeg -i %10d.jpg -s 640x480 -r 16 -qscale 1 test.webm
有时它输出错误,因为qscale是不明确的。在这种情况下,使用-q:v 1
代替-qscale 1
。
现在,如果您想要更好的质量,请将输出文件的比特率设置为320 kbs。
现在代码将是:
ffmpeg -i input.mp4 -b:v 320k -q:v 0 output.webm
如果您对质量仍不满意,请尝试以下代码:
ffmpeg -i input.mp4 -codec:v libx264 -profile:v high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -codec:a libfdk_aac -b:a 128k output.webm
上述说明,以便您根据需要进行更改:
-profile:v high
:将H.264配置文件设置为高。您也可以使用baseline,main。
-preset slow
:为x264设置编码预设(较慢的预设以相同的比特率提供更高的质量,但需要更多的时间进行编码)也可以使用超快,超快,非常快,更快,更快,更慢,更慢,更慢, veryslow。
-b:v
:以bit / s为单位设置视频比特率。
-maxrate and -bufsize
:流量为500kbit / s的最大速率也可以查看1000kbit的设备缓冲区。
-vf scale
:用于缩放视频,根据您的要求,您可以使用此功能。
-threads 0
:选择要编码的最佳线程数。
-codec:a
libfdk_aac:通过libfdk-aac库将编码器设置为aac
-b:a
:设置音频比特率
希望这有帮助。