我想更改 AVI 视频文件的速度,使其播放时间是原来的两倍。我曾尝试使用 来实现这一点ffmpeg
,但这会导致视频质量非常低:
ffmpeg -i in.avi -filter:v "setpts=2.0*PTS" out.avi
如何在 Ubuntu 15.10 上实现这一功能而不损失质量?
答案1
我怀疑你的 FFmpeg 副本也使用以下方法重新编码默认值对于 avi 容器,这可能有点难以接受。尝试在命令行中运行以下简单的添加操作:
ffmpeg -i in.avi \
-filter:v "setpts=2.0*PTS" \
-c:v mpeg4 -q:v 2 \
-an \
out.avi
该命令行的驱动部分是“质量”设置:-q:v 2
可以设置从 1 到 31,最高质量为 1,最低质量为 31。另请注意,我已经-an
禁止使用音频流。
如果这能有效提高输出视频的质量,您可以考虑在视频行中添加以下标志:
-vtag XVID -f avi -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300
我在为旧设备编码时经常使用这些标志,它们做产生更好的结果...
参考:
答案2
对我来说,使用这个命令效果很好:
ffmpeg -i in.mp4 \
-filter_complex "[0:v]setpts=0.50*PTS[v];[0:a]atempo=2.00[a]" \
-map "[v]" -map "[a]" out.mp4
注意:setpts=0.50 == 2x,并且 atempo 必须是 1/setpts == 2.0。另一个示例是:
# 1.25x
ffmpeg -i in.mp4 \
-filter_complex "[0:v]setpts=0.80*PTS[v];[0:a]atempo=1.25[a]" \
-map "[v]" -map "[a]" out.mp4