我正在尝试将视频的速度加倍。
我使用以下命令:
ffmpeg -i output.mp4 -filter:v "setpts=0.5*PTS" output2.mp4
和
ffmpeg -i output.mp4 -vf "setpts=0.5*PTS" output3.mp4
我在互联网上发现这是标准方法。
但是,我的所有文件的长度都相同:
joe@joe-Amd-Am4-Home-Office:~$ for file in *.mp4; do duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$file"); echo "$file: $duration seconds"; done
output2.mp4: 373.014000 seconds
output3.mp4: 373.014000 seconds
output.mp4: 373.014000 seconds
发生了什么事以及如何正确加快视频速度?我用的是ubuntu。
我的第一个猜测是,此处记录的 PTS 方法“通过更改每个视频帧的呈现时间戳 (PTS)”来工作,玩家会尊重并加快速度。但这也许不会改变所报告的视频长度
ffprobe
。但摆弄我随机测试的 mp4 表明,虽然视频加速了,但音频却没有。这可以解释为什么我也通过 看到每个视频都有相同的时间戳
ffprobe
。这与上面链接的文档中的注释一致:关于超级用户的另一个答案提供了以下复杂的过滤器来加速视频和音频:
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv
那个对我有用,通过显示一半的长度
ffprobe
。