时间:2021-05-20
视频画面本质上是由一帧一帧的连续图像组成的,播放视频其实就是在播放窗口把一系列连续图像按一定的时间间隔一幅幅贴上去实现的。
人眼在连续图像的刷新最少达到每秒24帧的时候,就分辨不出来图像间的闪动了,使人感觉呈现出来的是连续的画面,视频的播放就是利用了这一点。我们知道,电影被称为“24帧的艺术”,意思就是电影画面每秒刷新24帧,即每秒显示24副图像,它的帧率(Frames per Second,简称:FPS)为24。
一般情况下帧率要大于等于24,以下先测试一下两个视频文件的帧率,一个是网络上下载的“”friends“”,一个是用手机拍摄的视频。
经测试,两个视频文件的帧率都是23.976
播放与进度控制里主要用到 VideoCapture类里的get()函数,和创建控制条的createTrackbar()函数,get()函数用于获取视频的帧数、帧率等信息,了解get函数的参数含义即可,像get(CV_CAP_PROP_FRAME_COUNT)用于获取总帧数,get(CV_CAP_PROP_FPS)用于获取帧率等。
控制条作为Opencv中一个重要的用户和图像传参、交互的工具,伴随了整个opencv图像处理的过程,之前有提到过,这里有必要再说一说createTrackbar()这个函数。
函数原型
该函数作用是在指定图像窗口上创建一个控制条,这个控制条具有指定的参数控制范围,可以通过回调函数,执行对应的操作。
第一个参数:const修饰的string类型的引用trackbarname,表示控制条的名称
第二个参数:const修饰的string类型的引用winname,表示控制条所在的图像窗口的名称
第三个参数:int型的指针value,表示滑块的控制位置,拖动控制条滑块的位置,相应的会改变*value的值
第四个参数:int型的count,表示控制条上滑块的最大位置处对应的值
第五个参数:TrackbarCallback类型的onChange,表示一个指向回调函数的指针,每当滑块的位置发生变化,都会触发该回调函数
第六个参数:void型的userdata,一般使用其默认值0
Opencv通过VideoCapture类播放视频与通过createTrackbar创建进度条控制视频播放Code:
拖动控制条的滑块,实现播放进度控制:
每次拖动滑块位置发生,就会触发定义的“TrackBarFunc”回调函数,这个函数做了两件事,一是
通过滑块的位置确定视频当前应该播放的帧数;二是
通过set函数,设置当前播放帧。
在while循环里不断累加当前播放帧变量,当当前播放帧大于总的帧数时,表示视频已经播放到结尾,退出播放。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
问题描述在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现。解决方案首先用.wxml与.wmss代码实现进度条的效果,再通
vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果需求分析:类似于大多数音乐播放器中等mini播放器控制按钮,显示播放进度,实时
本文主要介绍了原生JS实现音乐播放器的示例代码,分享给大家,具体如下:效果图音乐播放器播放控制播放进度条控制歌词显示及高亮播放模式设置播放器属性归类按照播放器的
之前有文章,使用Android平台的OpenCV接入了视频,控制的目标是手机的摄像头,这是OpenCV的好处,使用OpenCV可以使用跨平台的接口实现相同的功能
本文实例为大家分享了iOS实现视频播放和取消全屏功能具体代码,供大家参考,具体内容如下iOS视频播放全屏和取消全屏功能实现,所需全屏的视频所在的vc需要导航控制