JMF Solutions

Render Live Video on a 3D Surface

 
Problem
Given an input media file, the object is to render the video track onto a 3D surface.

Solution
A sample Java 3D renderer plugin is written.  It creates the Java3D scene graph of a 3D surface (such as Cylnder), onto which the video will be texture mapped to. In interface VideoRenderer's method process, for each frame of the video, it converts the raw image data to a BufferedImage object, then to create a ImageComponent2D object (the data access mode is by reference). Finally it sets this ImageComponent2D object to the scene graph's texture object by calling its method setImage. A sample application DemoJMFJ3D shows how Java 3D renderer works.
Please note: In order to achieve a decent performance, the data access mode in ImageComponent2D has to be by reference. And BufferedImage's type had better be BufferedImage.TYPE_4BYTE_ABGR on solaris, BufferedImage.TYPE_3BYTE_BGR on windows.
 
 
Requirements
 
Platform: JDK 1.2.2. or later
JMF API: 2.0 or later
Java3D API: 1.2 or later
OpenGL API: 1.2 or later
Implementation: AJ, WPP, SPP *


* AJ = All Java, WPP = Windows Performance Pack, SPP = Solaris Performance Pack
 
Related Classes
 
 
How to run this sample
 
java DemoJMFJ3D -m <input URL>
Example:
java DemoJMFJ3D -m file:/home/somebody/amoive.mov
will render the video track of the input file onto a cylnder surface.
Please also refer to the README file.
 
Source Code
 
 
Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve


Duke's Choice RHS Banner

JavaOne 2014 Replay banner