6 Oracle Multimedia ORD_VIDEO PL/SQL Package

Oracle Multimedia provides the ORD_VIDEO PL/SQL package. This package provides procedures to perform common operations such as importing and exporting video data to and from operating system files, and extracting information from video data.

This package adds Oracle Multimedia support to video data stored in BLOBs and BFILEs.

The ORD_VIDEO package is defined in the ordvrpsp.sql file. After installation, this file is available in the Oracle home directory at:

<ORACLE_HOME>/ord/im/admin (on Linux and UNIX)

<ORACLE_HOME>\ord\im\admin (on Windows)

The examples in these topics assume that the TVID table and the VIDEODIR directory exist.

See the following topics for details about the procedures in the ORD_VIDEO PL/SQL package:

See Also:

6.1 ORD_VIDEO PL/SQL Package: getProperties( ) for BFILEs

Format

getProperties(videoBfile IN OUT NOCOPY BFILE, 
              attributes IN OUT NOCOPY CLOB);

Description

Reads the video data stored in a BFILE to get the values of the media attributes for supported formats, and then stores them in the input CLOB. This procedure populates the CLOB with a set of format and application properties in XML form.

Parameters

videoBfile

The video data represented as a BFILE.

attributes

The CLOB to hold the XML attribute information extracted by the getProperties( ) procedure. This CLOB is populated with a set of format and application properties of the video BFILE data in XML form.

Usage Notes

None.

Pragmas

None.

Exceptions

None.

Examples

Get the property information for known video attributes:

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 Package: getProperties( ) (all attributes) for BFILEs

Format

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);

Description

Reads the video data stored in a BFILE to get the values of the media attributes for supported formats, and then returns them as explicit parameters. This procedure extracts the properties for these attributes of the video data: MIME type, format, frame size, height, width, frame resolution, frame rate, video duration, number of frames, compression type, number of colors, and bit rate.

Parameters

videoBfile

The video data represented as a BFILE.

mimeType

The MIME type of the video data.

format

The format of the video data.

width

The width of the frame in pixels of the video data.

height

The height of the frame in pixels of the video data.

frameResolution

The number of pixels per inch of frames in the video data.

frameRate

The number of frames per second at which the video data was recorded.

videoDuration

The total time required to play the video data.

numberOfFrames

The total number of frames in the video data.

compressionType

The compression type of the video data.

numberOfColors

The number of colors in the video data.

bitRate

The bit rate in the video data.

Usage Notes

If a property cannot be extracted from the media source, then the respective parameter is set to NULL.

Pragmas

None.

Exceptions

None.

Examples

Get the property information for known video attributes:

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 Package: getProperties( ) for BLOBs

Format

getProperties(videoBlob  IN BLOB, 
              attributes IN OUT NOCOPY CLOB);

Description

Reads the video data stored in a BLOB to get the values of the media attributes for supported formats, and then stores them in the input CLOB. This procedure extracts the values for these attributes of the video data: MIME type, format, frame size, height, width, frame resolution, frame rate, video duration, number of frames, compression type, number of colors, and bit rate. This procedure populates the CLOB with a set of format and application properties in XML form.

Parameters

videoBlob

The video data represented as a BLOB.

attributes

The CLOB to hold the XML attribute information extracted by the getProperties( ) procedure. This CLOB is populated with a set of format and application properties of the video BLOB data in XML form.

Usage Notes

None.

Pragmas

None.

Exceptions

ORDSourceExceptions.EMPTY_SOURCE

This exception is raised when the input videoBLOB parameter is NULL.

Examples

Get the property information for known video attributes:

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 Package: getProperties( ) (all attributes) for BLOBs

Format

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);

Description

Reads the video data stored in a BLOB to get the values of the media attributes for supported formats, and then returns them as explicit parameters. This procedure extracts the properties for these attributes of the video data: MIME type, format, frame size, height, width, frame resolution, frame rate, video duration, number of frames, compression type, number of colors, and bit rate.

Parameters

videoBLOB

The video data represented as a BLOB.

mimeType

The MIME type of the video data.

format

The format of the video data.

width

The width of the frame in pixels of the video data.

height

The height of the frame in pixels of the video data.

frameResolution

The number of pixels per inch of frames in the video data.

frameRate

The number of frames per second at which the video data was recorded.

videoDuration

The total time required to play the video data.

numberOfFrames

The total number of frames in the video data.

compressionType

The compression type of the video data.

numberOfColors

The number of colors in the video data.

bitRate

The bit rate in the video data.

Usage Notes

If a property cannot be extracted from the media source, then the respective parameter is set to NULL.

Pragmas

None.

Exceptions

ORDSourceExceptions.EMPTY_SOURCE

This exception is raised when the input videoBLOB parameter is NULL.

Examples

Get the property information for known video attributes:

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;
/