最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

vision.VideoFileReader

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

説明

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.htmlに一覧表示されており、Ogg Theora (.ogg) などがあります。

ファイルの読み取り:

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

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

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

作成

構文

videoFReader = vision.VideoFileReader(Filename)
videoFReader = vision.VideoFileReader(___,Name,Value)

説明

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

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

プロパティ

すべて展開する

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

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

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

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

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

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

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

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

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

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

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

使用法

R2016b より前のバージョンでは、関数 step を使用して System object アルゴリズムを実行します。step に対する引数は作成したオブジェクトであり、この節で示す引数が次に続きます。

たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

構文

I = videoFReader()
[Y,Cb,Cr] = videoFReader()
[___,audio] = videoFReader()
[___,EOF] = videoFReader()

説明

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 以上用のプラグインがサポートするすべての形式。これは http://gstreamer.freedesktop.org/documentation/plugins.html に一覧表示されており、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 の内部状態のリセット

すべて展開する

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

videoFReader = vision.VideoFileReader('ecolicells.avi');

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

videoPlayer = vision.VideoPlayer;

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

while ~isDone(videoFReader)
  videoFrame = videoFReader();
  videoPlayer(videoFrame);
  pause(0.1)
end

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

release(videoPlayer);
release(videoFReader);

ヒント

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

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

拡張機能

R2012a で導入