Video 30分钟视频文件中的剪切数

Video 30分钟视频文件中的剪切数,video,slice,Video,Slice,我有一个30分钟长的视频(编码mp4:h264),我需要计算电影中的剪辑数量。它应该包括剪切和交叉淡入 所以有些东西非常类似于i帧检测 我有带ffmpeg/libav的Linux和带Adobe Premiere的Windows 有什么线索吗?还是其他软件?要以编程方式进行,我只需计算整个帧的绝对差值之和。然而,这可能很容易溢出,因此可能类似于两帧绝对差的平均和。然后可以使用一些阈值来确定它是否是关键帧 使用ffmpeg之类的库,您应该能够找到宏块的绝对差值之和,作为其运动估计算法的一部分。因为我

我有一个30分钟长的视频(编码mp4:h264),我需要计算电影中的剪辑数量。它应该包括剪切和交叉淡入

所以有些东西非常类似于i帧检测

我有带ffmpeg/libav的Linux和带Adobe Premiere的Windows


有什么线索吗?还是其他软件?

要以编程方式进行,我只需计算整个帧的绝对差值之和。然而,这可能很容易溢出,因此可能类似于两帧绝对差的平均和。然后可以使用一些阈值来确定它是否是关键帧

使用ffmpeg之类的库,您应该能够找到宏块的绝对差值之和,作为其运动估计算法的一部分。因为我不熟悉这个库(我只使用了命令行工具),所以我不能说在不生成运动矢量的情况下是否可以找到和,或者在生成运动矢量后是否可以找到和。如果它生成运动矢量,它可能会标记附近没有类似块的宏块

请注意,快速平移、推拉或缩放可以通过这种方式轻松检测为剪切

除非交叉淡入足够快,否则无法检测到交叉淡入

如果更高的准确度很重要,保罗建议使用一个简单的点击器是一个不错的选择


您可以编写一个程序来标记所有检测到的切割,并允许通过简单的按键进行人工控制(它可以显示所涉及的两个帧,用户可以单击y或n将其标记为正确或错误检测)。如果有很多切割,进行控制可能需要很长时间,但如果切割速度很快,人类可能很难使用点击器检测或正确计数。

这是一个典型的计算机视觉问题。搜索术语为“视频场景分割”、“视频场景提取”、“自动视频场景分割”或“镜头边界检测”。你应该查阅相关文献,因为没有银弹解决方案。作为计算机视觉中应用的许多技术,分割在很大程度上取决于图像/视频的内容以及可以从中提取的特征

也就是说,表现性特征(例如色调或亮度的极端变化)比非表现性特征(略有变化的足球比赛)更容易检测。您可能会发现一些简单的MATLAB代码,这些代码可以转换为OpenCV代码

有注释数据集来测试yout算法


另请看一看:

正如其他答案所指出的,使用自动解决方案获得良好的精度是困难的。交叉渐变、缩放、平移等。。。所有这些都使得自动工具很难判断连续帧是否属于同一场景

也就是说,我将尝试使用库来分析连续帧之间的差异,并尝试使用一些经验阈值来确定它们是否足够相似,以便从同一场景中考虑(选择帧的间隔,而不一定是每一帧)

使用该类很容易从视频中提取帧

提取帧后,可以使用各种方法尝试确定两个帧是否相关

一些想法:

  • 使用该方法在帧之间进行比较,并得出结论:差异是否确实是由帧中对象的运动造成的,或者是完全不同的场景
  • 使用算法(、等)对帧和其他帧进行特征化。另见讨论

  • 祝你好运

    这听起来像是你用点击器(每次感兴趣的事件出现时按一个按钮)手动做的事情,好像你只有一个视频,并且只需要在一次编程解决方案可能被过度使用时这样做是个好主意。任何程序都不容易获得交叉淡入淡出。