IBM Books

Image Extender、Audio Extender 和 Video Extender 管理和程序设计

DB2Video


图象 音频 视频
    X

将视频的内容存储在数据库表中。视频源可以在客户机 缓冲区、客户机文件或服务器文件中。可将视频以 BLOB 形式存储在数据库表中, 或存储在服务器文件中(由数据库表引用)。视频源可处于受支持的格式,在这种情况下,DB2Video Extender 标识其存储属性, 也可处于不受支持的格式,在这种情况下,必须在 UDF 中指定属性。

包含文件

dmbvideo.h

语法

从缓冲区或客户机 文件存储内容

>>-DB2Video--(--dbname--,--content--,--format--,---------------->
 
>----target_file--,--comment--)--------------------------------><
 

语法

从服务器文件存储内容

>>-DB2Video--(--dbname--,--source_file--,--format--,--stortype--,-->
 
>---comment--)-------------------------------------------------><
 

语法

从缓冲区或客户机文件存储具有用户提供的属性的内容

>>-DB2Video--(--dbname--,--content--,--target_file--,----------->
 
>----comment--,--attrs--,--thumbnail--)------------------------><
 

语法

从服务器文件存储具有用户提供的属性的内容

>>-DB2Video--(--dbname--,--source_file--,--stortype--,--comment--,-->
 
>---attrs--,--thumbnail--)-------------------------------------><
 

参数(数据类型)

dbname (VARCHAR(18))
当前连接的数据库的名称,由 CURRENT SERVER 专用寄存器指示。

content (BLOB(2G) AS LOCATOR)
包含视频的内容的主变量。主变量的数据类型可以是 BLOB、BLOB_FILE 或 BLOB_LOCATOR。DB2 将内容转换为 BLOB_LOCATOR,并将 LOB 定位器传送至 DB2Video UDF。若内容在客户机缓冲区中, 则缓冲区必须包含内容的至少前 640 KB 才能确保读整个视频头。

format (VARCHAR(8))
源视频的格式。若指定了空值或空字符串, 则 Video Extender 将尝试自动确定源格式。将把视频存储成与它的源的格式相同。参见表 4以了解受支持的视频格式。对于 MPG1 格式,可指定 MPG1、mpg1、MPEG1 或 mpeg1。对于 MPG2 格式, 可指定 MPG2、mpg2、MPEG2 或 mpeg2。

target_file (LONG VARCHAR)
目标服务器文件的名称(对于存储至服务器文件), 或是空值或空字符串(对于以 BLOB 形式存储到数据库表中)。服务器文件只能是全限定名。若未限定文件名, 则使用服务器上的 DB2VIDEOSTORE 和 DB2MMSTORE 环境变量来找出该文件。

source_file (LONG VARCHAR)
源服务器文件的名称。名称可以是全限定名或未限定名;但不能是空值或空字符串。若未限定名称, 则使用服务器上的 DB2VIDEOPATH 和 DB2MMPATH 环境变量来找出该文件。

stortype (INTEGER)
指示将在何处存储视频的值。常量 MMDB_STORAGE_TYPE_INTERNAL(值=1) 指示将把视频以 BLOB 形式存储在数据库中; 常量 MMDB_STORAGE_TYPE_EXTERNAL(值=0) 指示将把视频内容存储在(数据库中指向的)服务器文件中。

comment (LONG VARCHAR)
要与视频存储在一起的注解。

attrs (LONG VARCHAR FOR BIT DATA)
视频的属性。

thumbnail (LONG VARCHAR FOR BIT DATA)
表示视频的缩略图象。

返回值(数据类型)

视频的句柄 (DB2VIDEO)

将包括 Anita Jones 的视频剪辑的记录插入到 Employee 表中。视频源在客户机缓冲区中。将视频剪辑以 BLOB 形式存储在表中:

EXEC SQL BEGIN DECLARE SECTION
     SQL TYPE IS BLOB (8M) vid;
   EXEC SQL END DECLARE SECTION;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
        DB2VIDEO(
         CURRENT SERVER,
         :vid,
         'MPEG1',
         CAST(NULL as LONG VARCHAR),
         'Anita''s video'));

将包括 Robert Smith 的视频剪辑的记录插入到 Employee 表中。视频源在服务器文件中。Employee 表记录将指向该文件:

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
   EXEC SQL END DECLARE SECTION;
 
hvStorageType = MMDB_STORAGE_TYPE_EXTERNAL;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '384779',
      'Robert Smith',
        DB2VIDEO(
         CURRENT SERVER,
         '/Employee/Videos/rsmith.mpg',
         'MPEG1',
         :hvStorageType,
         'Robert''s video'));

将包括视频剪辑的记录插入到数据库表中。服务器文件中的源视频剪辑具有用户定义的格式。将视频内容存放在服务器文件中(数据库表记录将指向该文件)。还存储表示该视频的缩略图:

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
         struct  {
        short len;
       char data[400];
}hvVidattrs;
         struct  {
        short len;
       char data[10000];
}hvThumbnail;
   EXEC SQL END DECLARE SECTION;
 
MMDBVideoAttrs         *pvideoAttr;
 
hvStorageType = MMDB_STORAGE_TYPE_EXTERNAL;
 
pvideoAttr=(MMDBVideoAttrs *)hvVidattrs.data;
strcpy(pvideoAttr>cFormat,"Formatv");
pvideoAttr.len=sizeof(MMDBVideoAttrs);

·
·
·
/* Generate thumbnail and assign data */ /* in video structure */
·
·
·
EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2VIDEO( CURRENT SERVER, '/Employee/Videos/ajones.vid', :hvStorageType, 'Anita''s video', :hvVidattrs, :hvThumbnail) );


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]