使用 FFMPEG 减慢视频的音频速度

jho*_*zzz 3 delphi audio video ffmpeg slowdown

再会。首先,我想说我是 FFMPEG 视频滤镜方面的新手。所以请耐心等待,:) 提前谢谢..

不管怎样,我正在尝试减慢将在我的delphi项目中嵌入和播放的视频剪辑的速度。到目前为止,使用 setpts 过滤器减慢视频速度效果很好。这是我的部分代码:

FFPlayer.VideoFilters := Format('setpts=(1/' + FloatToStr(FSpeed) + ')*PTS, nativeeq=%d:%d:%d:%d, nativehue=%d:%d:%d:%d',
  [0, 0, 0, 0, 0, 0, 0, 0]);
Run Code Online (Sandbox Code Playgroud)

其中FSpeed是一个变化值,范围为 0.5 - 2.5。使用此代码,视频捕获速度会加快或减慢,但音频不会。因此,当我搜索减慢音频速度的代码时,我发现了这个链接,它提供了用于加速或减慢视频捕获和音频的过滤器代码。其中一行提到同时减慢音频和视频捕获速度的过滤器代码是:

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
Run Code Online (Sandbox Code Playgroud)

我尝试将“atempo=2.0”添加到我的部分代码中,使其:

FFPlayer.VideoFilters := Format('setpts=(1/' + FloatToStr(FSpeed) + ')*PTS, atempo=2.0, nativeeq=%d:%d:%d:%d, nativehue=%d:%d:%d:%d',
  [0, 0, 0, 0, 0, 0, 0, 0]);
Run Code Online (Sandbox Code Playgroud)

但视频根本没有出现。

我希望你能用这个来启发我。谢谢。

Jus*_*Guy 5

不太确定你在那里做了什么,但这对我有用:

ffmpeg -i VID_20150216_185018.mp4 -filter_complex setpts=4*PTS;atempo=0.5,atempo=0.5 output.mp4
Run Code Online (Sandbox Code Playgroud)

有关 atempo 过滤器的更多信息,请参阅文档