这篇文章主要介绍了OpenCVMatlab生成视频倒放功能,大家都知道不少带声音视频的后缀名往往都是.mp4,那么如何获取里面的音频呢?本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
引言
相信不少朋友在各大短视频平台看到很多运动健身达人的训练视频,本人比较喜欢的运动达人有搬砖小伟、
大师兄欧克等,街头徒手健身实则美妙,既能考验人的意志 ,又能强健体魄。不得不说,
运动(UFC竞技、武术、拳击)和
艺术
(书法
、绘画、歌曲、舞蹈)着实能给人带来直观的真实体验,也能激发自身的运动潜力,对于经常久坐从事脑力运动的人,他们的闲暇时间除了关注科技、军事、生活娱乐,还应该接受艺术和体育的熏陶
,适当地进行体力劳动也是长寿的秘诀,有利于个人和社会的可持续发展。每天锻炼一小时,健康工作五十年,幸福生活一辈子!!!
1、需求分析
互联网上海量的文本(plain text)
、图片(picture or image)
、声音(audio)
、视频(video)
等文件大量涌入,层出不穷,这些数据在网络上存储、传输和下载,各种硬件设备、传感器技术的发展使得数据获取方式变得越来越多样化。这里关注视频文件,视频是由一系列连续的帧按照时间顺序组合排列而形成的,因此它的本质还是一个又一个帧,一个帧就是一个画面,一个画面就是一张图片,因此连续流畅的视频需要保证每秒的帧数大于等于24,而对于经常玩大型网络三维游戏(如吃鸡PLAYERUNKNOWN'S BATTLEGROUNDS
、CSGO
、CF
)的玩家而言,他们可能对这个更有了解,就是游戏实时画面都会显示当前帧率FPS(Frame Per Second,每秒的帧数),更高的帧率(普通电脑60以上,游戏本150~220,发烧本可能达到300)能给高端玩家带来精致的游戏体验。因此视频处理的本质源于对各张图片(每帧画面)的处理。
与此对应,视频倒放的核心思想就是将原始视频中的图片倒序,主要分为两个步骤:
(1)获取原始视频的每一帧图片以从小到大的序号命名后保存到本地
;
(2)将所有图片按照从大到小的顺序,设置与原始视频同样或自定义的帧率FPS,写入视频
。
2、环境配置(Win11+ VS 2015 + OpenCV 2.4.9 / Matlab R2021a)

Win 11 64位

Visual Studio 2015

OpenCV 2.4.9

Matlab R2021a
3、OpenCV实现视频倒放(C++)
3.1 输入原始视频(带声音)
原始视频文件VID_20210801_205259.mp4
展示了我国短跑飞人苏炳添在2020东京奥运会男子100米半决赛中以9.83秒刷新亚洲纪录,一站封神,他创造了亚洲人百米赛跑的记录,成为了首位跑进10秒大关的亚洲本土选手、首位踏上世界大赛百米飞人大战决赛的亚洲选手、亚洲纪录保持者。身高1米72的苏神在百米赛道上要比博尔特多跑7步,因此他只有付出比别人更多的努力,才能和其他选手站到同一起跑线上。让我们向苏神致敬,向苏神学习,功夫不负有心人,勇敢拼搏无极限,不设限的人生更精彩!!!


3.2 原始视频转声音(mp4转mp3)
不少带声音视频的后缀名往往都是.mp4
,那么如何获取里面的音频呢?其实有一种简单取巧的方法,只需将mp4
视频文件的后缀名.mp4
改为mp3
音频文件的后缀名.mp3
就可以了,实测证明该办法具有一定的有效性。
3.3 OpenCV代码
3.4 OpenCV运行结果

(a)前20米

(b)后80米

(c)开始读取视频

(d)读取视频结束

(e)结果文件

(f)图片文件夹

代码支持mp4、wmv格式的输入视频,在原始视频文件夹中会看到生成的视频文件结果VID_20210801_205259_NiZhuan.avi,将avi
后缀名改为mp4
后缀名也可播放。

4、Matlab实现视频倒放
首先介绍一个Matlab生成动态视频示例:

4.1 Matlab代码
4.1.1 Matlab读取视频并播放(三选一)
4.1.2 Matlab读取视频并逆转
需要在原视频文件夹新建一个pics文件夹,然后运行以下代码(实测适用于.mp4和.wmv格式的输入视频文件
):
VideoProcessTest.m
4.2 Matlab运行结果





R分量

G分量

B分量

RGB视频
5、总结及应用
本文主要通过利用OpenCV和Matlab两种工具来实现视频中图片R、G、B三分量的提取、保存和逆转,同时视频加工本质是对图片帧的处理,利用这两种图像处理API还可实现视频截取
(通过帧率fps
和时间计算所需的帧并拼接成视频)、多张图片合成自定义视频
、多个视频拼接
、分类
、目标提取追踪
、特征检测
、视频边缘检测
、添加字幕
等功能,可应用于短视频剪辑、创作、应用系统演示、录课、科研、公共安全等多个领域。
到此这篇关于OpenCV Matlab生成倒放视频的文章就介绍到这了,更多相关OpenCV Matlab视频倒放内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!