Oracle DBA's create tables with columns based on predefined or user-defined object types (e.g. ORDVIDEO). These object types contain attributes that store the BLOB data and other pertinent information. The values are provided as a convenience and an optimization to save the step of having to examine the multimedia data each time an attributes is accessed. A few examples of the attributes in the object are mime-type, frame rate, resolution, media duration etc. More than one multimedia object column can be defined in a table.
To import multimedia data into the database an application will instantiate an instance of the appropriate object type. This instantiation will use a constructor function that allows one to specify the location of the multimedia data to be imported. Logic defined within the object type's body execute when the constructor function is called. This logic will examine the multimedia data in order to extract the pertinent information for the associated attributes.
Oracle Multimedia provides direct support for several multimedia formats. In this context, direct support refers to the database's ability to examine the multimedia data and extract information from it. Oracle Multimedia also provides a plug-in framework that allows third-parties to add additional media format support as needed.
Enhancing Oracle's Multimedia Framework
In order to provide a viable multimedia solution using the Oracle database that justifies its cost the features and capabilities presented by the result must exceed those of competing products. In order to do so specific enhancements and additions must be made to the Oracle Multimedia framework.
A crucial element is the ability to logically extend PL/SQL – the databases programming language. By doing so, one can incorporate logic from third-party libraries and APIs directly into the data-layer. In the context of a multimedia solution an example of a third-party library would be FFMpeg – a popular open-source multimedia toolkit. Adding support for FFMpeg allows the database to recognize every popular (and a few forgotten) media formats.
The accepted way of doing things is to place all logic that must incorporate third party libraries such as the aforementioned FFMpeg in the middle tier. But a logically extensible PL/SQL environment provides all of the flexibility that is present in the middle tier for any data-oriented operation. In the context of a multimedia solution, there is a lot of activity that is purely 'data-oriented'.
Multimedia data is typically thought of as unstructured. To a database, unstructured data is that which does not fit neatly into rows and columns or native support for the associated data-type is lacking. The database has limited understanding and can manipulate multimedia data in a limited way. If one can add the 'smarts' to a database to enable it to understand the data-type, the data is no longer unstructured.
Working with a logically extensible media enabled Oracle database presents opportunities to think outside of the box. Streaming servers, transcoding frameworks and workflow automation methods can all be built in a manner that takes full advantage of the extended database paradigm. In addition, advanced media processing libraries that provide voice and image recognition capabilities for example can be incorporated at the PL/SQL data-layer.
A streaming server in essence accepts a media URL from a requesting client application (i.e. video player) and streams the media back. The URL used to locate the media can be encoded in a manner that allows it to refer to a PL/SQL function or procedure. The URL can also contain parameter values that are directly applied to the PL/SQL logic. This allows a simple and direct link between media URLs and logic in the database that locates the required media.
Transcoding servers built for the Oracle environment can take advantage of the job scheduling features in the database. All of the logic that drives the transcoding server can be written in PL/SQL and implemented as a state-machine within the database. Coupled with Oracle's DBFS feature, an obscure file interface can be implemented which presents an enhanced security profile. This arrangement allows cooperative automated workflow applications to access media data securely from the database without having to expose assets via a normal file-system.
By utilizing the extensible features of PL/SQL, one can incorporate advanced media processing logic directly within SQL statements. For example, SQL statements can be implemented that search voice data for specific words or a recognized speaker. Enhanced data-layer programming techniques such as these can greatly reduce the infrastructure needed to provide advanced media processing and querying capabilities. The reduced footprint also enhances security and stability.
Addressing Enterprise Requirements in New Ways
A recently conducted survey of corporate IT users found that over 20% currently have big data initiatives in place involving multimedia. Combining the Oracle database with tailored multimedia developments tools fosters the creation of user applications that address the specific requirements of enterprise computing in new and unique ways.
About the author
Steve Guilford is the founder and president of Database Plugins LLC. Database Plugins focuses on multimedia development tools in the Oracle marketplace. Guilford has over 30 years of application programming, systems development and systems integration experience. He has been specializing in Oracle development since 1984. In his spare time he enjoys restoring Mercedes Benz automobiles and old wooden sail boats.