20
JMF JMF Introduction Introduction Yuqiang Liao Yuqiang Liao 08-04-2006 08-04-2006

JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Embed Size (px)

Citation preview

Page 1: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

JMF IntroductionJMF IntroductionYuqiang LiaoYuqiang Liao08-04-200608-04-2006

Page 2: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

ContentContent What can JMF doWhat can JMF do Handling Time-Based MediaHandling Time-Based Media

JMF ArchitectureJMF Architecture Key components in JMFKey components in JMF Processing time-based mediaProcessing time-based media

Handling Real-Time Media StreamsHandling Real-Time Media Streams JMF ArchitectureJMF Architecture Key components in JMFKey components in JMF Processing stream mediaProcessing stream media Exporting RTP streamsExporting RTP streams

Extending custom pluginsExtending custom plugins Control Point for DRM ToolControl Point for DRM Tool SAV ArchitectureSAV Architecture Current issuesCurrent issues ResourceResource

Page 3: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

What can JMF doWhat can JMF do

The framework can be extended to The framework can be extended to present, capture, process and plug-in all present, capture, process and plug-in all kinds of media resource which are time-kinds of media resource which are time-based or real-time-basedbased or real-time-based

Media processing modelMedia processing model

Page 4: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

JMF ArchitectureJMF Architecture

Page 5: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Key components in JMFKey components in JMF

Clock syncs behaviors of many tracksClock syncs behaviors of many tracks Player corresponding to each track manipulatPlayer corresponding to each track manipulat

es trackes track Processor inherits from player can handle cusProcessor inherits from player can handle cus

tom media through tom media through pluginsplugins

Event drives player/processor notify event-lisEvent drives player/processor notify event-listenertener

Datasource represents media resource and Datasource represents media resource and datasink manipulates datasource, i.e. datasink manipulates datasource, i.e. read/write datasource read/write datasource

Manager maintains several kinds of componeManager maintains several kinds of components, nts, i.ei.e Manager, Manager, PackageManager,PluginManager,CaptureManPackageManager,PluginManager,CaptureManagerager

Page 6: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Processing Time-Based MediaProcessing Time-Based Media Creating a PlayerCreating a Player Setting kinds of parameters, i.e. playback rateSetting kinds of parameters, i.e. playback rate Starting playerStarting player Responding to Media EventsResponding to Media Events Synchronizing controllersSynchronizing controllers Stop playerStop player

Page 7: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

JMF Architecture (RTP)JMF Architecture (RTP)

Page 8: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Key components in JMF(RTP)Key components in JMF(RTP)

SessionManager is used to coordinate RTP session SessionManager is used to coordinate RTP session through supporting RTCP and to manipulate streamsthrough supporting RTCP and to manipulate streams

RTPStream represents stream in RTP. Two types of RTPStream represents stream in RTP. Two types of RTP streams, ReceiveStream and SendStreamRTP streams, ReceiveStream and SendStream

RTPEvent is used to report on the state of the RTP RTPEvent is used to report on the state of the RTP session and streamssession and streams

Listener is used to react on events. Three types of Listener is used to react on events. Three types of stream listeners, stream listeners, SendStreamListener,ReceiveStreamListener,and SendStreamListener,ReceiveStreamListener,and RemoteListenerRemoteListener

RTPData in JMF is PushBufferDataSourceRTPData in JMF is PushBufferDataSource

Page 9: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Processing stream mediaProcessing stream media Setting up a RTP sessionSetting up a RTP session Detecting new data stream by Detecting new data stream by

NewReceiveStreamEventNewReceiveStreamEvent Retrieving stream by getDataSourceRetrieving stream by getDataSource Creating a player for the RTP streamCreating a player for the RTP stream

Page 10: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Exporting RTP streamsExporting RTP streams Constructing a Processor to retrieve Constructing a Processor to retrieve

ReceiveStreamReceiveStream Setting the track formats to perform the Setting the track formats to perform the

desired encodingdesired encoding Getting the output DataSource from the Getting the output DataSource from the

processorprocessor Constructing an RTP file writer with the Constructing an RTP file writer with the

DataSourceDataSource

Page 11: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Extending custom pluginsExtending custom plugins Custom pluginsCustom plugins

Only processor handles pluginsOnly processor handles plugins Configuring processorConfiguring processor

Calling PlugInManager.getPlugInList to determine what Calling PlugInManager.getPlugInList to determine what plug-ins are availableplug-ins are available

Calling getTrackControls on Processor to get a Calling getTrackControls on Processor to get a TrackControl for each track in streamTrackControl for each track in stream

Calling the TrackControl setCodecChain or setRenderer Calling the TrackControl setCodecChain or setRenderer to specify the plug-ins you want to use for each trackto specify the plug-ins you want to use for each track

Implementing JMF Plug-ins seeing Chapter 6Implementing JMF Plug-ins seeing Chapter 6

Page 12: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Control Point for DRM ToolControl Point for DRM Tool

DRM Tool will be plugged into Pre-processing

Effect point

Page 13: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

SAV ArchitectureSAV Architecture

SAVRender

1.Render browser 2.Interactive end-user3.Render media content

SAVManager

1.Parse DCI/DCF2.Analysis right in license3.Call JMF Engine

DRM Processor

DRM Tool

JMF Engine1. Practice Play/Stop/Privous/Next/Volumn Controls2. Sink media resource (doubt is the type of

resource?)3. Plugin DRM Tool4. Access RTP Server

1.Encrypt/Decrypt resource2.More…?

1.Load DRM Tool2.More…?

SAVMessanger

Green means moduleOrange means functionality

1.Access CPD to render programs in embedded browser2.Access LPD to acquire/query license via its protocol3.Access CID to validate content ID via its protocol

Page 14: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Current issuesCurrent issues

JMF Can only handle URL of media JMF Can only handle URL of media resource(i.e. .mp3) so it could not handle .dcf directlyresource(i.e. .mp3) so it could not handle .dcf directly Answer: The media resource(i.e. Mp3) will be extracted to Answer: The media resource(i.e. Mp3) will be extracted to

a temp foldera temp folder What’s the type of recorded resource? mp3 sth. like What’s the type of recorded resource? mp3 sth. like

that or stream downloaded from RTP?that or stream downloaded from RTP? Record the resource as their own typeRecord the resource as their own type

Encrypt/Decrypt resource on playing?Encrypt/Decrypt resource on playing? YES.YES.

Page 15: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Clock GlanceClock Glance

Page 16: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Player GlancePlayer Glance

Player States GlancePlayer States Glance

Page 17: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Control ListenerControl Listener

Page 18: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Manager GlanceManager Glance

Page 19: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

ResourceResource

http://java.sun.com/products/java-media/jmf/http://java.sun.com/products/java-media/jmf/ JMFJMF 2.0 API Guide 2.0 API Guide http://www.javaworld.com/jw-04-2001/jw-0406-http://www.javaworld.com/jw-04-2001/jw-0406-

jmf1.htmljmf1.html http://forum.java.sun.com/forum.jspa?http://forum.java.sun.com/forum.jspa?

forumID=28&start=0forumID=28&start=0

Page 20: JMF Introduction Yuqiang Liao 08-04-2006. Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture

Thanks!Thanks!