ドキュメンテーション

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

VideoWriter

ビデオ ファイルを書き込む

説明

VideoWriter オブジェクトを使用して、配列または MATLAB® ムービーからビデオ ファイルを作成できます。

事前に定義された "プロファイル" を使用して関数 VideoWriter を呼び出すことで、'Uncompressed AVI''MPEG-4' などの特定の形式に適したプロパティをもつ VideoWriter オブジェクトを作成できます。オブジェクトを作成した後、特定のプロパティを表示したり変更するにはドット表記を使用できます。

v = VideoWriter('newfile.mj2','Motion JPEG 2000');
v.CompressionRatio = 3;

プロパティ値の変更は、ビデオ ファイルを書き込み用に開く前に行ってください。関数 open を呼び出した後でプロパティの値を変更することはできません。

作成

関数 VideoWriter を使用して VideoWriter オブジェクトを作成します。

プロパティ

すべて展開する

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

各出力ビデオ フレームのカラー チャネル数。正の整数として指定します。

  • 未圧縮 AVI、Motion JPEG AVI および MPEG-4 ファイルには 3 つのカラー チャネルがあります。

  • インデックス付き AVI ファイルおよびグレースケール AVI ファイルには 1 つのカラー チャネルがあります。

  • Motion JPEG 2000 ファイルのチャネル数は、関数 writeVideo への入力データによって異なり、モノクロ画像データの場合は 1 つ、カラー データの場合は 3 つです。

データ型: double

ビデオ ファイルの色情報。3 列で最大 256 行をもつ数値行列として指定します。行列の各行は、RGB 3 成分を使用して 1 色を定義します。RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。

カラーマップは、open を呼び出す前に明示的に設定するか、最初のフレームを書き込むときにムービー フレーム構造体の colormap フィールドを使用して設定することができます。

Colormap プロパティは、インデックス付き AVI ファイルの書き込みに使用されるオブジェクトのみに適用されます。

例: colormap(summer(256))

データ型: double | uint8

ターゲットの圧縮率。1 より大きい整数として指定します。圧縮率は、入力イメージのバイト数と圧縮イメージのバイト数の比率です。ビデオ データは、指定されたターゲットを超えない範囲で可能な限り圧縮されます。

CompressionRatio は、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみに使用できます。open を呼び出した後に CompressionRatio 値を変更することはできません。以前に LosslessCompressiontrue に設定した場合、CompressionRatio を設定するとエラーが生成されます。

例: 5

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

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

出力ファイルの継続時間 (秒単位)。スカラー値として指定します。

データ型: double

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

書き込むファイルの種類。'avi''mp4' または 'mj2' を指定します。

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

ファイルの名前。文字ベクトルとして指定します。

データ型: char

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

ビデオ ファイルに書き込まれるフレーム数。整数として指定します。

データ型: double

ビデオの再生レート (1 秒あたりのフレーム数)。正の数値として指定します。

open を呼び出した後に FrameRate 値を変更することはできません。

例: 10

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

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

各ビデオ フレームの高さ (ピクセル単位)。スカラーとして指定します。writeVideo メソッドが最初のフレームの次元に基づいて HeightWidth の値を設定します。

MPEG-4 ファイルは、2 で割り切れるフレーム次元を必要とします。MPEG-4 ファイルの入力フレームの高さが偶数でない場合、VideoWriter は最下部の行を黒いピクセルでパディングします。Windows® システム上の MPEG-4 ファイルの場合、指定可能な値は Windows のバージョンによって異なります。たとえば、Windows 10 では、指定可能な Height の値は [34,2160] の範囲内です。

データ型: double

可逆圧縮。true または false を指定します。LosslessCompression プロパティを使用できるのは、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみです。

LosslessCompressiontrue の場合、次のようになります。

  • 関数 writeVideo は、圧縮を解除した後のデータが入力データと同一になるような方法でデータを書き込みます。

  • VideoWriter は、CompressionRatio の指定された値を無視します。

open を呼び出した後に LosslessCompression 値を変更することはできません。

LosslessCompression は、'Motion JPEG 2000' プロファイルの場合は false'Archival' プロファイルの場合は true に既定で設定されています。

データ型: logical

Motion JPEG 2000 ファイルのビット深度。範囲 [1,16] の整数として指定します。ビット深度は、入力イメージ データの最下位ビットの数です。

MJ2BitDepth は、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみに使用できます。open メソッドを呼び出す前に、値を指定していない場合、VideoWriter は入力データ型に基づいてビット深度を設定します。たとえば、writeVideo に入力されたデータが uint8 の配列または int8 値である場合、MJ2BitDepth8 です。

例: 8

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

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

ビデオ ファイルの絶対パス。文字ベクトルとして指定します。

データ型: char

ビデオの画質。範囲 [0,100] の整数として指定します。数が大きい場合、ビデオの画質は高くなり、ファイル サイズは大きくなります。逆に小さい値では、ビデオの画質がより低く、ファイル サイズがより小さくなります。

Quality は、MPEG-4 または Motion JPEG AVI プロファイルに関連付けられているオブジェクトにのみ使用できます。open を呼び出した後に Quality 値を変更することはできません。

例: 50

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

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

各出力ビデオ フレームのピクセルあたりのビット数。数値スカラーとして指定します。

トゥルーカラー ビデオを含む AVI ファイル、Motion JPEG AVI および MPEG-4 ファイルのピクセルあたりのビット数は 24 です (3 つの各色帯域に対して 8 ビット)。

インデックス付き AVI ファイルおよびグレースケール AVI ファイルのピクセルあたりのビット数は 8 です。

Motion JPEG 2000 ファイルの場合、ピクセルあたりのビット数は、MJ2BitDepth の値および画像データの帯域数によって異なります。たとえば、writeVideo への入力データが uint16 または int16 値の 3 次元配列である場合、MJ2BitDepth の既定値は 16 で、VideoBitsPerPixel48 (ビット深度の 3 倍) です。

データ型: double

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

ビデオ圧縮の種類。'None''H.264''Motion JPEG' または 'Motion JPEG 2000' として指定します。

データ型: char

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

MATLAB でのビデオ形式の表現。文字ベクトルとして指定します。

Motion JPEG 2000 ファイル以外のファイル形式では、VideoFormat は次のいずれかです。

ビデオ形式

VideoFormat の値

未圧縮 AVI、Motion JPEG AVI または MPEG-4 ファイル

'RGB24'

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

'Indexed'

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

'Grayscale'

Motion JPEG 2000 ファイルの場合、VideoFormat は、MJ2BitDepth の値および writeVideo メソッドに対する入力画像データの形式によって異なります。たとえば、MJ2BitDepth プロパティを指定しない場合、VideoWriter はこの表に示す形式を設定します。

イメージ データの形式

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'

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

各ビデオ フレームの幅 (ピクセル単位)。数値スカラーとして指定します。関数 writeVideo が最初のフレームの次元に基づいて HeightWidth の値を設定します。

MPEG-4 ファイルは、2 で割り切れるフレーム次元を必要とします。MPEG-4 ファイルの入力フレームの幅が偶数でない場合、VideoWriter は右端の 1 列を黒いピクセルでパディングします。Windows システム上の MPEG-4 ファイルの場合、指定可能な値は Windows のバージョンによって異なります。たとえば、Windows 10 では、指定可能な Width の値は [34,3872] の範囲内です。

データ型: double

オブジェクト関数

openビデオ データの書き込みのためにファイルを開く
closeビデオ データの書き込み後にファイルを閉じる
writeVideoビデオ データをファイルに書き込む
VideoWriter.getProfilesVideoWriter でサポートされているプロファイルとファイル形式

すべて折りたたむ

newfile.avi という Motion JPEG AVI ファイルを書き込む VideoWriter オブジェクトを作成します。

v = VideoWriter('newfile.avi');

ファイルを書き込み用に開き、300 行 300 列のデータ行列を書き込みます。

open(v)
writeVideo(v,rand(300))

ファイルを閉じます。

close(v)

サンプルの静止画 peppers.png からのデータを含む配列を作成します。

A = imread('peppers.png');

RGB24 ビデオの新しい非圧縮 AVI ファイル用に VideoWriter オブジェクトを作成します。

v = VideoWriter('newfile.avi','Uncompressed AVI');

書き込み用にファイルを開きます。

open(v)

A のイメージをビデオ ファイルに書き込みます。

writeVideo(v,A)

ファイルを閉じます。

close(v)

フレーム シーケンスを peaks.avi という圧縮 AVI ファイルに書き込みます。

新しいファイルを準備します。

v = VideoWriter('peaks.avi');
open(v);

初期データを生成して、軸と図のプロパティを設定します。

Z = peaks;
surf(Z); 
axis tight manual 
set(gca,'nextplot','replacechildren'); 

一連のフレームを作成し、各フレームをファイルに書き込みます。

for k = 1:20 
   surf(sin(2*pi*k/20)*Z,Z)
   frame = getframe(gcf);
   writeVideo(v,frame);
end

close(v);

R2010b で導入

この情報は役に立ちましたか?