使用setpts 视频过滤器ffmpeg
。简单的例子:
- 慢速(半速):
setpts=PTS*2
或setpts=PTS/0.5
- 快速 (2x):
setpts=PTS/2
或setpts=PTS*0.5
视频速度提升 10 倍
ffmpeg -i input.mp4 -filter_complex "setpts=PTS/10" output.mp4
音频和视频速度提高 10 倍
对于音频,请使用atempo、Rubberband或asetrate音频过滤器。
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/10[v];[0:a]atempo=10[a]" -map "[v]" -map "[a]" output.mp4
匹配视频到音频的持续时间
在此示例audio.wav
中,持续时间为 30 秒和video.mp4
90 秒。
获取音视频文件的时长:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 audio.wav
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.mp4
使用setpts视频过滤器调整视频的持续时间以匹配音频持续时间。
ffmpeg -i video.mp4 -i audio.wav -filter_complex "[0:v]setpts=PTS*30/90[v]" -map "[v]" -map 1:a -shortest output.mp4
使视频适合特定时间
在此示例中,输入为 120 秒。所需的输出为 30 秒:
获取输入文件的持续时间:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
使用setpts和atempo(或Rubberband)过滤器:
ffmpeg -i input.mp4 -filter_complex "setpts=PTS/(120/30);atempo=120/30" output.mp4