主要内容

VideoReader

创建对象来读取视频文件

描述

用一个VideoReader对象读取包含视频数据的文件。该对象包含有关视频文件的信息,并使您可以从视频中读取数据。你可以创建一个VideoReader对象使用VideoReader函数,使用对象属性查询视频信息,然后使用对象函数读取视频。

有关更多信息,请参阅金宝app支持的视频和音频文件格式

创建

描述

例子

v= Videoreader(文档名称创建对象v从文件名命名的文件中读取视频数据文档名称

例子

v= Videoreader(文档名称名称,值设置属性CurrentTime标签, 和用户数据使用名称值对。例如,Videoreader('myfile.mp4','currentime',1.2)开始阅读1.2视频开始几秒钟。可以指定多个名称-值对。将每个属性名用单引号括起来,后跟相应的值。

输入参数

展开全部

文件名,指定为字符向量或字符串标量。

有关更多信息,请参阅金宝app支持的视频和音频文件格式

例子:“myFile.mp4”

例子:“. . / dir /视频/ myFile.avi”

数据类型:字符|细绳

特性

展开全部

VideoReader对象具有包含视频文件信息的属性。属性是只读的,除了CurrentTime标签, 和用户数据.创建对象后,可以查看或修改属性的值。例如,该命令查找持续时间财产的VideoReader目的,v

d = v.duration;

此属性是只读的。

每个像素的比例为视频数据,指定为数字标量。

数据类型:

要读取的视频帧的时间戳,指定为数字标量。时间戳以视频文件开始的秒为单位指定。的价值CurrentTime可以在零和视频的持续时间之间。

在某些平台上,当你创建VideoReader对象,呢“CurrentTime”属性可能包含靠近但不完全零的值。这种变化的价值“CurrentTime”属性是由于每个平台处理和读取视频的方式不同。

例子:5.6

数据类型:

此属性是只读的。

文件的长度,以秒为单位,指定为数字标量。

数据类型:

此属性是只读的。

每秒视频帧数,指定为数字标量。对于可变帧速率视频,帧速率是平均帧速率。

笔记:对于OS X Yosemite(版本10.10)和更高版本,MPEG-4/H。264文件使用VideoWriter播放正确,但显示不准确的帧率。

数据类型:

此属性是只读的。

视频帧的高度以像素为单位,指定为数字标量。

数据类型:

此属性是只读的。

文件名,指定为字符向量或字符串标量。

数据类型:字符|细绳

此属性是只读的。

视频流中的帧数,指定为数字标量。

请注意

对于某些长度视频,值的值NumFrames该物业不能立即提供。得到NumFrames属性,类型v.NumFrames在命令行中。

数据类型:

此属性是只读的。

与阅读器对象关联的视频文件的完整路径,指定为字符向量或字符串标量。

数据类型:字符|细绳

通用文本,指定为字符向量或字符串标量。

例子:“109年实验”

数据类型:字符|细绳

用户定义的数据,指定为任意数据类型的值。

此属性是只读的。

MATLAB表示视频格式,指定为字符向量或字符串标量。

文件类型,除了Motion jpeg2000文件,都有其中之一VideoFormat价值观。

视频格式

的价值VideoFormat

带有RGB24视频的AVI或MPEG-4文件

'rgb24'

AVI文件与索引视频

'索引'

AVI文件与灰度视频

“灰度”

运动JPEG 2000文件,有下列之一VideoFormat价值观。

图像数据格式

的价值VideoFormat

单波段uint8. “Mono8”
单波段INT8. “Mono8签署”
单波段uint16 'mono16'
单波段int16 “Mono16签署”
三级uint8. 'rgb24'
三级INT8. “RGB24签署”
三级uint16 'rgb48'
三级int16 “RGB48签署”

数据类型:字符|细绳

此属性是只读的。

视频帧的宽度(以像素为单位),指定为数字标量。

数据类型:

对象的功能

hasfame. 确定视频帧是否可以读取
读取一个或多个视频帧
readFrame 阅读下一个视频框架
VideoreR.GetFileFormats. 文件格式VideoReader金宝app支持

例子

全部折叠

创建一个VideoReader对象的示例影片文件Xylophone.mp4.

v = Videoreader(“xylophone.mp4”);

从视频中读取所有帧,一次一帧。

尽管hasfame(v)帧= ReadFrame(v);结束

显示返回的最后一帧的信息readFrame

框架
名称大小字节类属性框架240x320x3 230400 uint8

创建一个视频阅读器对象,并在特定的时间开始读取视频帧。

创建一个对象以阅读示例电影文件Xylophone.mp4.

v = Videoreader(“xylophone.mp4”);

指定从视频开头开始2.5秒的读数。

v.CurrentTime = 2.5;

创建一个坐标轴对象来显示框架。然后,继续读取和显示视频帧,直到没有其他帧可以读取。

currAxes =轴;尽管hasFrame(v) vidFrame = readFrame(v);图像(vidFrame,'父母', currAxes);currAxes。可见=“关闭”;暂停(1 / v.FrameRate);结束

创建视频阅读器对象并使用帧指数读取一个或多个视频帧。

创建一个VideoReader对象的示例影片文件Xylophone.mp4.

v = Videoreader(“xylophone.mp4”);

只读第一个视频帧。

帧=阅读(v, 1);

只读最后一个视频帧。

框架=读取(v,inf);

读帧5到10。

Frames = read(v,[5 10]);

从视频文件的第50帧读取到最后。

帧= read(v,[50 Inf]);

通过指定帧索引从视频中读取一帧,然后每次读取一帧剩余的视频帧。

创建一个VideoReader对象的值并显示CurrentTime财产。在这个视频中,0的值CurrentTime属性表示没有从视频中读取框架。

vidObj = VideoReader (“xylophone.mp4”);Vidobj.Currentime.
ans = 0.

通过指定帧索引从视频中读取第20帧。然后,显示值的值CurrentTime财产。的方法自动更新CurrentTime属性以反映第20帧已被读取。在这一步,调用readFrame功能将返回21帧。

Frame20 =读取(Vidobj,20);Vidobj.Currentime.
ans = 0.6667

使用读取视频的剩余帧readFrame方法。的readFrame方法返回对应于时间的帧CurrentTime财产。例如,这段代码读取并显示从第21帧开始的帧,直到没有更多的帧可以读取为止。

尽管(hasFrame(vidObj)) frame = readFrame(vidObj);imshow(框架);标题(sprintf ('当前时间= %。3 f交会”vidObj.CurrentTime));暂停(2 / vidObj.FrameRate);结束

图中包含一个坐标轴。标题为Current Time = 4.700 sec的轴包含一个image类型的对象。

版权所有2019 Mathworks,Inc。

限制

  • Windows上的某些AVI,MOV或MP4文件®, 使用readFrame函数读取文件中所有帧的结果可能与由NumFrames财产的VideoReader目的。

提示

  • macOS平台不再支持某些较老的视频文件格式。金宝app使用。读取这样的文件VideoReader

    • 使用QuickTime播放器打开视频文件。如果玩家检测到文件是旧格式,那么它就会自动将文件转换为新格式。

    • 保存新转换的视频文件。

    • 使用VideoReader读取这个新转换的视频文件。

扩展能力

另请参阅

|

介绍了R2010b