如何使用ffmpeg更改视频速度?

如何使用ffmpeg更改视频速度?,ffmpeg,video-streaming,frame-rate,Ffmpeg,Video Streaming,Frame Rate,我正在使用ffmpeg作为视频过滤器 但是,当我改变视频速度时,那个次我遇到了问题 音频比视频长: 我想将音频的长度设置为视频的长度 最短=将音频流扩展到与视频流相同的长度 就我而言,最短的不起作用。视频文件和音频文件都是不同的,然后合并到一个视频文件中。视频的最后一帧停止,音频继续工作。工作正常 ffmpeg -filter_complex [0:v]setpts=0.5*PTS -i INPUT -i INPUT -filter_complex [1:a]apad -shortest -y

我正在使用ffmpeg作为视频过滤器

但是,当我改变视频速度时,那个次我遇到了问题

音频比视频长:

我想将音频的长度设置为视频的长度

最短=将音频流扩展到与视频流相同的长度 就我而言,最短的不起作用。视频文件和音频文件都是不同的,然后合并到一个视频文件中。视频的最后一帧停止,音频继续工作。

工作正常

ffmpeg -filter_complex [0:v]setpts=0.5*PTS -i INPUT -i INPUT -filter_complex [1:a]apad -shortest -y -preset ultrafast OUTPUT 2>&1

您可以使用复杂过滤器

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

我也有同样的问题。你应该看到这个问题:@mayurkukadiya当两个文件不同时,它工作。但在我的例子中,视频和音频流都在一个文件中;你们想在半个点上剪切音频,还是使其速度加倍?视频正在以双倍速度播放,我想在半个点上剪切音频。但现在我得到了答案->你们还有别的办法吗?这个命令一团糟。选项应按正确的顺序排列:ffmpeg[input Options]-i[output Options]output,使用一个-filter_complex进行所有过滤,建议引用filtergraph,并且通常应映射过滤器输出:ffmpeg-i input-filter_complex[0:v]setpts=0.5*PTS[v];[0:a]apad[a]-map[v]-map[a]-shortestOUTPUT@llogan在我的例子中,视频文件和音频文件是不同的,然后两者合并成一个文件。但是您的命令仅在有声音的视频文件中使用。@PoojaJadav在这种情况下使用ffmpeg-i INPUT0-i INPUT1-filter_complex[0:v]setpts=0.5*PTS[v];[1:a]apad[a]-map[v]-map[a]-最短输出您应该在我的答案上面检查一下。这与您的回答类似在您的情况下,setpts=0.5是固定的。但有时我们不知道setpts。那时候我们可以在atempo中设置什么?@PoojaJadav,如果你想将视频加速2倍,它将设置为setpts=1/2*PTS和atempo=2.0,如果你想要3倍,它将设置为setpts=1/3*PTS和atempo=3.0,最好使用指针而不是小数。另一方面,如果您希望以3的系数减慢视频,则将设置为setpts=3*PTS,atempo=0.3。好的,让我检查一下,里面有一些很好的例子。
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