Oracle Zusatzoptionen Oracle interMedia Video Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Oracle interMedia Video Inhalt: - interMedia Architektur - was ist interMedia Video? - Unterstützte Formate - Datentypen( LOB's, Limits), Methoden - ORDVideo Object Type - Constructor - Beispiel - Packages, Plug-In's - Tuning Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video InterMedia Video ● Entworfen, um Internetmedien-Inhalte zu verwalten ● intern in der Oracle8i Datenbank als BLOB ● extern als: – betriebssystemspezifisches BFILE in vorliegendem Filesystem – Http-URL – streaming (audio) video auf Mediaserver – selbstdefinierte Quelle auf anderen Servern Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Unterstützte Formate Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video LOB's ● Interne LOBs bestehen aus: – CLOBs – NCLOBs – BLOBs können bis zu 4 Gigabyte groß sein Speicherung durch Locator, Ablage in eigenem Table – ● – ● Vorteil: mehrere BLOBs in einer Datenzeile möglich BFILEs so groß, wie es das OS erlaubt, max. 4 Gigabyte – Stefan Leonhardt BFILEs nicht unter Transaktionskontrolle der Datenbank! Oracle Zusatzoptionen – interMedia Video ORDVideo-Datentyp CREATE OR REPLACE TYPE ORDVideo AS OBJECT( description VARCHAR2(4000), source ORDSource,format VARCHAR2(31), mimeType VARCHAR2(4000),comments CLOB, -- VIDEO RELATED ATTRIBUTES width INTEGER, height INTEGER, frameResolution INTEGER, frameRate INTEGER, videoDuration INTEGER, numberOfFrames INTEGER, compressionType VARCHAR2(4000), numberOfColors INTEGER, bitRate INTEGER, --Methoden-Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Constructor ● init( ) – ORDVideo Attribute werden auf NULL, . source.updateTime auf SYSDATE, .source.local auf 1 (local) und .source.localData auf empty_blob gesetzt ● init(srcType,srcLocation,srcName) – Stefan Leonhardt srcType, srcLocation, srcName werden die angegebenen Werte zugewiesen Oracle Zusatzoptionen – interMedia Video ORDVideo-Datentyp CREATE OR REPLACE TYPE ORDVideo AS OBJECT( description VARCHAR2(4000), source ORDSource,format VARCHAR2(31), mimeType VARCHAR2(4000),comments CLOB, -- VIDEO RELATED ATTRIBUTES width INTEGER, height INTEGER, frameResolution INTEGER, frameRate INTEGER, videoDuration INTEGER, numberOfFrames INTEGER, compressionType VARCHAR2(4000), numberOfColors INTEGER, bitRate INTEGER, --Methoden-Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Constructor ● init( ) – ORDVideo Attribute werden auf NULL, . source.updateTime auf SYSDATE, .source.local auf 1 (local) und .source.localData auf empty_blob gesetzt ● init(srcType,srcLocation,srcName) – Stefan Leonhardt srcType, srcLocation, srcName werden die angegebenen Werte zugewiesen Oracle Zusatzoptionen – interMedia Video Beispiel Clip-Objekt ● CREATE TYPE clipObject as OBJECT ( ● videoRef REF VideoObject, -- REF into the video table ● clipId VARCHAR2(20), -- Id inside of the clip table ● title VARCHAR2(4000), director VARCHAR2(4000), category VARCHAR2(20), ● copyright VARCHAR2(4000), producer VARCHAR2(4000), awards VARCHAR2(4000), ● timePeriod VARCHAR2(20), rating VARCHAR2(256), duration INTEGER, ● cdRef REF CdObject, -- REF into a CdObject(soundtrack) ● txtcontent CLOB, coverImg REF ORDSYS.ORDImage, -- REF into the ImageTable ● videoSource ORDSYS.ORDVideo); ● CREATE TABLE ClipsTable of clipObject (UNIQUE (clipId), clipId NOT NULL); Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Beispiel Anlegen Video-Table CREATE TYPE VideoObject as OBJECT ( itemId INTEGER, duration INTEGER, txtcontent CLOB, coverImg REF ORDSYS.ORDImage, clips clipList); CREATE TABLE VideoTable OF VideoObject ( UNIQUE(itemId),itemId NOT NULL) NESTED TABLE clips.clips STORE AS clip_store_table; Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Beispiel Load Video DECLARE videoObj ORDSYS.ORDVIDEO; ctx RAW(4000) := NULL; BEGIN SELECT C.videoSource INTO videoObj FROM ClipsTable C WHERE C.clipId = ’11’ FOR UPDATE; videoObj.setDescription(’Under Pressure Video Clip’); videoObj.setSource(’FILE’, ’VIDDIR’, ’UnderPressure.mov’); videoObj.import(ctx); videoObj.setProperties(ctx) UPDATE ClipsTable C SET C.videoSource = videoObj WHERE C.clipId = ’11’; COMMIT; END; Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video ORDPLUGINS.ORDX_DEFAULT_VIDEO Package ● Suported: ● Not Suported: – getFormat – getAttribute – getFrameSize – getFrameResolution – getFrameRate – processCommand – getVideoDuration – getNumberOfFrames – getCompressionType – getNumberOfColors – getBitRate – setProperties – checkProperties – getAllAttributes Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Packages /Plug-Ins ● PL/SQL Plug-in Packages Audio Format MIME Type – ORDPLUGINS.ORDX_DEFAULT_VIDEO <format> Dependent on file format – ORDPLUGINS.ORDX_AVI_VIDEO AVI video/x-msvideo – ORDPLUGINS.ORDX_MOOV_VIDEO MOOV video/quicktime – ORDPLUGINS.ORDX_RMFF_VIDEO RMFF application/x-vnd.realmedia Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Tuning ● ● system global area (SGA) DB_BLOCK_SIZE, DB_BLOCK_BUFFERS, SHARED_POOL_SIZE, and LOG_BUFFER ● DB-Buffer-Cache: DB_BLOCK_SIZE * DB_BLOCK_BUFFERS ● DB_BLOCK_SIZE festgesetzt beim Anlegen der DB ● 40MB = 2kb min.FS *20.000 DB_BLOCK_BUFFERS Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Tuning ● SHARED_POOL_RESERVED_SIZE: default: 5% of SHARED_POOL_SIZE, maximum 50% – ● a value at or close to the maximum can provide performance benefits. LOG_BUFFER: buffering redo entries to the redo log file Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video Vielen Dank für ihre Aufmerksamkeit! Stefan Leonhardt Oracle Zusatzoptionen – interMedia Video