如何在视觉上比较不同编解码器,大小,分辨率的两个相似的视频

时间:2015-10-23 11:03:12

标签: opencv ffmpeg video-processing

是否可以比较实用,两个看起来相似的不同编解码器,大小和分辨率的视频。我浏览了一些工具,例如ffmpeg opencv

或者在另一个上下文中,让我们将图像与视频进行比较,并找出图像在视觉中呈现给定视频的确切时间。视频和图像的编解码器,大小和分辨率可能会有所不同。

2 个答案:

答案 0 :(得分:2)

是的,但它涉及到工作。所以,我假设您将以编程方式使用ffmpeg(libavformat,libavcodec),您也可以通过opencv等中间层执行相同操作。

首先,打开视频(使用libavformat),对帧进行解码(使用libavcodec),然后重新调整它们(使用libswscale),使它们的大小相同和图片格式(例如yuv420p)。您重新缩放的两个视频/图像中的哪一个无关紧要,但如果您将图像与视频进行比较,我会缩放图像,因为这是单个而不是每帧操作。然后,将该图像与每个输出帧进行比较(使用ssim中的psnrlibavfilter过滤器),并检查输出帧的元数据为lavfi.ssim.dB或lavfi.psnr .psnr_avg。图像最相似的帧是具有最高PSNR或SSIM分数的帧,这是您问题的答案。

如果您选择使用它们,您将找到每个库的教程和示例。

答案 1 :(得分:2)

经过一些研究并浏览论坛后,我得到了OpenSIFT库(取决于opencv)。在此,匹配算法满足任务。在此算法任意两个不同大小的图像,可以比较编解码器。 对于视频比较,将视频转换为帧并将每个帧与参考图像进行比较。

我希望如果有人在视频视觉而不是原始帧比较中搜索图像/帧,这将会有所帮助