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

标签 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]);

其中 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]);

但是视频根本没有显示。

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

最佳答案

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

ffmpeg -i VID_20150216_185018.mp4 -filter_complex setpts=4*PTS;atempo=0.5,atempo=0.5 output.mp4

有关 atempo 过滤器的更多信息,请参阅 docs .

关于delphi - 使用 FFMPEG 减慢视频的音频速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20538278/

相关文章:

delphi - 定时器进程影响delphi中的用户界面

delphi - 将 TPoupMenu 分配给 TAdvColumnGrid 中的就地编辑器

video - 我可以在 Youtube 上起草视频多少和多长时间

mysql - 在 Delphi 中连接到 Mysql 数据库的最佳方法是什么

html - 页面刷新时从jquery html5音频播放列表中随机选择轨道

audio - 如何从声音文件中提取包络?

ios - 使用 Sprite Kit 画线时播放声音

html - 忽略HTML 5视频和随机视频加载

video - 应用评论视频(应用商店)

delphi - 在 tcxgrid 上的组标题中显示分组记录计数