针对新闻、专题(如人物介绍、装备介绍)等视频,可从一段视频中提取出视频帧、关键帧,生成图片;针对关键帧,可提取出字幕信息,并转换成文字。
传入的视频一般有MP4、AVI格式等、打算利用OpenCV来将一段在网上随意下载的视频解析成图像帧,视频的格式可以是MP4、AVI格式等。 由于技术要求:解析视频为连续帧、采样视频帧,并没有具体说明采样视频帧的间隔,因此设计程序是应输入视频和采样帧的间隔来做。采样帧的间隔为1时,输出的是连续帧;若为大于1时,输出的是采样帧。 1.读取视频文件
2.把视频解析为连续帧
3.由于需要采样,不能每帧都写入 使用if满足条件就写入,不满足的跳过 把下面程序替换成imwrite(output, frame);
4.由于不可能只输入一个视频,因此如果输入不同的视频文件是需要重新创建文件夹,我是根据视频名字来创建名叫的文件夹 例如视频名叫或者输入视频路径 需要创建一个文件夹
6.把上面的程序重新整合成一个函数:
刚开始使用ffmpeg提取的关键帧具体方法在这:https://blog.csdn.net/T_T_T_T_/article/details/119905290?spm=1001.2014.3001.5501 但是我通过计算关键帧的位置发现ffmpeg的关键帧是按每5s提取一帧,这就不是我想要的关键帧了。ffmpeg提取的关键帧是编解码的关键帧不是我们项目中需要的关键帧,于是我就在网上找了个使用帧差法提取关键帧的具体操做:https://blog.csdn.net/T_T_T_T_/article/details/120161812?spm=1001.2014.3001.5501