快速业务通道

JMF介绍之媒体框架(一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

JMF介绍之媒体框架(一)

时间:2011-03-13 51cto博客 zhangjunhd译

JMF(Java Media Framework)是Sun 公司提出的Java 媒体架构。它是对应Java 2平台标准版(J2SE)的一种可选用的应用编程接口(API)。JMF的源代码通过SCSL(Sun 社团源代码许可模式)发布这一强大的媒体工具包,可以在任何版本(1.1.x 及以上版本)的Java平台上的运行。

JMF2.1.1技术提供了先进的媒体处理能力,从而扩展了Java 平台的功能。JMF所提供的多媒体功能如下:

l可以在Java Applet 和应用程序中播放各种媒体文件。它提供了对各种主要媒体形式和编码的支持,如JPEG、H.263、MP3、Macromedias Flash。JMF 2.1.1 还支持多种媒体类型如Quicktime、MOV、Microsoft AVI和MPEG-1。

l在互联网上传输音频和视频数据流。

l可以利用摄像机一类的设备截取音频和视频并保存为多媒体文件。

l处理多媒体文件转换文件格式。

l在互联网上广播音频和视频数据。

1.JMF基本构架

JMF的两层架构:

(1) 相对上层的负责多媒体文件的控制,使用和处理,并支持网络资源和识别采集设备等额外控制功能;

(2) 相对下层不仅提供编解码器,渲染器,还提供plug-in架构来直接存取多媒体文件使JMF能更轻易的被延伸和定制;

JMF的架构图:

JMF介绍之媒体框架(一) - 编程入门网

图1 JMF架构图

2.JMF的运作模式

图2根据VCR的运作模式来对比JMF运作过程,我们可以发现JMF与真实世界中的VCR运作模式相似。整个过程如同是VCR提供了一个熟悉的构造模型来录影(音)、处理、以及呈现基于时间的媒体(time-based media)。当你使用VCR播放一个电影时,你是以录影带的方式提供VCR一个媒体流(media stream)。VCR将之读入并分析、解译录影带上的资料,并把适当的讯号送到用户的电视和音响。JMF也是使用这个同样的模型架构。一个数据源(data source)会将媒体流(media stream)封装起来,就有如录影带一般。而一个播放器(player)会提供处理以及控制,类似VCR所提供的控制机制。使用JMF播放、和捕捉影音则需要适当的输入输出装置如麦克风、照相机、音响、以及屏幕等等。

JMF介绍之媒体框架(一) - 编程入门网

图2 VCR运作模式

JMF介绍之媒体框架(一)(2)

时间:2011-03-13 51cto博客 zhangjunhd译

3.JMF上层结构

3.1时间模型(time model)

JMF介绍之媒体框架(一) - 编程入门网

JMF 对媒体时间信息的获取如下

lTimeBase Time:系统当前时钟。

lMediaTime:一个媒体流的整个播放时间。

lMediaStartTime:媒体开始播放的时间。

lTimeBaseStartTime:当开始播放的时候TimeBase的时间。

lRate:时钟和TimeBase的关系,可以是1倍2倍或负值(重放playback的时候)。

这样我们得到的播放位置的公式为:

MediaTime = MediaStartTime + Rate (TimeBaseTime - TimeBaseStartTime)

3.2管理器(managers)

JMF API主要由一些接口组成,这些接口定义了用于捕获(capture)、处理(process)和播放(present)基于时间的媒体的对象的行为和相互作用的过程。为了能和已经存在的类实现无缝连接,JMF引入了一些中介对象—管理器(Manager)。JMF中使用了四种Manager:

lManager:管理器(Manager)负责处理播放器(Player)、处理器(Processor)、数据源(DataSource)、数据池(DataSink)的创建。

lPackageManager:保存用户创建的播放器(Player),处理器(Processor),数据源(DataSource),数据池(DataSink)类的注册信息。

lCaptureDeviceManager:对可用的媒体捕获设备进行注册。

lPlugInManager:保持底层的JMF插件(如复用器(Multiplexers),分离器(DemultiPlexers),编解码器(Codecs), 渲染器(Effects)和显示器(Render)的注册信息。

3.3事件模型(event model)

JMF是利用一个结构化的事件报告机制来使基于JMF的程序获知媒体系统当前的状态,并使它能对媒体驱动的错误状态,比如未知

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号