Upload
alban-obrien
View
214
Download
2
Embed Size (px)
Citation preview
JMF IntroductionJMF IntroductionYuqiang LiaoYuqiang Liao08-04-200608-04-2006
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
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
JMF ArchitectureJMF 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
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
JMF Architecture (RTP)JMF Architecture (RTP)
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
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
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
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
Control Point for DRM ToolControl Point for DRM Tool
DRM Tool will be plugged into Pre-processing
Effect point
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
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.
Clock GlanceClock Glance
Player GlancePlayer Glance
Player States GlancePlayer States Glance
Control ListenerControl Listener
Manager GlanceManager Glance
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
Thanks!Thanks!