6 Oracle Multimedia ORD_VIDEO PL/SQLパッケージ
Oracle Multimediaでは、ORD_VIDEO PL/SQLパッケージが提供されます。このパッケージには、一般的な操作(オペレーティング・システム・ファイルを対象とするビデオ・データのインポートおよびエクスポートや、ビデオ・データからの情報の抽出など)を実行するためのプロシージャが含まれます。
このパッケージにより、BLOBおよびBFILEに格納されているビデオ・データにOracle Multimediaサポートが追加されます。
ORD_VIDEOパッケージは、ordvrpsp.sqlファイルに定義されています。インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。
<ORACLE_HOME>/ord/im/admin (LinuxおよびUNIXの場合)
<ORACLE_HOME>\ord\im\admin (Windowsの場合)
これらのトピックの例では、TVID表およびVIDEODIRディレクトリが存在すると仮定します。
ORD_VIDEO PL/SQLパッケージのプロシージャの詳細は、次のトピックを参照してください。
関連項目:
-
オペレーティング・システム・ファイルを対象にビデオ・データをエクスポートおよびインポートする方法の詳細は、「すべてのOracle Multimedia PL/SQLパッケージAPIに共通のプロシージャ」を参照してください。
-
例で使用されている表およびディレクトリの詳細は、Oracle Multimedia PL/SQLパッケージの例を参照してください。
6.1 ORD_VIDEO PL/SQLパッケージ: BFILEのgetProperties( )
構文
getProperties(videoBfile IN OUT NOCOPY BFILE,
attributes IN OUT NOCOPY CLOB);説明
BFILEに格納されたビデオ・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このプロシージャは、XML形式で一連のフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
使用上の注意
なし。
プラグマ
なし。
例外
なし。
例
既知のビデオ属性のプロパティ情報を取得します。
DECLARE
vid_attrib CLOB;
vid_data BFILE := BFILENAME('VIDEODIR','testvid.dat');
BEGIN
DBMS_LOB.CREATETEMPORARY(vid_attrib, FALSE, DBMS_LOB.CALL);
-- get properties from bfile
ORDSYS.ORD_VIDEO.getProperties(vid_data, vid_attrib);
-- print length of extracted properties
DBMS_OUTPUT.PUT_LINE('Size of XML Annotations ' ||
TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/6.2 ORD_VIDEO PL/SQLパッケージ: BFILEのgetProperties( ) (すべての属性)
構文
getProperties(videoBfile IN OUT NOCOPY BFILE,
mimeType OUT VARCHAR2,
format OUT VARCHAR2,
width OUT INTEGER,
height OUT INTEGER,
frameResolution OUT INTEGER,
frameRate OUT INTEGER,
videoDuration OUT INTEGER,
numberOfFrames OUT INTEGER,
compressionType OUT VARCHAR2,
numberOfColors OUT INTEGER,
bitRate OUT INTEGER);説明
BFILEに格納されたビデオ・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、明示的パラメータとして戻します。このプロシージャは、ビデオ・データの属性(MIMEタイプ、フォーマット、フレーム・サイズ、高さ、幅、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)のプロパティを抽出します。
パラメータ
- videoBfile
-
BFILEで格納されるビデオ・データを指定します。
- mimeType
-
ビデオ・データのMIMEタイプが戻されます。
- format
-
ビデオ・データのフォーマットを指定します。
- width
-
ビデオ・データのフレームの幅がピクセル単位で戻されます。
- height
-
ビデオ・データのフレームの高さがピクセル単位で戻されます。
- frameResolution
-
ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。
- frameRate
-
ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。
- videoDuration
-
ビデオ・データの再生時間の合計が戻されます。
- numberOfFrames
-
ビデオ・データのフレーム数の合計が戻されます。
- compressionType
-
ビデオ・データの圧縮タイプが戻されます。
- numberOfColors
-
ビデオ・データの色数が戻されます。
- bitRate
-
ビデオ・データのビット・レートが戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータがNULLに設定されます。
プラグマ
なし。
例外
なし。
例
既知のビデオ属性のプロパティ情報を取得します。
DECLARE
vid_data BFILE := BFILENAME('VIDEODIR','testvid.dat');
mimeType VARCHAR2(80);
format VARCHAR2(32) := NULL;
width NUMBER;
height NUMBER;
frameResolution NUMBER;
frameRate NUMBER;
videoDuration NUMBER;
numberOfFrames NUMBER;
compressionType VARCHAR2(160);
numberOfColors NUMBER;
bitRate NUMBER;
BEGIN
-- get properties from bfile
ORDSYS.ORD_VIDEO.getProperties(vid_data, mimeType, format,
width, height, frameResolution, frameRate,
videoDuration, numberOfFrames, compressionType,
numberOfColors, bitRate);
-- print properties
DBMS_OUTPUT.PUT_LINE('mimeType: ' || mimeType );
DBMS_OUTPUT.PUT_LINE('format: ' || format );
DBMS_OUTPUT.PUT_LINE('width: ' || width );
DBMS_OUTPUT.PUT_LINE('height: ' || height );
DBMS_OUTPUT.PUT_LINE('frameResolution: ' || frameResolution );
DBMS_OUTPUT.PUT_LINE('frameRate: ' || frameRate );
DBMS_OUTPUT.PUT_LINE('videoDuration: ' || videoDuration );
DBMS_OUTPUT.PUT_LINE('numberOfFrames: ' || numberOfFrames );
DBMS_OUTPUT.PUT_LINE('compressionType: ' || compressionType );
DBMS_OUTPUT.PUT_LINE('numberOfColors: ' || numberOfColors );
DBMS_OUTPUT.PUT_LINE('bitRate: ' || bitRate );
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/6.3 ORD_VIDEO PL/SQLパッケージ: BLOBのgetProperties( )
構文
getProperties(videoBlob IN BLOB,
attributes IN OUT NOCOPY CLOB);説明
BLOBに格納されたビデオ・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、入力CLOBに格納します。このプロシージャは、ビデオ・データの属性(MIMEタイプ、フォーマット、フレーム・サイズ、高さ、幅、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)の値を抽出します。このプロシージャは、XML形式で一連のフォーマット・プロパティおよびアプリケーション・プロパティをCLOBに移入します。
パラメータ
使用上の注意
なし。
プラグマ
なし。
例外
ORDSourceExceptions.EMPTY_SOURCE
この例外は、入力videoBLOBパラメータがNULLの場合に発生します。
例
既知のビデオ属性のプロパティ情報を取得します。
DECLARE
vid_attrib CLOB;
vid_data BLOB;
BEGIN
SELECT vid, attributes INTO vid_data, vid_attrib
FROM tvid WHERE N=1 FOR UPDATE;
-- get properties from blob
ORDSYS.ORD_VIDEO.getProperties(vid_data, vid_attrib);
-- print length of extracted properties
DBMS_OUTPUT.PUT_LINE('Size of XML Annotations ' ||
TO_CHAR(DBMS_LOB.GETLENGTH(vid_attrib)));
UPDATE tvid SET vid=vid_data, attributes=vid_attrib WHERE N=1;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/6.4 ORD_VIDEO PL/SQLパッケージ: BLOBのgetProperties( ) (すべての属性)
構文
getProperties(videoBLOB IN BLOB,
mimeType OUT VARCHAR2,
format OUT VARCHAR2,
width OUT INTEGER,
height OUT INTEGER,
frameResolution OUT INTEGER,
frameRate OUT INTEGER,
videoDuration OUT INTEGER,
numberOfFrames OUT INTEGER,
compressionType OUT VARCHAR2,
numberOfColors OUT INTEGER,
bitRate OUT INTEGER);説明
BLOBに格納されたビデオ・データを読み取ってサポートしているフォーマットのメディア属性の値を取得し、明示的パラメータとして戻します。このプロシージャは、ビデオ・データの属性(MIMEタイプ、フォーマット、フレーム・サイズ、高さ、幅、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)のプロパティを抽出します。
パラメータ
- videoBLOB
-
BLOBで格納されるビデオ・データを指定します。
- mimeType
-
ビデオ・データのMIMEタイプが戻されます。
- format
-
ビデオ・データのフォーマットを指定します。
- width
-
ビデオ・データのフレームの幅がピクセル単位で戻されます。
- height
-
ビデオ・データのフレームの高さがピクセル単位で戻されます。
- frameResolution
-
ビデオ・データのフレームの1インチ当たりのピクセル数が戻されます。
- frameRate
-
ビデオ・データが記録されている1秒当たりのフレーム数が戻されます。
- videoDuration
-
ビデオ・データの再生時間の合計が戻されます。
- numberOfFrames
-
ビデオ・データのフレーム数の合計が戻されます。
- compressionType
-
ビデオ・データの圧縮タイプが戻されます。
- numberOfColors
-
ビデオ・データの色数が戻されます。
- bitRate
-
ビデオ・データのビット・レートが戻されます。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれのパラメータがNULLに設定されます。
プラグマ
なし。
例外
ORDSourceExceptions.EMPTY_SOURCE
この例外は、入力videoBLOBパラメータがNULLの場合に発生します。
例
既知のビデオ属性のプロパティ情報を取得します。
DECLARE
vid_data BLOB;
mimeType VARCHAR2(80);
format VARCHAR2(32):=NULL;
width NUMBER;
height NUMBER;
frameResolution NUMBER;
frameRate NUMBER;
videoDuration NUMBER;
numberOfFrames NUMBER;
compressionType VARCHAR2(160);
numberOfColors NUMBER;
bitRate NUMBER;
BEGIN
SELECT vid, mimetype, format, width, height, frameresolution, framerate,
videoduration, numberofframes, compressiontype,
numberofcolors, bitrate
INTO vid_data, mimeType, format, width, height, frameResolution,
frameRate, videoDuration, numberOfFrames, compressionType,
numberOfColors, bitRate
FROM tvid WHERE N=1 FOR UPDATE;
-- get properties from blob
ORDSYS.ORD_VIDEO.getProperties(vid_data, mimeType, format, width,
height, frameResolution, frameRate, videoDuration, numberOfFrames,
compressionType, numberOfColors, bitRate);
-- print properties
DBMS_OUTPUT.PUT_LINE('mimeType: ' || mimeType );
DBMS_OUTPUT.PUT_LINE('format: ' || format );
DBMS_OUTPUT.PUT_LINE('width: ' || width );
DBMS_OUTPUT.PUT_LINE('height: ' || height );
DBMS_OUTPUT.PUT_LINE('frameResolution: ' || frameResolution );
DBMS_OUTPUT.PUT_LINE('frameRate: ' || frameRate );
DBMS_OUTPUT.PUT_LINE('videoDuration: ' || videoDuration );
DBMS_OUTPUT.PUT_LINE('numberOfFrames: ' || numberOfFrames );
DBMS_OUTPUT.PUT_LINE('compressionType: ' || compressionType );
DBMS_OUTPUT.PUT_LINE('numberOfColors: ' || numberOfColors );
DBMS_OUTPUT.PUT_LINE('bitRate: ' || bitRate );
UPDATE tvid SET
vid=vid_data,
mimetype=mimeType,
format=format,
width=width,
height=height,
frameresolution=frameResolution,
framerate=frameRate,
videoduration=videoDuration,
numberofframes=numberOfFrames,
compressiontype=compressionType,
numberofcolors=numberOfColors,
bitrate=bitRate
WHERE N=1;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/