Main Content

vision.VideoFileReader

ビデオ ファイルからのビデオ フレームとオーディオ サンプルの読み取り

説明

メモ

vision.VideoFileReader System object は将来のリリースで削除される予定です。代わりに、VideoReader オブジェクトを使用してください。

VideoFileReader オブジェクトは、ビデオ ファイルからビデオ フレーム、イメージおよびオーディオ サンプルを読み取ります。このオブジェクトは、イメージ ファイルを読み取ることもできます。

プラットフォーム

ファイル形式

すべてのプラットフォーム

非圧縮、インデックス付き、グレースケール、Motion JPEG エンコード ビデオを含む AVI (.avi)
Motion JPEG 2000 (.mj2)

すべての Windows®

MPEG-1 (.mpg)
Windows Media® ビデオ (.wmv, .asf, .asx)
Microsoft® DirectShow® がサポートするすべての形式

Windows 7 以上

H.264 エンコード ビデオを含む MPEG-4 (.mp4.m4v)
Apple QuickTime ムービー (.mov)
Microsoft Media Foundation がサポートするすべての形式

Macintosh

次を含む QuickTime プレーヤーがサポートするほとんどの形式
MPEG-1 (.mpg)
H.264 エンコード ビデオ (.mp4.m4v) を含む MPEG-4
Apple QuickTime ムービー (.mov)
3GPP
3GPP2
AVCHD
DV

メモ: OS X Yosemite (Version 10.10) 以降では、VideoWriter を使用して書き込まれた MPEG-4/H.264 ファイルは正しく再生されますが、あいまいなフレーム レートが表示されます。

Linux®

インストール済みの GStreamer 0.1 以上用のプラグインがサポートするすべての形式。これはhttps://gstreamer.freedesktop.org/documentation/plugins_doc.htmlに一覧表示されており、Ogg Theora (.ogg) などがあります。

ファイルの読み取り:

  1. vision.VideoFileReader オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは を参照してください。

作成

説明

videoFReader = vision.VideoFileReader(Filename) は、入力ファイル Filename からビデオ フレームまたはオーディオ サンプルを順番に読み取るビデオ ファイル リーダー System object™、videoFReader を返します。

videoFReader = vision.VideoFileReader(___,Name,Value) はさらに、名前と値のペアを 1 つ以上使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば、videoFReader = vision.VideoFileReader('PlayCount',1) です。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

ファイル名。文字ベクトルとして指定します。ファイルが MATLAB® パス上にない場合にのみ、ファイルの絶対パスを指定する必要があります。

ファイルを再生する回数。正の整数で指定します。

オーディオ データの出力。true または false として指定します。このプロパティを使用して、入力ファイルにオーディオ ストリームとビデオ ストリームが含まれる場合にのみオーディオ出力を制御します。

イメージ形式。RGBYCbCr 4:2:2、または入力ファイルにビデオが含まれる場合は強度ビデオ フレームとして指定します。

出力ビデオのデータ型。リストされているデータ型のいずれか、または 'inherit' として指定します。このプロパティは、入力ファイルにビデオが含まれている場合に適用されます。このプロパティを 'inherit' に設定すると、オブジェクトは出力データ型を入力ビデオの本来のデータ型に設定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

出力オーディオ サンプルのデータ型。リストされているデータ型および inherit のいずれかとして指定します。このプロパティは、入力ファイルにオーディオが含まれている場合に適用されます。

データ型: double | single | int16 | uint8

使用法

説明

I = videoFReader() は次のビデオ フレームを返します。

[Y,Cb,Cr] = videoFReader() は、色成分 YCb、および Cr を使用した YCbCr 4:2:2 形式のビデオの次のフレームを返します。この構文では、'ImageColorSpace' プロパティを 'YCbCr 4:2:2' に設定する必要があります。

[___,audio] = videoFReader() は、1 フレームのオーディオ サンプル audio も返します。この構文では、AudioOutputPort プロパティを true に設定する必要があります。

[___,EOF] = videoFReader() は、ファイルの終端インジケーター EOF も返します。オブジェクトは、出力に最後のオーディオ サンプルおよび/またはビデオ フレームが含まれるたびに、EOFtrue に設定します。

出力引数

すべて展開する

ビデオ フレーム。トゥルーカラー イメージまたは 2 次元のグレースケール イメージとして返されます。

YCbCr 4:2:2 形式のイメージの YCbCr カラー チャネル。数値行列として返されます。

オーディオ サンプルの 1 フレーム。次のいずれかの形式で返されます。

プラットフォームサポートされているファイル名の拡張子
すべてのプラットフォームAVI (.avi)
Windows イメージ:
.jpg.bmp
ビデオ:
MPEG (.mpeg)
MPEG-2 (.mp2)
MPEG-1.mpg

H.264 エンコード ビデオを含む MPEG-4 (.mp4、.m4v)
Motion JPEG 2000 (.mj2)
Windows Media Video (.wmv.asf.asx、.asx)
Microsoft DirectShow® 9.0 以上がサポートするすべての形式。

オーディオ:
WAVE (.wav)
Windows Media Audio ファイル (.wma)
オーディオ交換ファイル形式 (.aif.aiff)
圧縮オーディオ交換ファイル形式 (.aifc)、
MP3 (.mp3)
Sun Audio (.au)
Apple (.snd)

Macintosh ビデオ:
.avi
Motion JPEG 2000 (.mj2)
H.264 エンコード ビデオを含む MPEG-4 (.mp4、.m4v)
Apple QuickTime ムービー (.mov)
および QuickTime がサポートするすべての形式 (http://support.apple.com/kb/HT3775 に一覧表示)。
オーディオ:
非圧縮 .avi
Linux Motion JPEG 2000 (.mj2)
インストール済みの GStreamer 0.1 以上用のプラグインがサポートするすべての形式。これは https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c に一覧表示されており、Ogg Theora (.ogg) などがあります。

Windows XP および Windows 7 x64 プラットフォームには、64 ビットのビデオおよびオーディオ コーデックの一部が付属しています。圧縮されたマルチメディア ファイルを再生できない場合、上記の表に示すサポートされているファイル形式でのマルチメディア ファイルの保存を試してください。

Windows を使用している場合、Windows Media Player Version 11 以上を使用します。

メモ

ビット深度が 8 ビットを超えている MJ2 ファイルは vision.VideoFileReader でサポートされていません。ビット深度がこれを超える場合には、VideoReaderVideoWriter を使用してください。

ビデオおよびオーディオを含む圧縮 MP4 ファイルからのオーディオの読み取りは、vision.VideoFileReader ではサポートされていません。

ファイルの終端インジケーター。true または false として返されます。

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

infoInformation about specified video file
isDoneEnd-of-file status (logical)
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

ビデオ リーダー オブジェクトを使用してビデオを読み込みます。

vidReader = VideoReader('ecolicells.avi');

ビデオ プレーヤー オブジェクトを作成してビデオ ファイルを再生します。

videoPlayer = vision.VideoPlayer;

while ループを使用してビデオ フレームを読み取り、再生します。各フレームを表示した後に 0.1 秒間一時停止します。

while hasFrame(vidReader)
    videoFrame = readFrame(vidReader);
    videoPlayer(videoFrame);
    pause(0.1)
end

オブジェクトを解放します。

release(videoPlayer);

ヒント

  • Windows システムでのビデオ読み取りパフォーマンス: Windows での MP4 および MOV ファイルに対するビデオ リーダーのパフォーマンスを向上するために、MATLAB は復号化にシステムのグラフィックス ハードウェアを使用します。ただし場合によっては、復号化にグラフィックス カードを使用することが原因で、システムのグラフィックス ハードウェアによってはパフォーマンスが低下することがあります。システムでのビデオ リーダーのパフォーマンスが低下している場合、次のように入力してハードウェア アクセラレーションを無効にします。

     matlab.video.read.UseHardwareAcceleration('off') 
    ハードウェア アクセラレーションを再度有効にするには、次のように入力します。
     matlab.video.read.UseHardwareAcceleration('on')  

拡張機能

バージョン履歴

R2012a で導入

すべて展開する