对于两段视频,可能内容源相同,但采集的开始时间不一,或视频格式有所差别,或采集中信号传输的损坏率有所差别。
在这种情况下,如何将它俩基于视频帧对齐,找到一个共同的基准点,是一个值的研究的问题。
本文针对这种问题,提供一种技术解决思路,并笔者已经验证可行:
1、将视频分别标记为A、B
2、从B视频中间提取一段,全部解出帧图像组x
3、将A所有帧均解出图像组y
4、将x、y每一帧量化成一个向量(这里笔者用的48维色度),用于图像相似度判断。具体实现方式请查阅图形学相关论文。
5、x形成的向量组上取N个突变点(相邻两帧差距最大,帧的差距使用向量的模来衡量)
6、在y上形成基于N个突变点的滑动窗口,计算N个点的差距,取最小滑动位置
7、该位置即对齐点
有点抽象,相关代码出于保密考虑,不在此展示了。
本文没讨论解决的问题:
1)A、B帧率不同(但在本文基础上很好修改,只要将向量取模考虑成综合帧距类似取“积分”的形式即可)
2)算法优化(在A上可以不取全部帧,一般业务上都是可以预估对齐范围的)