图片缩略图

mmread

version 1.10.0.0 (12.6 MB) by 弥迦书里歇尔
几乎可以在Windows、Linux或Mac上读取任何媒体文件。

70.5 k下载

更新2009年11月12日

查看许可协议

[video, audio] = mmread(文件名,帧,时间,disableVideo, disableAudio, matlabCommand, trySeeking, useFFGRAB)
mread几乎可以读取任何媒体文件。它现在使用AVbin和FFmpeg来捕获数据,这包括url。代码支持Matla金宝appb运行的所有主要操作系统和架构。

输入
要读取的文件名输入文件(mpg, avi, wmv, asf, wav, mp3, gif,…)帧指定要捕获的视频帧,默认[]为全部或指定时间

time [startTime stopTime], default [] for all disableVideo禁用所有视频捕捉,以节省内存或时间disableAudio禁用所有音频捕捉,以节省内存或时间

matlabCommand不返回视频结构,调用matlabCommand指定的函数。函数定义必须与processFrame.m的定义匹配。看到processFrame。询问更多信息。
trySeeking [true]设置为false会使代码更慢但更精确。如果前几帧失真或计时信息不准确,将此设置为false。

useFFGRAB [true]使用mmread的新版本,它使用ffmpeg。但是,如果音频或视频流无法读取,并且你正在运行Windows,请将此设置为false(旧版本)。

输出
Video是一个具有以下字段的结构体:
宽度视频帧的宽度
高度视频帧的高度
速率视频的帧速率,如果不能确定则为1。

无论捕获了多少帧,影片中的帧总数。不幸的是,这并不总是确定的。如果它是负的,那么它是基于持续时间和速率的估计(通常准确到0.1%以内)。它可以是0,在这种情况下,根本无法确定。如果它是一个正数,那么它应该总是准确的。

totalDuration视频总时长,单位为秒。
使用以下字段构建一个结构数组:
cdata[高X宽X 3] uint8矩阵
colormap总是空的
乘以帧对应的时间戳(以msec为单位)
在固定帧率的电影中,一些编解码器(不是mread)会跳过重复帧(即与前面相同),以节省空间和时间。这些跳过的帧可以通过在“times”字段中查找跳转来检测。当跳过帧时,该字段将为true。

Audio是一个具有以下字段的结构体:
nrChannels音频流中的信道数(1或2)
频率音频的采样率,例如44100。如果不能确定,那么它就是1。

位采样的位深(8或16)
Data整个音频流的真实数据。这可以使用wavplay来播放。如果指定了时间范围,数据的长度可能与总时间不对应。这通常发生在电影中。问题是音频流的开始通常在第一帧结束时计数。所以,时间移动了1/帧速率。

nrFramesTotal音频以包或帧的形式被捕获,将音频分成帧可能有意义,也可能没有意义。

totalDuration音频的总长度,以秒为单位。
帧单元数组的uint8s。可能没什么用。
乘以帧对应的时间戳(以毫秒为单位)

如果没有视频或音频流,相应的结构将为空。

指定帧不会影响音频捕获。如果你只想要音频的一部分,可以使用第三个参数“时间”。指定音频和视频的时间效果。时间以秒为单位指定(支持小数1.125的亚秒分辨率),从0开始。金宝app时间定义为startTime(包括)到stopTime(不包括),或者使用set notation [startTime stopTime]。

如果有多个视频或音频流,那么结构的长度为> 1。例如:音频(1)。数据和音频(2). data。

例子
[video, audio] = mread(' chims .wav');读取整个wav文件
wavplay (audio.data audio.rate);

视频= mmread(“mymovie.mpg”);阅读整部电影
电影(video.frames);

视频= mmread (mymovie.mpg, 1:10);%只获得前10帧

视频= mmread (mymovie。3.5 mpg的[],[0]);%阅读视频的前3.5秒

(视频、音频)= mmread(“chimes.wav”,[],0.25 [0]);读取wav的前0.25秒
(视频、音频)= mmread(“chimes.wav”,[],[0.25 - 0.5]);%读取0.25到0.5秒的wav,与前面的例子没有重叠。

直接从URL读取影片
视频= mmread ('http://www.nature.com/neuro/journal/v9/n4/extref/nn1660-S8.avi ');

视频= mmread(“mymovie.mpg”,[][],假的,真正的);读取所有帧,禁用音频

mmread (mymovie.mpg,[][],假的,假的,“processFrame”);%使用processFrame.m函数对电影中的所有帧进行内联处理

引用作为

弥迦书里歇尔(2021)。mmread(//www.tatmou.com/matlabcentral/fileexchange/8028-mmread), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R14
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!