FFmpeg改变视频播放速度

记录学习分享的个人网站

FFmpeg改变视频播放速度

2020年5月23日 软件·服务器 0

可以改变使用的视频流的速度setpts视频滤波器。请注意,在以下示例中,音频流不会更改,因此,最好使用-an禁用。

速度 快一倍

要将视频的速度提高一倍,您可以使用:

ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv

滤波器通过改变每个视频帧的呈现时间戳(PTS)来工作。例如,如果有两个连续帧显示在时间戳1和2,并且您想加速视频,那些时间戳分别需要变为0.5和1。因此,我们必须将它们乘以0.5。

请注意,此方法将丢弃帧以实现所需的速度。您可以通过指定比输入更高的输出帧速率来避免丢帧。例如,从4 FPS的输入到加速到4倍(16 FPS)的输入:

ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv

减慢播放速度

要减慢视频播放速度,您必须使用大于1的乘数:

ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv

加速/减慢音频

您可以加快或音频与减缓安腾普音频过滤器。将音频的速度提高一倍:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

atempo过滤器限于使用介于0.5和2.0之间的值(因此它可以将其减慢到不小于原始速度的一半,并且速度不超过输入的两倍)。如果你需要,你可以通过串联多个atempo过滤器来克服这个限制。以下四倍音频速度:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

添加滤镜参数

使用复杂的滤镜,您可以同时加速视频和音频:

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

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注