主要内容

VideoReader

读视频文件创建对象

描述

使用一个VideoReader对象包含视频数据的读取文件。对象包含视频文件的信息,使您能够从视频读取数据。您可以创建一个VideoReader对象使用VideoReader视频功能,查询信息使用对象属性,然后使用对象读取的视频功能。

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

创建

描述

例子

v= VideoReader (文件名)创建对象v读取视频数据从文件命名文件名

例子

v= VideoReader (文件名,名称,值)设置属性CurrentTime,标签,用户数据使用名称-值参数。例如,VideoReader (“myfile.mp4”、“CurrentTime”, 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约塞米蒂(版本10.10),后来,mpeg - 4 /小时。264个文件使用VideoWriter正确,但显示一个不精确的帧速率。

数据类型:

这个属性是只读的。

高视频帧的像素,指定为一个数字标量。

数据类型:

这个属性是只读的。

文件名称,指定为一个特征向量或字符串标量。

数据类型:字符|字符串

这个属性是只读的。

视频的帧数,指定为一个数字标量。

请注意

一定长度的视频,的值NumFrames属性是没有立即可用。得到NumFrames属性,类型v.NumFrames在命令行。

数据类型:

这个属性是只读的。

完整路径与读者对象相关的视频文件,指定为一个特征向量或字符串标量。

数据类型:字符|字符串

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

例子:“109年实验”

数据类型:字符|字符串

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

这个属性是只读的。

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

文件类型,除了运动JPEG 2000文件,其中的一个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签署”

数据类型:字符|字符串

这个属性是只读的。

视频帧的宽度像素,指定为一个数字标量。

数据类型:

对象的功能

hasFrame 确定视频帧是否可读
读取一个或多个视频帧
readFrame 读下一个视频帧
VideoReader.getFileFormats 文件格式,VideoReader金宝app支持

例子

全部折叠

创建一个VideoReader对象的电影文件示例xylophone.mp4

v = VideoReader (“xylophone.mp4”);

阅读所有的帧的视频,一帧。

hasFrame (v)帧= readFrame (v);结束

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

框架
类属性名称大小字节帧240 x320x3 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,正);

阅读框架5到10。

帧=阅读(v, 5 [10]);

从50帧读取视频文件的结束。

50帧=阅读(v,[正]);

从视频通过指定帧读取一帧索引,然后读剩下的视频帧一帧。

创建一个VideoReader对象和显示的值CurrentTime财产。视频,一个零值CurrentTime属性表明没有读取视频帧。

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

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

frame20 =阅读(vidObj 20);vidObj.CurrentTime
ans = 0.6667

读剩下的帧视频使用readFrame方法。的readFrame方法返回帧对应的时间CurrentTime财产。例如,这个代码读取和显示21帧的帧开始和继续,直到没有更多的帧来读。

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

图包含一个坐标轴对象。标题为当前时间的坐标轴对象= 4.700秒包含一个类型的对象的形象。

版权2019年MathWorks公司。

限制

  • 对于一些AVI, MOV,或MP4文件窗口®,使用readFrame函数文件中读取所有的帧可以导致不同的帧数返回的值NumFrames财产的VideoReader对象。

提示

  • macOS平台不支持某些旧的视频文件格式。金宝app阅读这些文件使用VideoReader:

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

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

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

扩展功能

版本历史

介绍了R2010b

全部展开

另请参阅

|