美好的一天。在其他任何事情之前,我想说我是关于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的变化值。使用此代码,视频捕获速度会加快或减慢,但音频不会。因此,当我在搜索减慢音频速度的代码时,我遇到了link,它提供了用于加速或减慢视频捕获和音频的过滤器代码。有一条线提到了同时减慢音频和视频捕获速度的过滤器代码是:
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]);
但视频根本没有出现。
我希望你能用这个来启发我。感谢。
答案 0 :(得分:0)
不太确定你在那里做了什么,但这对我有用:
ffmpeg -i VID_20150216_185018.mp4 -filter_complex setpts = 4 * PTS; atempo = 0.5,atempo = 0.5 output.mp4