このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ビデオ ファイルを書き込むオブジェクトの作成
VideoWriter
オブジェクトは、配列または MATLAB® ムービーからビデオ ファイルを作成する場合に使用します。このオブジェクトには、ビデオに関する情報と出力ビデオを制御するプロパティが含まれています。関数 VideoWriter
を使用して VideoWriter
オブジェクトを作成し、そのプロパティを指定してから、オブジェクト関数を使用してビデオを書き込むことができます。
filename
— ファイル名ファイル名。文字ベクトルまたは 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'
データ型: char
| string
profile
— ファイルの種類'Motion JPEG AVI'
(既定値) | 'Archival'
| 'Motion JPEG 2000'
| ...ファイルの種類。次のいずれかとして指定します。
profile の値 | 説明 |
---|---|
|
可逆圧縮による Motion JPEG 2000 ファイル |
|
Motion JPEG エンコードを使用する AVI ファイル |
|
Motion JPEG 2000 ファイル |
| H.264 エンコードを使用する MPEG-4 ファイル (Windows 7 以降または macOS 10.7 以降のシステム) |
|
|
|
インデックス付きビデオを使用した非圧縮 AVI ファイル |
|
グレースケール ビデオを使用した非圧縮 AVI ファイル |
profile
によって、VideoCompressionMethod
などのビデオ プロパティの既定値が設定されます。
データ型: char
| string
VideoWriter
オブジェクトには、出力ビデオを制御するプロパティが含まれています。事前に定義された "プロファイル" を指定した関数 VideoWriter
を使用することで、'Uncompressed AVI'
や 'MPEG-4'
などの特定の形式に適したプロパティをもつ VideoWriter
オブジェクトを作成できます。たとえば、Motion JPEG AVI
プロファイルを使用して VideoWriter
オブジェクトを作成し、Quality
プロパティに値を割り当てることができます。
v = VideoWriter('newfile.avi','Motion JPEG AVI'); v.Quality = 95;
VideoWriter
オブジェクトで関数 open
を呼び出した後にプロパティの値を変更することはできません。そのため、プロパティの値の変更はビデオ ファイルを書き込み用に開く前に行ってください。
ColorChannels
— カラー チャネルの数このプロパティは読み取り専用です。
各出力ビデオ フレームのカラー チャネル数。正の整数として指定します。
未圧縮 AVI、Motion JPEG AVI および MPEG-4 ファイルには 3 つのカラー チャネルがあります。
インデックス付き AVI ファイルおよびグレースケール AVI ファイルには 1 つのカラー チャネルがあります。
Motion JPEG 2000 ファイルのチャネル数は、関数 writeVideo
への入力データによって異なり、モノクロ データの場合は 1 つ、カラー データの場合は 3 つです。
データ型: double
Colormap
— ビデオ ファイルの色情報P
行 3 列の数値行列ビデオ ファイルの色情報。3 列で最大 256 行をもつ数値行列として指定します。行列の各行は、RGB 3 成分を使用して 1 色を定義します。RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1]
の範囲でなければなりません。
カラーマップは、open
を呼び出す前に明示的に設定するか、最初のフレームを書き込むときにムービー フレーム構造体の colormap
フィールドを使用して設定することができます。
Colormap
プロパティは、インデックス付き AVI ファイルの書き込みに使用されるオブジェクトのみに適用されます。
例: colormap(summer(256))
データ型: double
| uint8
CompressionRatio
— ターゲットの圧縮率10
(既定値) | 1 より大きい整数ターゲットの圧縮率。1 より大きい整数として指定します。圧縮率は、入力イメージのバイト数と圧縮イメージのバイト数の比率です。ビデオ データは、指定されたターゲットを超えない範囲で可能な限り圧縮されます。
CompressionRatio
は、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみに使用できます。open
を呼び出した後に CompressionRatio
値を変更することはできません。以前に LosslessCompression
を true
に設定した場合、CompressionRatio
を設定するとエラーが生成されます。
例: 5
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Duration
— 出力ファイルの継続時間このプロパティは読み取り専用です。
出力ファイルの継続時間 (秒単位)。スカラー値として指定します。
データ型: double
FileFormat
— 書き込むファイルの種類'avi'
| 'mp4'
| 'mj2'
このプロパティは読み取り専用です。
書き込むファイルの種類。'avi'
、'mp4'
または 'mj2'
を指定します。
データ型: char
| string
Filename
— ファイルの名前このプロパティは読み取り専用です。
ファイルの名前。文字ベクトルまたは string スカラーとして指定します。
データ型: char
| string
FrameCount
— フレームの数このプロパティは読み取り専用です。
ビデオ ファイルに書き込まれるフレーム数。整数として指定します。
データ型: double
FrameRate
— ビデオ再生レート30
(既定値) | 正の数値ビデオの再生レート (1 秒あたりのフレーム数)。正の数値として指定します。
open
を呼び出した後に FrameRate
値を変更することはできません。
例: 10
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Height
— 各ビデオ フレームの高さこのプロパティは読み取り専用です。
各ビデオ フレームの高さ (ピクセル単位)。スカラーとして指定します。writeVideo
メソッドが最初のフレームの次元に基づいて Height
と Width
の値を設定します。
MPEG-4 ファイルは、2 で割り切れるフレーム次元を必要とします。MPEG-4 ファイルの入力フレームの高さが偶数でない場合、VideoWriter
は最下部の行を黒いピクセルでパディングします。Windows システム上の MPEG-4 ファイルの場合、指定可能な値は Windows のバージョンによって異なります。
データ型: double
LosslessCompression
— 可逆圧縮true
| false
可逆圧縮。true
または false
を指定します。LosslessCompression
プロパティを使用できるのは、Motion JPEG 2000 ファイルの書き込みに使用されるオブジェクトのみです。
LosslessCompression
が true
の場合、次のようになります。
関数 writeVideo
は、圧縮を解除した後のデータが入力データと同一になるような方法でデータを書き込みます。
VideoWriter
は、CompressionRatio
の指定された値を無視します。
open
を呼び出した後に LosslessCompression
値を変更することはできません。
LosslessCompression
は、'Motion JPEG 2000'
プロファイルの場合は false
、'Archival'
プロファイルの場合は true
に既定で設定されています。
データ型: logical
MJ2BitDepth
— Motion JPEG 2000 ファイルのビット深度[1,16]
の整数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
Path
— ビデオ ファイルの絶対パスこのプロパティは読み取り専用です。
ビデオ ファイルの絶対パス。文字ベクトルまたは string スカラーとして指定します。
データ型: char
| string
Quality
— ビデオの画質75
(既定値) | 範囲 [0,100]
の整数ビデオの画質。範囲 [0,100]
の整数として指定します。数が大きい場合、ビデオの画質は高くなり、ファイル サイズは大きくなります。逆に小さい値では、ビデオの画質がより低く、ファイル サイズがより小さくなります。
Quality
は、MPEG-4
または Motion JPEG AVI
プロファイルに関連付けられているオブジェクトにのみ使用できます。open
を呼び出した後に Quality
値を変更することはできません。
例: 50
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
VideoBitsPerPixel
— ピクセルあたりのビット数このプロパティは読み取り専用です。
各出力ビデオ フレームのピクセルあたりのビット数。数値スカラーとして指定します。
トゥルーカラー ビデオを含む 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
VideoCompressionMethod
— ビデオ圧縮の種類'None'
| 'H.264'
| 'Motion JPEG'
| 'Motion JPEG 2000'
このプロパティは読み取り専用です。
ビデオ圧縮の種類。'None'
、'H.264'
、'Motion JPEG'
または 'Motion JPEG 2000'
として指定します。
データ型: char
| string
VideoFormat
— MATLAB でのビデオ形式の表現このプロパティは読み取り専用です。
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' |
データ型: char
| string
Width
— 各ビデオ フレームの幅このプロパティは読み取り専用です。
各ビデオ フレームの幅 (ピクセル単位)。数値スカラーとして指定します。関数 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)
ファイルを閉じます。
close(v)
プロファイルを指定してビデオ オブジェクトを作成し、RGB イメージを含む配列を作成して、その配列をビデオ ファイルに書き込みます。
RGB24 ビデオの新しい非圧縮 AVI ファイル用に VideoWriter
オブジェクトを作成します。
v = VideoWriter('newfile.avi','Uncompressed AVI');
書き込み用にファイルを開きます。
open(v)
サンプルの静止画 peppers.png
からのデータを含む配列を作成します。A
のイメージをビデオ ファイルに書き込みます。
A = imread('peppers.png');
writeVideo(v,A)
ファイルを閉じます。
close(v)
フレームのシーケンスを圧縮 AVI ファイルに書き込みます。最初に一連のフレームを生成し、書き込むファイルのビデオ オブジェクトを作成してから、フレームをビデオ ファイルに書き込みます。
ビデオのフレームの生成に使用する座標軸と Figure のプロパティを設定します。
Z = peaks; surf(Z); axis tight manual set(gca,'nextplot','replacechildren');
出力ビデオ ファイルのビデオ ライター オブジェクトを作成し、オブジェクトを書き込み用に開きます。
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 close(v);
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.