【问题标题】:How can I use ffmpeg to crop a part of a video by frames numbers including video and audio?如何使用 ffmpeg 按帧数(包括视频和音频)裁剪视频的一部分?
【发布时间】:2019-03-29 02:31:24
【问题描述】:

我有一个简单的清单:

LReg.start = rise[i];
LReg.end = fall[i];
LR.Add(LReg);

start 和 end 是 int 最后我有一个我想从视频文件中提取的帧列表。例如,在 LR 的索引 0 中,我开始 48 结束 51 在索引 1 开始 110 结束 124

所以我想循环列表并根据帧号开始和结束跳到此帧,使用 ffmpeg 将视频文件的一部分保存为视频文件。 跳转到第 48 帧,从第 48 帧到第 51 帧创建一个视频文件,包括第 48 帧和第 51 帧。然后向前跳转到下一组第 110 帧和第 124 帧,依此类推。

问题是如何使用ffmpeg提取和保存视频文件?

【问题讨论】:

  • 我的意思是使用帧作为视频文件中的起始位置,然后将视频文件的这一部分剪切并保存为视频文件,所以最后我将拥有该部分从第 48 帧到第 51 帧作为带音频的视频文件!不是提取帧并从中创建视频文件,而是使用帧作为位置来裁剪视频的一部分。

标签: c# video ffmpeg


【解决方案1】:

使用selectsetpts 过滤器:

ffmpeg -i input -filter_complex "[0:v]select='between(n,48,51)+between(n,110,124)+between(n,150,181)',setpts=N/FRAME_RATE/TB[v]" -map "[v]" output

【讨论】:

  • 直到我回答后才意识到你想要音频。如果您可以使用时间戳而不是帧号,则处理起来会更容易。如果有可能,我会更新答案。
猜你喜欢
  • 1970-01-01
  • 2021-04-12
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多