このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
VideoReader
ビデオファ@ @ルを読み取るオブジェクトの作成
説明
VideoReader
オブジェクトは,ビデオデ,タを含むファ,ルの読み取りに使用します。このオブジェクトにはビデオファイルに関する情報が格納されており,ビデオからデータを読み取ることができます。関数VideoReader
を使用してVideoReader
オブジェクトを作成し,オブジェクトのプロパティを使用してビデオに関する情報をクエリしてから,オブジェクト関数を使用してビデオを読み取ることができます。
詳細にいては,ビデオおよびオディオファルのサポト形式を参照してください。
作成
説明
入力引数
文件名
- - - - - -ファ@ @ル名
文字ベクトル|字符串スカラ
ファ@ @ル名。文字ベクトルまたは字符串スカラ,として指定します。
詳細にいては,ビデオおよびオディオファルのサポト形式を参照してください。
例:“myFile.mp4”
例:“. . / dir /视频/ myFile.avi”
デ,タ型:字符
|字符串
プロパティ
VideoReader
オブジェクトには,ビデオファ。プロパティは,CurrentTime
、标签
および用户数据
を除いて読み取り専用です。プロパティの値はオブジェクトの作成後に表示や変更が可能です。たとえば、次のコマンドでVideoReader
オブジェクトv
の持续时间
プロパティの値を確認します。
D = v.时长;
BitsPerPixel
- - - - - -ビデオデ,タのピクセルあたりのビット数
数値スカラ
このプロパティは読み取り専用です。
ビデオデ,タのピクセルあたりのビット数。数値スカラ,として指定します。
デ,タ型:双
CurrentTime
- - - - - -読み取るビデオフレムのタムスタンプ
数値スカラ
読み取るビデオフレムのタムスタンプ。数値スカラ,として指定します。タ▪▪ムスタンプはビデオファ▪▪ルの始まりからの秒数で指定されます。CurrentTime
の値は,ゼロからビデオの継続時間までの間の値です。
プラットフォ,ムによっては,VideoReader
オブジェクトを作成するときに,“CurrentTime”
プロパティに正確に0ではないが,0に近い値が含まれる場合があります。“CurrentTime”
プロパティのこの値の変動は,各プラットフォ,ムがビデオを処理し読み取る方法の違いに起因します。
例:5.6
デ,タ型:双
持续时间
- - - - - -ファ@ @ルの長さ
数値スカラ
このプロパティは読み取り専用です。
ファ▪▪ルの長さ(秒単位)。数値スカラとして指定します。
デ,タ型:双
帧速率
- - - - - -1秒あたりのビデオフレ,ム数
数値スカラ
このプロパティは読み取り専用です。
1秒あたりのビデオフレ,ム数。数値スカラ,として指定します。可変フレ,ムレ,トのビデオの場合,帧速率
は平均フレ,ムレ,トを示します。
メモ:OS X Yosemite(版本10.10)以降では,VideoWriter
を使用して書き込まれたmpeg-4 / h。264ファルは正しく再生されますが,不正確なフレムレトが表示されます。
デ,タ型:双
高度
- - - - - -ビデオフレ,ムの高さ
数値スカラ
このプロパティは読み取り専用です。
ビデオフレ,ムの高さ(ピクセル単位)。数値スカラ,として指定します。
デ,タ型:双
的名字
- - - - - -ファ@ @ル名
文字ベクトル|字符串スカラ
このプロパティは読み取り専用です。
ファ@ @ル名。文字ベクトルまたは字符串スカラ,として指定します。
デ,タ型:字符
|字符串
NumFrames
- - - - - -ビデオストリ,ムのフレ,ム数
数値スカラ
このプロパティは読み取り専用です。
ビデオストリ,ムのフレ,ム数。数値スカラ,として指定します。
メモ
特定の長さのビデオでは,NumFrames
プロパティ値をすぐに使用できない場合があります。NumFrames
プロパティを取得するには,コマンドラv.NumFrames
を入力します。
デ,タ型:双
路径
- - - - - -ビデオファ@ @ルの絶対パス
文字ベクトル|字符串スカラ
このプロパティは読み取り専用です。
リダオブジェクトに関連付けられているビデオファルの絶対パス。文字ベクトルまたは字符串スカラ,として指定します。
デ,タ型:字符
|字符串
标签
- - - - - -汎用テキスト
”
(既定値) |文字ベクトル|字符串スカラ
汎用テキスト。文字ベクトルまたは string スカラーとして指定します。
例:“109年实验”
デ,タ型:字符
|字符串
用户数据
- - - - - -ユ,ザ,定義デ,タ
[]
(既定値) |任意のデ,タ型
ユ,ザ,定義デ,タ。任意のデ,タ型の値として指定します。
VideoFormat
- - - - - -MATLAB®でのビデオ形式の表現
文字ベクトル|字符串スカラ
このプロパティは読み取り専用です。
Matlabでのビデオ形式の表現。文字ベクトルまたは string スカラーとして指定します。
运动JPEG 2000ファereaderル以外の種類のファereaderルでは,VideoFormat
の値は次のいずれかになります。
ビデオ形式 |
|
---|---|
Rgb24ビデオのaviまたはmpeg-4ファaaplル |
“RGB24” |
▪▪▪▪▪ンデックス付きビデオのaviファ▪▪▪▪ル |
“索引” |
グレスケルビデオのaviファル |
“灰度” |
运动JPEG 2000ファ电子邮箱ルでは,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 でサポトされているファル形式 |
例
videereaderオブジェクトの作成とビデオの読み取り
例のムビファル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);结束
版权所有2019 The MathWorks, Inc.
制限
窗户®上の一部のavi, mov,またはmp4ファaaplルでは,関数
readFrame
を使用してファル内のすべてのフレムを読み取った結果のフレム数が,VideoReader
オブジェクトのNumFrames
プロパティによって返される値と異なる場合があります。
ヒント
macOSプラットフォ,ムでは,特定の古いビデオファ,ル形式がサポ,トされなくなりました。このようなファ@ @ルを
VideoReader
を使用して読み取るには,次を行います。QuickTimeプレ、ヤ、を使用してビデオファ、ルを開きます。プレヤでファルの形式が古いことが検出されると,自動的に新しい形式に変換されます。
新しく変換されたビデオファ@ @ルを保存します。
VideoReader
を使用して,この新しく変換されたビデオファ。
拡張機能
C/ c++コ,ド生成
MATLAB®Coder™を使用してCおよびc++コドを生成します。
使用上の注意事項および制限事項:
VideoReader
のコ,ド生成では,ほとんどの形式,構文,メソッド,関数がサポ,トされますが,次の制限があります。
ビデオ形式のサポ,ト:
文件名
がコンパイル時の定数である場合は,MATLABでサポートされるすべての形式がコード生成でサポートされます。Matlabでサポトされるビデオ形式の詳細にいては,ビデオおよびオディオファルのサポト形式を参照してください。文件名
がコンパ@ @ル時の定数でない場合は,デ@ @タをuint8
デタ型に復号化できるビデオファルのみがコド生成でサポトされます。サポ,トされるビデオ形式には,mp4
、。mov
、.AVI
などがあります。
オブジェクトの作成:
Mexタゲットの場合,ビデオファルの部分パスがサポトされます。
RTWタゲットの場合,ビデオファルの絶対パスまたは相対パスを指定しなければなりません。
メソッドと関数:
プラットフォム依存—特定のマシンで生成した
VideoReader
のコ,ドが別のマシンで機能しないときは次のようにします。ビデオに適したコ,デックがタ,ゲットマシンで利用できることを確認します。
テストコードを追加して,ターゲットマシンで作成されたビデオオブジェクトが有効かどうかを確認します。テストコ,ドに,ビデオオブジェクトの高さや幅が有効かどうかの確認を含めることができます。たとえば,次のようになります。
videoObj = videereader(文件名);如果isnan (videoObj.Height)流('创建视频对象失败。\n');返回结束
行優先のレ@ @ @行優先のレ@ @ @ @行優先の配列レ▪▪アウトを使用するコ▪▪ドの生成(MATLAB编码器)
配列サイズの制限——コードを生成する場合,配列の最大要素数は,コードジェネレーターとターゲットハードウェアによって制限されます。詳細にいては,コド生成における配列サズの制限(MATLAB编码器)を参照してください。
Gpuコ,ド生成
GPU编码器™を使用してNVIDIA GPU®のためのCUDA®コードを生成します。
使用上の注意事項および制限事項:
MATLABCoder™金宝appNVIDIA的支持包®杰森®和nvidadrive™平台を使用して,MATLABVideoReader
オブジェクト用のcuda®コードを生成して,NVIDIAターゲットハードウェア上でビデオデータを含むファイルを読み込むことができます。
関数VideoReader
を使用してNVIDIAターゲット上でビデオファイルを読み込むためのCUDAコードを生成する方法の詳細については,读取NVIDIA硬件上的视频文件(NVIDIA Jetson金宝app和NVIDIA DRIVE平台的MATLAB Coder支持包)を参照してください。
生成されたコードはGStreamerライブラリAPIを使用してビデオファイルを読み込みます。英伟达ターゲットプラットフォーム上にGStreamerライブラリ(v1.0以上)をインストールしなければなりません。
コード生成では,GStreamerと互換性のあるファイル(コンテナー)形式とコーデックのみがサポートされます。
コ,ド生成では,関数
VideoReader
はタゲットハドウェア上のビデオファルへの絶対パスが必要です。メソッドと関数:
VideoReader.getFileFormats
—このメソッドはコド生成でサポトされません。
スレッドベ,スの環境
MATLAB®のbackgroundPool
を使用してバックグラウンドでコードを実行するか,并行计算工具箱™のThreadPool
を使用してコ,ドを高速化します。
この関数はスレッドベ,スの環境を完全にサポ,トしています。詳細にいては,スレッドベスの環境でのmatlab関数の実行を参照してください。
バ,ジョン履歴
R2010bで導入
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。