【问题标题】:ffmpeg: 1 frame manipulation on demandffmpeg:按需处理 1 帧
【发布时间】:2016-03-07 00:09:37
【问题描述】:

大家好,SO 的朋友们!

我们需要创建一个小应用程序来从视频中获取随机帧,并实时对其进行一些修改。

这必须实时完成,为了做到这一点,我们不介意在视频开始流式传输之前创建一些初始延迟。所以让我们假设 我们总共有 6 秒的预加载时间, 以便:

1) extract a keyframe.
2) create an image with it.
3) manipulate the image.
4) replace the original keyframe with the new one.

前面算法的第(3)点已经用GD作为PHP模块解决了。但是,我们需要为其余过程找到解决方案才能完成此操作。

如果有人可以帮助我们解决这个问题,请随时与我联系。

提前致谢; 克里斯·C·鲁索

【问题讨论】:

  • 正确替换关键帧需要直接或间接替换依赖于该关键帧的每一帧。话虽如此,只要它们以足够高的质量编码,您就可以只替换直接依赖于关键帧的帧。
  • 听起来不错,是否有任何代码片段或 POC 可以提供?我想看更多。谢谢!
  • 这是一个足够大的问题,我真的不知道从哪里开始,而且我认为没有任何示例代码或教程可以做这样的事情。在我看来,理想的解决方案将是一个更高级别的库,它允许您使用 ffmpeg 库对压缩视频进行简单的就地修改,但这本身就是一个巨大的项目。除非你已经是这方面的专家(在这种情况下你不需要问),你可能需要雇用一个 ffmpeg 专家并寻找这种工作的人......

标签: php c++ c ffmpeg


【解决方案1】:

这是一个相当复杂的问题,无法通过简单地用修改后的图像替换关键帧来解决。应该(至少)解决以下问题才能使其正常工作:

  • 重新编码依赖于关键帧的所有帧。否则,视频会损坏。
  • 文件格式注意事项 - 修改后的关键帧和后续帧在编码后可能具有不同的大小(与原始编码数据相比)。将它们存储在输出文件中并不容易
  • 时间戳 - 必须保留这些修改帧的时间戳信息,否则输出文件中会出现音视频同步问题。

鉴于这些问题,我的建议是在原始视频帧中执行图像处理,然后对流进行编码。如果我能帮助澄清,请告诉我。

【讨论】:

  • krthkr 先生,您的回复其实很清楚。如果我可以问,您是否有兴趣为我们提供解决方案?我们没有庞大的预算,但我们仍然可以解决它!请让我知道,您可以一起通过 chris (at)calciumsec (dot) com 给我发电子邮件。
  • 你好克里斯,我很感兴趣,想了解更多关于你试图解决的问题。感谢您分享您的电子邮件,我会在今天与您联系。
猜你喜欢
  • 2023-03-29
  • 2020-12-27
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 2015-06-27
相关资源
最近更新 更多