重叠视频的视频拼接

时间:2016-11-02 15:28:03

标签: python python-2.7 opencv

您好我有多个视频在某个时间重叠,并想要拼接这些视频以获得单个视频流。

例如下面是三个视频,其中视频1和视频2在某个时间重叠enter image description here

现在我想要最终的o / p

enter image description here

最初视频1帧被读取并写入视频编写器对象,直到存在重叠。一旦出现重叠,视图就会根据某些决定从视频1或视频2切换(这不是我的问题)。一旦重叠结束,则视频1的帧被完成时读取和写入来自视频2的帧。最后,当它们没有从视频2留下的帧时,视频3中的帧被读取和写入。

我的问题是如何读取和写入重叠的视频,因为我希望在重叠时段内拥有来自视频或视频2的帧。我面临的问题是如何在不检查视频内容的情况下在读取和写入帧时识别重叠。

我通过分析时间戳并找到有重叠的视频索引来找到重叠时间。那么,我如何使用此信息来读取和写入重叠视频的帧。以下是我如何获取将用于写作的信息

 def dict_cam(key,values):
    return {key[i]:values[i] for i in range (len(key))}

 users=dict_cam(indices,intervals) # Creates dictionary with videos indices as keys(indices) with their start and end time as their values(intervals).

 overlapping = [ [i,j,x,y] for i,x in users.iteritems() for j,y in users.iteritems() if x is not y and x[1]>y[0] and x[0]<y[0] ] # For identifying overlapping.


 for x in overlapping

   camera=[x[0]]
   camera.append(x[1])
   begin=x[2][0]
   end=x[2][1]
   begg=x[3][0]
   ens=x[3][1]
   if begin < begg and begg<end:
       overlap.append(begg)
   if ens < end:
       overend.append(ens)
  else:
      overend.append(end)


over_rang=overlap + overend

其中,camera是重叠的视频索引列表,over_rang是包含重叠持续时间的列表。

在开始录制视频之前,我会根据开始时间对所有视频索引进行排序。

我不想分析视频内容,而是使用有关重叠时间的信息和重叠的索引

0 个答案:

没有答案
相关问题