主要内容

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

VideoReader

ビデオファ@ @ルを読み取るオブジェクトの作成

説明

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

詳細にいては,ビデオおよびオディオファルのサポト形式を参照してください。

作成

説明

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

v= VideoReader (文件名名称,值は,名前と値の引数を使用してCurrentTime标签用户数据の各プロパティを設定します。たとえば,VideoReader(“myfile.mp4”、“CurrentTime”,1.2)は,ビデオの先頭から1.2秒後に読み取りを開始します。名前と値の引数は複数指定することができます。各プロパティの名前を一重引用符で囲み,その後に対応する値を指定します。

入力引数

すべて展開する

ファ@ @ル名。文字ベクトルまたは字符串スカラ,として指定します。

詳細にいては,ビデオおよびオディオファルのサポト形式を参照してください。

例:“myFile.mp4”

例:“. . / dir /视频/ myFile.avi”

デ,タ型:字符|字符串

プロパティ

すべて展開する

VideoReaderオブジェクトには,ビデオファ。プロパティは,CurrentTime标签および用户数据を除いて読み取り専用です。プロパティの値はオブジェクトの作成後に表示や変更が可能です。たとえば、次のコマンドでVideoReaderオブジェクトv持续时间プロパティの値を確認します。

D = v.时长;

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

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

デ,タ型:

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

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

例:5.6

デ,タ型:

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

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

デ,タ型:

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

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

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

デ,タ型:

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

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

デ,タ型:

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

ファ@ @ル名。文字ベクトルまたは字符串スカラ,として指定します。

デ,タ型:字符|字符串

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

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

メモ

特定の長さのビデオでは,NumFramesプロパティ値をすぐに使用できない場合があります。NumFramesプロパティを取得するには,コマンドラv.NumFramesを入力します。

デ,タ型:

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

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

デ,タ型:字符|字符串

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

例:“109年实验”

デ,タ型:字符|字符串

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

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

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

运动JPEG 2000ファereaderル以外の種類のファereaderルでは,VideoFormatの値は次のいずれかになります。

ビデオ形式

VideoFormatの値

Rgb24ビデオのaviまたはmpeg-4ファaaplル

“RGB24”

▪▪▪▪▪ンデックス付きビデオのaviファ▪▪▪▪ル

“索引”

グレスケルビデオのaviファル

“灰度”

运动JPEG 2000ファ电子邮箱ルでは,VideoFormatの値は次のいずれかになります。

イメージデータの形式

VideoFormatの値

単一帯域uint8 “Mono8”
単一帯域int8 “Mono8签署”
単一帯域uint16 “Mono16”
単一帯域int16 “Mono16签署”
3 帯域uint8 “RGB24”
3 帯域int8 “RGB24签署”
3 帯域uint16 “RGB48”
3 帯域int16 “RGB48签署”

デ,タ型:字符|字符串

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

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

デ,タ型:

オブジェクト関数

hasFrame ビデオフレ,ムが読み取り可能かどうかを判別
1以上のビデオフレムの読み取り
readFrame 次のビデオフレ,ムの読み取り
VideoReader.getFileFormats VideoReaderでサポトされているファル形式

すべて折りたたむ

例のムビファルxylophone.mp4用のVideoReaderオブジェクトを作成します。

v =视频阅读器(“xylophone.mp4”);

ビデオから,1フレムずすべてのフレムを読み取ります。

hasFrame(v) frame = readFrame(v);结束

readFrameによって返された最後のフレ,ムに関する情報を表示します。

框架
名称大小字节类属性frame 240x320x3 230400 uint8

ビデオリ,ダ,オブジェクトを作成し,特定の時間からビデオフレ,ムを読み取ります。

例のムビファルxylophone.mp4を読み取るオブジェクトを作成します。

v =视频阅读器(“xylophone.mp4”);

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

v.CurrentTime = 2.5;

フレムを表示する轴オブジェクトを作成します。次に,読み取り可能なフレームがなくなるまで、ビデオ フレームの読み取りと表示を続行します。

currAxes =轴;hasFrame(v) vidFrame = readFrame(v);图像(vidFrame,“父”, currAxes);currAxes。可见=“关闭”;暂停(1 / v.FrameRate);结束

ビデオリーダーオブジェクトを作成し,フレームインデックスを使用して1つ以上のビデオフレームを読み取ります。

例のムビファルxylophone.mp4用のVideoReaderオブジェクトを作成します。

v =视频阅读器(“xylophone.mp4”);

最初のビデオフレ,ムだけを読み取ります。

Frame = read(v,1);

最後のビデオフレ,ムだけを読み取ります。

帧= read(v,Inf);

フレム5から10を読み取ります。

帧= read(v,[5 10]);

50フレム目からビデオファルの最後までを読み取ります。

帧= read(v,[50 Inf]);

フレームインデックスを指定してビデオから1フレームを読み取り,次にビデオの残りのフレームを1フレームずつ読み取ります。

VideoReaderオブジェクトを作成し,CurrentTimeプロパティ値を表示します。このビデオのCurrentTimeプロパティ値0は,ビデオからフレ,ムが読み取られていないことを示します。

vidObj =视频阅读器(“xylophone.mp4”);vidObj。CurrentTime
Ans = 0

フレムンデックスを指定して,ビデオから20番目のフレムを読み取ります。次に,CurrentTimeプロパティ値を表示します。メソッドは,20番目のフレ,ムが読み取られたことを反映して,CurrentTimeプロパティを自動的に更新します。ここで関数readFrameを呼び出すと,21番目のフレ,ムが返されます。

frame20 = read(vidObj,20);vidObj。CurrentTime
Ans = 0.6667

readFrameメソッドを使用して,ビデオの残りのフレ,ムを読み取ります。readFrameメソッドは,CurrentTimeプロパティの時間に対応するフレ,ムを返します。たとえば,次のコードは、21 番目のフレームからフレームの読み取りと表示を開始し、読み取るフレームがなくなるまで続行します。

(hasFrame(vidObj)) frame = readFrame(vidObj);imshow(框架);标题(sprintf ('当前时间= %。3 f交会”vidObj.CurrentTime));暂停(2 / vidObj.FrameRate);结束

图中包含一个轴对象。标题为Current Time = 4.700 sec的axes对象包含一个image类型的对象。

版权所有2019 The MathWorks, Inc.

制限

  • 窗户®上の一部のavi, mov,またはmp4ファaaplルでは,関数readFrameを使用してファル内のすべてのフレムを読み取った結果のフレム数が,VideoReaderオブジェクトのNumFramesプロパティによって返される値と異なる場合があります。

ヒント

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

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

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

    • VideoReaderを使用して,この新しく変換されたビデオファ。

拡張機能

バ,ジョン履歴

R2010bで導入