このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
VideoWriter
ビデオ ファイルを書き込むオブジェクトの作成
説明
VideoWriter
オブジェクトは、配列または MATLAB® ムービーからビデオ ファイルを作成する場合に使用します。このオブジェクトには、ビデオに関する情報と出力ビデオを制御するプロパティが含まれています。関数 VideoWriter
を使用して VideoWriter
オブジェクトを作成し、そのプロパティを指定してから、オブジェクト関数を使用してビデオを書き込むことができます。
作成
説明
入力引数
ファイル名。文字ベクトルまたは string スカラーとして指定します。VideoWriter
がファイルを作成します。
VideoWriter
では次のファイル拡張子がサポートされています。
| AVI ファイル |
| Motion JPEG 2000 ファイル |
| MPEG-4 ファイル (Windows® 7 以降または macOS 10.7 以降のシステム) |
有効なファイル拡張子を指定しない場合、VideoWriter
は profile
引数の値に応じて、拡張子に .avi
、.mj2
または .mp4
を使用します。profile
の値を指定しない場合、VideoWriter
は拡張子が .avi
の Motion JPEG 圧縮 AVI ファイルを作成します。
例: 'myFile.avi'
例: '../dir/videos/myFile.mj2'
ファイルの種類。次のいずれかとして指定します。
profile の値 | 説明 |
---|---|
| 可逆圧縮による Motion JPEG 2000 ファイル |
| Motion JPEG エンコードを使用する AVI ファイル |
| Motion JPEG 2000 ファイル |
| H.264 エンコードを使用する MPEG-4 ファイル (Windows 7 以降または macOS 10.7 以降のシステム) |
|
|
| インデックス付きビデオを使用した非圧縮 AVI ファイル |
| グレースケール ビデオを使用した非圧縮 AVI ファイル |
profile
によって、VideoCompressionMethod
などのビデオ プロパティの既定値が設定されます。
プロパティ
VideoWriter
オブジェクトには、出力ビデオを制御するプロパティが含まれています。事前に定義された "プロファイル" を指定した関数 VideoWriter
を使用することで、'Uncompressed AVI'
や 'MPEG-4'
などの特定の形式に適したプロパティをもつ VideoWriter
オブジェクトを作成できます。たとえば、Motion JPEG AVI
プロファイルを使用して VideoWriter
オブジェクトを作成し、Quality
プロパティに値を割り当てることができます。
v = VideoWriter('newfile.avi','Motion JPEG AVI'); v.Quality = 95;
VideoWriter
オブジェクトで関数 open
を呼び出した後にプロパティの値を変更することはできません。そのため、プロパティの値の変更はビデオ ファイルを書き込み用に開く前に行ってください。
この プロパティ は読み取り専用です。
各出力ビデオ フレームのカラー チャネル数。正の整数として指定します。
未圧縮 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
値を変更することはできません。以前に LosslessCompression
を true
に設定した場合、CompressionRatio
を設定するとエラーが生成されます。
例: 5
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
この プロパティ は読み取り専用です。
出力ファイルの継続時間 (秒単位)。スカラー値として指定します。
データ型: double
この プロパティ は読み取り専用です。
書き込むファイルの種類。'avi'
、'mp4'
または 'mj2'
を指定します。
この プロパティ は読み取り専用です。
ファイルの名前。文字ベクトルまたは string スカラーとして指定します。
この プロパティ は読み取り専用です。
ビデオ ファイルに書き込まれるフレーム数。整数として指定します。
データ型: double
ビデオの再生レート (1 秒あたりのフレーム数)。正の数値として指定します。
open
を呼び出した後に FrameRate
値を変更することはできません。
例: 10
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
この プロパティ は読み取り専用です。
各ビデオ フレームの高さ (ピクセル単位)。スカラーとして指定します。writeVideo
メソッドが最初のフレームの次元に基づいて Height
と Width
の値を設定します。
MPEG-4 ファイルは、2 で割り切れるフレーム次元を必要とします。MPEG-4 ファイルの入力フレームの高さが偶数でない場合、VideoWriter
は最下部の行を黒いピクセルでパディングします。Windows システム上の MPEG-4 ファイルの場合、指定可能な値は Windows のバージョンによって異なります。
データ型: double
可逆圧縮。数値または logical 1
(true
) または 0
(false
) として指定します。LosslessCompression
プロパティは、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみに使用できます。
LosslessCompression
が true
の場合、次のようになります。
関数
writeVideo
は、圧縮を解除した後のデータが入力データと同一になるような方法でデータを書き込みます。VideoWriter
は、CompressionRatio
の指定された値を無視します。
open
を呼び出した後に LosslessCompression
値を変更することはできません。
LosslessCompression
は、'Motion JPEG 2000'
プロファイルの場合は false
、'Archival'
プロファイルの場合は true
に既定で設定されています。
Motion JPEG 2000 ファイルのビット深度。範囲 [1,16]
の整数として指定します。ビット深度は、入力イメージ データの最下位ビットの数です。
MJ2BitDepth
は、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみに使用できます。open
メソッドを呼び出す前に、値を指定していない場合、VideoWriter
は入力データ型に基づいてビット深度を設定します。たとえば、writeVideo
に入力されたデータが uint8
の配列または int8
値である場合、MJ2BitDepth
は 8
です。
例: 8
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
この プロパティ は読み取り専用です。
ビデオ ファイルの絶対パス。文字ベクトルまたは string スカラーとして指定します。
ビデオの画質。範囲 [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
で、VideoBitsPerPixel
は 48
(ビット深度の 3 倍) です。
データ型: double
この プロパティ は読み取り専用です。
ビデオ圧縮の種類。'None'
、'H.264'
、'Motion JPEG'
または 'Motion JPEG 2000'
として指定します。
この プロパティ は読み取り専用です。
MATLAB でのビデオ形式の表現。文字ベクトルまたは string スカラーとして指定します。
Motion JPEG 2000 ファイル以外のファイル形式では、VideoWriter
は VideoFormat
を次の表のいずれかの値に設定します。
ビデオ形式 |
|
---|---|
未圧縮 AVI、Motion JPEG AVI または MPEG-4 ファイル | 'RGB24' |
インデックス付きビデオの AVI ファイル | 'Indexed' |
グレースケール ビデオの AVI ファイル | 'Grayscale' |
Motion JPEG 2000 ファイルの場合、VideoWriter
は VideoFormat
を MJ2BitDepth
の値と writeVideo
メソッドに対する入力イメージ データの形式に基づいて設定します。たとえば、MJ2BitDepth
プロパティを指定しない場合、VideoWriter
は次のように形式を設定します。
イメージ データの形式 |
|
---|---|
単一帯域 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
が最初のフレームの次元に基づいて Height
と Width
の値を設定します。
MPEG-4 ファイルは、2 で割り切れるフレーム次元を必要とします。MPEG-4 ファイルの入力フレームの幅が偶数でない場合、VideoWriter
は右端の 1 列を黒いピクセルでパディングします。Windows システム上の MPEG-4 ファイルの場合、指定可能な値は Windows のバージョンによって異なります。
データ型: double
オブジェクト関数
open | ビデオ データの書き込みのためにファイルを開く |
close | ビデオ データの書き込み後にファイルを閉じる |
writeVideo | ビデオ データをファイルに書き込む |
VideoWriter.getProfiles | VideoWriter でサポートされているプロファイルとファイル形式 |
例
ファイルにビデオを書き込みます。最初にランダム データを含む配列を作成し、出力ファイルの VideoWriter
オブジェクトを作成してから、配列をビデオに書き込みます。
300 行 300 列のデータの行列を作成します。
A = rand(300);
newfile.avi
という Motion JPEG AVI ファイルを書き込む VideoWriter
オブジェクトを作成し、オブジェクトを書き込み用に開きます。
v = VideoWriter("newfile.avi");
open(v)
データの行列 A
をビデオ ファイルに書き込みます。
writeVideo(v,A)
VideoWriter
オブジェクトを閉じます。
close(v)
プロファイルを指定してビデオ オブジェクトを作成し、RGB イメージを含む配列を作成して、その配列をビデオ ファイルに書き込みます。
RGB24 ビデオの新しい非圧縮 AVI ファイル用に VideoWriter
オブジェクトを作成します。
v = VideoWriter("newfile.avi","Uncompressed AVI");
書き込み用にファイルを開きます。
open(v)
サンプルの静止画 peppers.png
からのデータを含む配列を作成します。A
のイメージをビデオ ファイルに書き込みます。
A = imread("peppers.png");
writeVideo(v,A)
VideoWriter
オブジェクトを閉じます。
close(v)
ビデオのフレームの生成に使用する座標軸と Figure のプロパティを設定します。
Z = peaks; surf(Z); axis tight manual
set(gca,"NextPlot","replacechildren")
出力ビデオ ファイルの VideoWriter
オブジェクトを作成し、オブジェクトを書き込み用に開きます。
v = VideoWriter("peaks.avi");
open(v)
一連のフレームを生成し、Figure から各フレームを取得して、各フレームをファイルに書き込みます。
for k = 1:20 surf(sin(2*pi*k/20)*Z,Z) frame = getframe(gcf); writeVideo(v,frame) end
VideoWriter
オブジェクトを閉じます。
close(v)
拡張機能
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2010b で導入MATLAB backgroundPool
を使用して、バックグラウンドで VideoWriter
を実行できます。
R2021b 以前のバージョンの MATLAB では、JPEG 2000 イメージ間でピクセル値が異なる可能性があります。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)