一位客户有一系列教程视频,所有视频的结构如下:
- 预览(或回顾)
- 简介(始终相同)
- 重复上一个视频的部分(可选)
- 新内容
- 结尾
我的任务是合并这些视频,每 10 个视频创建一个视频,其中仅包含一个简介、一个结尾和所有 10 个视频的内容。
问题是前一个视频中重复的部分可变,我不想重复。我的第一个想法是使用 ffmpeg 提取所有帧(或仅关键帧)并使用 framemd5 将它们复用。然后比较生成的 md5 流以确定重复内容停止的位置。
这种方法似乎有点太苛刻了,因为我不能假设同一帧在两个视频中的编码完全相同。下一个想法是为每个帧生成一个直方图,然后以一定的容差(5%?)匹配视频之间的直方图函数。
另一个想法是使用 OpenCV 并执行 matchTemplate 来查找相似的图片,但这需要在每一帧上运行,我认为它很快就会遇到性能问题。
有没有针对此问题的任何可靠解决方案?或者可能是实验性解决方案?我可以使用 ffmpeg 以与 framemd5 相同的方式生成帧直方图吗?
知道 Youtube 使用什么技术来匹配上传视频中的版权内容吗?