FFmpeg 如何加速视频 - Windows

7

在手册中写道:

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

但是当我运行时:
ffmpeg -i input.mp4 -filter:v 'setpts=0.5*PTS' speedup.mp4

我遇到了一个错误:
[AVFilterGraph @ 0000000002500600] No such filter: 'setpts=0.5*PTS'
Error opening filters!

不确定是过滤器无法完全打开还是该过滤器不可用。

我应该如何正确运行它?或者也许我的版本不支持它,那么我可以在哪里获取适用的版本呢?Win32/x64 二进制文件


移动引号...尝试 -filter:v -setpts='....' - alexbuisson
1
尝试去掉引号。撰写本文时,我的电脑正在运行:“ffmpeg -i video.mp4 -r 30 -filter:v setpts=1/100*PTS -an output.mp4”。 - Matthias
3个回答

16

同时使用setptsatempo来加速视频和音频:

ffmpeg -i input-video.mp4 -vf "setpts=0.68*PTS" -filter:a "atempo=1.467" output-video.mp4

来源:https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video

当然,你需要为数字进行正确的数学运算。 setpts 需要变小才能使视频变快,但是 atempo 需要变大才能加速音频。

所需音频值 = 1 / 视频值


2
如果您已经有了适用于Windows的ffmpeg.exe,您可以使用以下命令行列出所有可用的过滤器。您可以编辑txt文件c:\filters.txt来查看它们。 ffmpeg -filters > c:\yfilters.txt 在我的电脑上,我可以看到SETPTS(仅限视频到视频)过滤器: setpts V->V 设置输出视频帧的PTS。 您的命令行是正确的,并且适用于具有此过滤器的ffmpeg版本(尝试下载最新版本)。
这条命令对我也有效: ffmpeg -i video_input -vf "setpts=factor*PTS" video_output 因素可以是:
1.加速视频:0.2、0.4、0.6、0.8.. (<1)
2.减慢视频:1.2、1.4、1.6、1.8、2.0、3.0、4.0、5.0、10.0... (>1)

1
这不会改变音频的持续时间/速度,同时也不会改变视频的速度。 - Pistos

0

尝试使用双引号。例如:ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" speedup.mp4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接