Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

vision.VideoFileWriter

ビデオ ファイルへのビデオ フレームとオーディオ サンプルの書き込み

説明

VideoFileWriter オブジェクトは、ビデオ フレームとオーディオ サンプルをビデオ ファイルに書き込みます。ビデオおよびオーディオは圧縮できます。使用可能な圧縮タイプは、プラットフォームにインストールされているエンコーダーによって異なります。

メモ:

このブロックは、ファイル I/O が使用可能なプラットフォームにおけるコード生成をサポートしています。Simulink® Desktop Real-Time™ ソフトウェアではファイル I/O がサポートされていないため、その製品でこのブロックを使用することはできません。

このオブジェクトのパフォーマンスは、Version 11 以降の Windows Media® Player ソフトウェアを備えたプラットフォームで最も高くなります。このオブジェクトは、Linux® プラットフォームおよび Mac プラットフォームでは非圧縮の RGB24 AVI ファイルのみをサポートします。

このオブジェクトに対して生成されたコードは、プリビルドされるライブラリ ファイルに依存しています。このコードは MATLAB® 環境外で実行したり、再配布したりできますが、その際にはこれらの追加ライブラリ ファイルについても必ず説明してください。関数 packNGo は、このコードの実行またはリビルドに必要なすべての要素を含んだ単一の zip ファイルを作成します。詳細は、packNGo (Simulink Coder) を参照してください。

オブジェクトから生成された実行可能ファイルを実行するには、システム パスにプリコンパイルされた共有ライブラリ ファイルを追加しなければならない場合があります。詳細については、MATLAB CoderSimulink 共有ライブラリの依存関係を参照してください。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

作成

説明

videoFWriter = vision.VideoFileWriter は、ビデオ ファイル ライター System object、videoFWriter を返します。これはビデオ フレームを非圧縮の 'output.avi' ビデオ ファイルに書き込みます。step メソッドを呼び出すたびに、ビデオ フレームが書き込まれます。

videoFWriter = vision.VideoFileWriter(Filename) は、ファイル Filename にビデオを書き込むビデオ ファイル ライター オブジェクト videoFWriter を返します。ファイル タイプは .avi.mj2.mp4、および .m4v で、FileFormat プロパティで指定します。

videoFWriter = vision.VideoFileWriter(___,Name,Value) は、ビデオ ファイル ライターのプロパティを構成します。このプロパティは、1 つ以上の名前と値のペアの引数として指定されます。指定していないプロパティは既定値になります。

Name はプロパティ名で Value は対応する値です。Name は一重引用符 ('') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: videoFWriter = vision.VideoFileWriter('myFile.avi','FrameRate',... videoFReader.info.VideoFrameRate);

プロパティ

すべて展開する

ビデオの出力ファイル名。文字ベクトルとして指定します。Filename に指定するファイル拡張子は FileFormat と一致しなければなりません。

出力ファイル形式。以下の表に示したファイル形式のいずれかとして指定します。

ファイル形式説明ファイルの拡張子サポートされているプラットフォーム

'AVI'

Audio-Video Interleave ファイル.avi すべてのプラットフォーム

'MJ2000'

Motion JPEG 2000 ファイル.mj2 すべてのプラットフォーム

'MPEG4'

MPEG-4/H.264 ビデオ.mp4 , .m4vWindows® および Mac

オーディオ データの書き込み。false または true として指定します。このプロパティを使用して、ビデオ ファイルにオーディオ サンプルを書き込むかどうかを制御します。オーディオ データを書き込むには、この値を true に設定します。オーディオおよびビデオをファイルに書き込むには、.avi 形式を使用しなければなりません。

フレーム/秒単位のビデオのフレーム レート。正の数値スカラーとして指定します。オーディオ データも含むビデオの場合、オーディオ データのレートは、ビデオのレートと渡されるオーディオ サンプル数の積として決定されます。たとえば、使用するフレーム レートが 30 で、渡すオーディオ サンプル数が 1470 の場合、オブジェクトはオーディオ サンプルを 44100 (1470 x 30 = 44100) に設定します。

オーディオ データに実装する圧縮アルゴリズムのタイプを指定します。この圧縮によってビデオ ファイルのサイズが小さくなります。ビデオ ファイルに非圧縮のオーディオ データを保存するには、None (uncompressed) を選択します。その他のオプションは、システムにインストールされている使用可能なオーディオ圧縮アルゴリズムを反映します。このプロパティは、Windows プラットフォームで AVI ファイルを書き込む場合にのみ適用されます。

ビデオ データの圧縮に使用する圧縮アルゴリズムのタイプを指定します。この圧縮によってビデオ ファイルのサイズが小さくなります。ビデオ ファイルに非圧縮のビデオ データを保存するには、None (uncompressed) を選択します。VideoCompressor プロパティは、システムで使用可能な圧縮法のいずれかに設定することもできます。使用可能なビデオ圧縮法のリストを取得するには、タブ補完を使用します。次の手順に従います。

  1. オブジェクトのインスタンスを作成します。

    y = vision.VideoFileWriter

  2. タブ補完機能を起動するには、以下を左引用符まで入力します。

    y.VideoCompressor='

    Tab キーを押すと、システムで使用可能な圧縮法のリストが表示されます。次に例を示します。

このプロパティは、Windows プラットフォームで AVI ファイルを書き込む場合にのみ適用されます。

圧縮後の出力オーディオのデータ型を指定します。このプロパティは、非圧縮の WAV ファイルを書き込む場合にのみ適用されます。

出力 AVI ファイルの色空間。RGB または YCbCr 4:2:2 として指定します。このプロパティは、Windows プラットフォームで FileFormat プロパティを AVI に設定した場合にのみ適用されます。

出力ビデオ ファイルのサイズを制御します。範囲 [0,100] の整数として指定します。ビデオの画質を上げるには、この値を大きくします。ただし、その際にはファイル サイズが大きくなります。値を小さくするとビデオの画質は低下し、ファイル サイズも小さくなります。

Quality プロパティは、(Windows または Mac で) MPEG4 ビデオ ファイルを書き込む場合や、Mac または Linux でビデオのみの MJPEG-AVI ファイルを書き込む場合にのみ適用されます。

入力イメージと圧縮イメージのバイト数の目標比率。1 より大きい整数として指定します。CompressionFactor は入力イメージと圧縮イメージのバイト数の目標比率を示します。データは、指定されたターゲットまで可能な限り圧縮されます。このプロパティは、非可逆の MJ2000 ファイルを書き込む場合にのみ適用されます。

使用法

説明

Filename = videoFWriter(videoFrame) は、ビデオ videoFrame の 1 フレームを出力ファイルに書き込みます。入力ビデオは、M x N x 3 のトゥルーカラー RGB ビデオ フレームまたは M 行 N 列のグレースケール ビデオ フレームにできます。

Filename = videoFWriter(videoFrame,audio) は、入力ビデオ videoFrame の 1 フレームとオーディオ サンプル audio の 1 フレームを出力ファイルに書き込みます。このプロパティは、AudioInputPort のプロパティが true に設定されている場合に適用されます。

Filename = videoFWriter(videoFrame,Y,Cb,Cr,audio) は、YCbCr 4:2:2 ビデオの 1 フレームとオーディオ サンプル audio の 1 フレームを出力ファイルに書き込みます。これは、AudioInputPort プロパティを true に、FileColorSpace プロパティを 'YCbCr 4:2:2' に設定した場合に適用されます。Cb と Cr の色成分の幅は Y の幅の半分でなければなりません。

入力引数

すべて展開する

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

YCbCr 色形式。YCbCr 4:2:2 形式で返されます。

オーディオ サンプルの 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 ではサポートされていません。

出力引数

すべて展開する

ビデオの出力ファイル名。'.avi''.mj2''.mp4'、および '.m4v' として指定します。Filename に指定するファイル拡張子は FileFormat と一致しなければなりません。

オブジェクト関数

オブジェクト関数を使用するには、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('viplanedeparture.mp4');
videoFWriter = vision.VideoFileWriter('myFile.avi', ...
    'FrameRate',videoFReader.info.VideoFrameRate);

元のファイルの最初の 50 フレームを新しく作成した myFile.avi ファイルに書き込みます。

for i=1:50
  videoFrame = videoFReader();
  videoFWriter(videoFrame);
end

入力ファイルと出力ファイルを閉じます。

release(videoFReader);
release(videoFWriter);

拡張機能

R2012a で導入