Delphi 使用FFMPEG降低视频的音频速度

Delphi 使用FFMPEG降低视频的音频速度,delphi,audio,video,ffmpeg,slowdown,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

你好。首先,我想说的是,我是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]);
其中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
我尝试将“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]);
但视频根本没有出现


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

我不太清楚你在那里做了什么,但这对我很有用:

ffmpeg -i VID_20150216_185018.mp4 -filter_complex setpts=4*PTS;atempo=0.5,atempo=0.5 output.mp4
有关atempo过滤器的更多信息,请参阅