您好。首先,我想说我在使用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]);
但视频根本没有显示出来。我希望你能为我解惑。谢谢。