mmread

版本1.10.0.0 (12.6 MB 弥迦书里歇尔
阅读Windows、Linux或Mac中的几乎任何媒体文件。

71 k下载

更新2009年11月12日

查看许可协议

[video, audio] = mread(filename, frames, time, disableVideo, disableAudio, matlabCommand, trySeeking, useFFGRAB)
mread几乎读取任何媒体文件。它现在使用AVbin和FFmpeg来捕获数据,这包括url。该代码支持Matlab所运行的所有主要操作系统和体系结构。

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

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

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

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

输出
Video是一个具有以下字段的结构体:
Width视频帧的宽度
Height视频帧的高度
对视频的帧率进行评估,如果不能确定它将是1。

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

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

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

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

音频在捕获时以包或帧的形式出现,将音频划分为帧可能有意义,也可能没有意义。

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

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

指定帧不会影响音频捕获。如果你只想要一小部分音频,就使用第三个参数“time”。指定音频和视频的时间效果。时间以秒为单位指定(支持亚秒分辨率,例如1.125),从0开始。时间定义为startTime(包含)到stopTime(不包含),或者使用集合表示法[startTime stopTime)。

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

例子
[视频,音频]= mmread(' bells .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对电影中的所有帧进行内联处理

引用作为

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

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

世界杯预选赛小组名单社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!世界杯预选赛小组名单

开始狩猎!
Baidu
map