您好。在做任何其他事情之前,我想说,我是一个关于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]);
其中F速度是一个变化值,范围为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过滤器的更多信息,请参阅文档。