ドキュメンテーション

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

VideoReader

ビデオ ファイルを読み取る

説明

VideoReader オブジェクトは、ビデオ データを含むファイルの読み取りに使用します。このオブジェクトにはビデオ ファイルに関する情報が格納されており、ビデオからデータを読み取ることができます。関数 VideoReader を使用して VideoReader オブジェクトを作成し、オブジェクトのプロパティを使用してビデオに関する情報をクエリしてから、オブジェクト関数を使用してビデオを読み取ることができます。

詳細については、サポートされているビデオ ファイル形式を参照してください。

作成

構文

v = VideoReader(filename)
v = VideoReader(filename,Name,Value)

説明

v = VideoReader(filename) は、filename という名前のファイルからビデオ データを読み取るオブジェクト v を作成します。

v = VideoReader(filename,Name,Value) は、名前と値のペアを使用して CurrentTimeTagUserData の各プロパティを設定します。たとえば、VideoReader('myfile.mp4','CurrentTime',1.2) は、ビデオの先頭から 1.2 秒後に読み取りを開始します。名前と値のペアは複数指定することができます。各プロパティの名前を一重引用符で囲み、その後に値を指定します。

入力引数

すべて展開する

ファイル名。文字ベクトルまたは string スカラーとして指定します。

詳細については、サポートされているビデオ ファイル形式を参照してください。

例: 'myFile.mp4'

例: '../dir/videos/myFile.avi'

データ型: char | string

プロパティ

すべて展開する

VideoReader オブジェクトには、ビデオ ファイルに関する情報を格納するプロパティがあります。CurrentTimeTag および UserData を除き、すべてのプロパティは読み取り専用です。プロパティの値はオブジェクトの作成後に表示や変更が可能です。たとえば、次のコマンドで VideoReader オブジェクト vDuration プロパティの値を確認します。

D = v.Duration;

このプロパティは読み取り専用です。

ビデオ データのピクセルあたりのビット数。数値スカラーとして指定します。

データ型: double

読み取るビデオ フレームのタイムスタンプ。数値スカラーとして指定します。タイムスタンプはビデオ ファイルの始まりからの秒数で指定されます。CurrentTime の値は、ゼロからビデオの継続時間までの間の値です。

プラットフォームによっては、VideoReader オブジェクトを作成するときに、'CurrentTime' プロパティに正確に 0 ではないが、0 に近い値が含まれる場合があります。'CurrentTime' プロパティのこの値の変動は、各プラットフォームがビデオを処理し読み取る方法の違いに起因します。

例: 5.6

データ型: double

このプロパティは読み取り専用です。

ファイルの長さ (秒単位)。数値スカラーとして指定します。

データ型: double

このプロパティは読み取り専用です。

1 秒あたりのビデオ フレーム数。数値スカラーとして指定します。可変フレーム レートのビデオの場合、FrameRate は平均フレーム レートを示します。

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

データ型: double

このプロパティは読み取り専用です。

ビデオ フレームの高さ (ピクセル単位)。数値スカラーとして指定します。

データ型: double

このプロパティは読み取り専用です。

ファイル名。文字ベクトルまたは string スカラーとして指定します。

データ型: char | string

このプロパティは読み取り専用です。

メモ

NumberOfFrames は推奨されません。代わりに CurrentTime を使用してください。

ビデオ ストリームのフレーム数。数値スカラーとして指定します。

データ型: double

このプロパティは読み取り専用です。

リーダー オブジェクトに関連付けられているビデオ ファイルの絶対パス。文字ベクトルまたは string スカラーとして指定します。

データ型: char | string

汎用テキスト。文字ベクトルまたは string スカラーとして指定します。

例: 'Experiment 109'

データ型: char | string

ユーザー定義データ。任意のデータ型の値として指定します。

このプロパティは読み取り専用です。

MATLAB でのビデオ形式の表現。文字ベクトルまたは string スカラーとして指定します。

Motion JPEG 2000 ファイル以外の種類のファイルでは、VideoFormat の値は次のいずれかになります。

ビデオ形式

VideoFormat の値

RGB24 ビデオの AVI または MPEG-4 ファイル

'RGB24'

インデックス付きビデオの AVI ファイル

'Indexed'

グレースケール ビデオの AVI ファイル

'Grayscale'

Motion JPEG 2000 ファイルでは、VideoFormat の値は次のいずれかになります。

イメージ データの形式

VideoFormat の値

単一帯域 uint8'Mono8'
単一帯域 int8'Mono8 Signed'
単一帯域 uint16'Mono16'
単一帯域 int16'Mono16 Signed'
3 帯域 uint8'RGB24'
3 帯域 int8'RGB24 Signed'
3 帯域 uint16'RGB48'
3 帯域 int16'RGB48 Signed'

データ型: char | string

このプロパティは読み取り専用です。

ビデオ フレームの幅 (ピクセル単位)。数値スカラーとして指定します。

データ型: double

オブジェクト関数

readファイルからのビデオ フレーム データの読み取り
VideoReader.getFileFormatsVideoReader でサポートされているファイル形式
readFrameビデオ ファイルからのビデオ フレームの読み取り
hasFrameフレームが読み取り可能かどうかを判別

すべて折りたたむ

サンプルのムービー ファイル xylophone.mp4 を読み取る VideoReader オブジェクトを作成します。

v = VideoReader('xylophone.mp4');

すべてのビデオ フレームを読み取ります。

while hasFrame(v)
    video = readFrame(v);
end
whos video
  Name         Size                Bytes  Class    Attributes

  video      240x320x3            230400  uint8              

サンプル ファイル xylophone.mp4 を読み取るオブジェクトを作成します。

v = VideoReader('xylophone.mp4');

ビデオの先頭から 2.5 秒後に読み取りを開始するように指定します。

v.CurrentTime = 2.5;

axes オブジェクトを作成します。読み取り可能なフレームがなくなるまで、ビデオ フレームを読み取ります。

currAxes = axes;
while hasFrame(v)
    vidFrame = readFrame(v);
    image(vidFrame, 'Parent', currAxes);
    currAxes.Visible = 'off';
    pause(1/v.FrameRate);
end

ヒント

  • macOS プラットフォームでは、特定の古いビデオ ファイル形式がサポートされなくなりました。このようなファイルを VideoReader を使用して読み取るには、次を行います。

    • QuickTime プレイヤーを使用してビデオ ファイルを開きます。プレイヤーでファイルの形式が古いことが検出されると、自動的に新しい形式に変換されます。

    • 新しく変換されたビデオ ファイルを保存します。

    • VideoReader を使用して、この新しく変換されたビデオ ファイルを読み取ります。

R2010b で導入