合并两个视频并跳过公共部分

合并两个视频并跳过公共部分

一位客户有一系列教程视频,所有视频的结构如下:

  1. 预览(或回顾)
  2. 简介(始终相同)
  3. 重复上一个视频的部分(可选)
  4. 新内容
  5. 结尾

我的任务是合并这些视频,每 10 个视频创建一个视频,其中仅包含一个简介、一个结尾和所有 10 个视频的内容。

问题是前一个视频中重复的部分可变,我不想重复。我的第一个想法是使用 ffmpeg 提取所有帧(或仅关键帧)并使用 framemd5 将它们复用。然后比较生成的 md5 流以确定重复内容停止的位置。

这种方法似乎有点太苛刻了,因为我不能假设同一帧在两个视频中的编码完全相同。下一个想法是为每个帧生成一个直方图,然后以一定的容差(5%?)匹配视频之间的直方图函数。

另一个想法是使用 OpenCV 并执行 matchTemplate 来查找相似的图片,但这需要在每一帧上运行,我认为它很快就会遇到性能问题。

有没有针对此问题的任何可靠解决方案?或者可能是实验性解决方案?我可以使用 ffmpeg 以与 framemd5 相同的方式生成帧直方图吗?

知道 Youtube 使用什么技术来匹配上传视频中的版权内容吗?

相关内容