Video Classification 入门之抽帧


发布于

|

分类

其实归结起来,就一句话:用好ffmpeg这个神器。

感觉如果硬盘好+CPU核多活好的话,完全不用提前抽帧的(误)

先说为什么有这个事儿

我们做Image的时候,输入处理还算是比较简单的,读入一个图片,解码,Resize一下,Padding一下,完事儿。

但是Video不一样了:为了压缩,某些帧必须由其他帧得到(什么A帧、P帧、E帧的)。我们很难直接获取到视频中的某一帧。

所以,我们需要先将视频中的每一帧拿出来。

然后呢,这些帧实在太多了(最基本的,每秒25帧来说,一个10秒的视频就250帧)。为了减轻负担,只保留动作幅度比较大的部分,每秒25帧中我们可能只需要其中的5帧。

最后呢,上面的抽帧过程会产生大量的小文件——小文件简直是灾难啊。所以,我们希望尽量把小文件进行合并,形成“假的”视频。与真的视频不同,假视频里面的帧比较容易获取,而且只是原来视频帧的节选,体积会小一些。

然后再说说怎么干的这个事儿

一句话是,用好ffmpeg这个神器。

使用ffmpeg,设置好各种参数,就能直接抽帧了。然后再用Python将这些帧进行合并一下,形成假视频文件就好了。

手动抽帧费时费力,所以我们希望能写个脚本,自动做这件事儿。

实验室同学写了一个脚本,我发现不太符合我的要求,于是就在其基础上魔改了一番,思路更加清晰,同时功能更加强大。然后Release了出来,需要的那去用就好。

所以代码呢

整个Repo在这里,小星星来者不拒。

当然,记得顺手给原始作者点个小星星啊~

Readme什么的我慢慢写吧……


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注