(注:本贴只为方便自己快速温故所用,不是文章的全部翻译,只做部份摘要解译,方便自己快速浏览)
About JMF
JMF1.0只供程序员把实时媒体加到应用中,而JMF2.0则增加了捕获设备多媒体、储存多媒体文件、和播放媒体时的控制功能组件、
另外,JMF2.0还有plug-in 插件API ,它让高级的JMF开发员可以扩展这些jmf框架api
The JMF 1.0 API (the Java Media Player API) enabled programmers to
develop Java programs that presented time-based media. The JMF 2.0 API
extends the framework to provide support for capturing and storing
media data, controlling the type of processing that is performed during
playback, and performing custom processing on media data streams. In
addition, JMF 2.0 deÞnes a plug-in API that enables advanced developers
and technology providers to more easily customize and extend JMF functionality.以下是JMF 2.0中新增类和接口:
AudioFormat BitRateControl Buffer
BufferControl BufferToImage BufferTransferHandler
CaptureDevice CaptureDeviceInfo CaptureDeviceManager
CloneableDataSource Codec ConfigureCompleteEvent
ConnnectionErrorEvent DataSink DataSinkErrorEvent
DataSinkEvent DataSinkListener DemultiplexerEffect EndOfStreamEvent FileTypeDescriptor
Format FormatChangeEvent FormatControl
FrameGrabbingControl FramePositioningControl FrameProcessingControl
FrameRateControl H261Control H261Format
H263Control H263Format ImageToBuffer
IndexedColorFormat InputSourceStream KeyFrameControl
MonitorControl MpegAudioControl Multiplexer
NoStorageSpaceErrorEvent PacketSizeControl PlugIn
PlugInManager PortControl Processor
ProcessorModel PullBufferDataSource PullBufferStream
PushBufferDataSource PushBufferStream QualityControl
Renderer RGBFormat SilenceSuppressionControl
StreamWriterControl Track TrackControl
VideoFormat VideoRenderer YUVFormat
另外MediaPlayer 这个java bean 已经被加到 javax.media.bean.playerbean包中了。
MediaPlayer 可以被直接实例化对象,用它来展示一个或多个media streams。
(原文)In addition, the "MediaPlayer" Java Bean has been included with the JMF
API in
javax.media.bean.playerbean.
MediaPlayer can be instantiated directly and used to present one or more media streams.
Design Goals for the JMF API 2.0
JMF API的设计目标:
1、更容易编程
2、支持媒体数据的捕获
3、让多媒体技术和会议应用技术在java中成为可能
4、让高级开发者与技术专家可以基于现有的api实现更加客户化的解决方案,以及更加方便集成一些新的技术特点到现有技术框架中。(扩展性)
5、可以访问媒体原数据
6、可以开发可以用客户化、可下载、复用、分路、编码、效果处理、与展示、插件等
JMF 2.0 supports media capture and addresses the needs of application
developers who want additional control over media processing and rendering.
It also provides a plug-in architecture that provides direct access
to media data and enables JMF to be more easily customized and
extended. JMF 2.0 is designed to:¥ Be easy to program
¥ Support capturing media data
¥ Enable the development of media streaming and conferencing
applications in Java¥ Enable advanced developers and technology providers to implement
custom solutions based on the existing API and easily integrate new
features with the existing framework
¥ Provide access to raw media data
¥ Enable the development of custom, downloadable demultiplexers,
codecs, effects processors, multiplexers, and renderers (JMF
plug-ins
)
¥ Maintain compatibility with JMF 1.0
About the JMF RTP APIs
在javax.media.rtp javax.media.rtp.event javax.media.rtp.rtcp三个包中包的类和接口就提供了对RTP的支持。
rtp的支持使得多媒体流可以在网络上传输。
The classes in
javax.media.rtp, javax.media.rtp.event
, and
javax.media.rtp.rtcp
provide support for RTP (Real-Time Transport Protocol).
RTP enables the transmission and reception of real-time media
streams across the network. RTP can be used for media-on-demand applications
as well as interactive services such as Internet telephony.
JMF 的实现不是必须包括RTP的支持
(原文)JMF-compliant implementations are not required to support the RTP
APIs in
javax.media.rtp
,
javax.media.rtp.event
, and
javax.media.rtp.rtcp
.sun 和IBM提供了一些JMF api接口的参考实现
如:RTPSessionMgr等
The reference implementations of JMF provided
by Sun Microsystems, Inc. and IBM Corporation fully support these APIs.第一个版本中只支持rtp streams的接收和播放,第二版api就增加了rtp streams 的发送。
(原文)The Þrst version of the JMF RTP APIs (referred to as the RTP Session Manager
API) enabled developers to receive RTP streams and play them using
JMF. In JMF 2.0, the RTP APIs also support the transmission of RTP
streams.以下是RTP的类和接口在2.0中是新增的:
SendStream SendStreamListener InactiveSendStreamEvent
ActiveSendStreamEvent SendPayloadChangeEvent NewSendStreamEvent
GlobalTransmissionStats TransmissionStats RTP包中的一些类和接口已经被重新组织过了,一些方法也被重新命名过。
The RTP packages have been reorganized and some classes, interfaces,
and methods have been renamed to make the API easier to use. 以下是包重新组织发生的改变
The package reorganization consists of the following changes:
1、The RTP event classes that were in javax.media.rtp.session are now in javax.media.rtp.event
2、The RTCP-related classes that were in javax.media.rtp.session are now in javax.media.rtp.rtcp
.3、The rest of the classes in javax.media.rtp.session are now in javax.media.rtp and the javax.media.rtp.session package has been removed.
以下是方法重新命名的规则
1、去了方法的rtp、rtcp前缀
The name changes consist primarily of the removal of the RTP and RTCP
preÞxes from class and interface names and the elimination of non-standard
abbreviations. For example,
RTPRecvStreamListener
has been
renamed to
ReceiveStreamListener
. For a complete list of the changes
made to the RTP packages, see the JMF 2.0 Beta release notes.另外还会做一些修改以兼容jmf2.0对其它方面api的修改
In addition, changes were made to the RTP APIs to make them compatible
with other changes in JMF 2.0:
1、javax.media.rtp.session.io 和javax.media.rtp.session.depacketizer 已经删除,客户化的rtp packetzers 和depacketizers现在通过JMF2.0的plug-in插件体系结构来提供支持。
原来已存在的depacketizer会被放到现在的插件体系结构中去。
javax.media.rtp.session.io
and
javax.media.rtp.session.depacketizer
have been removed. Custom
RTP packetizers and depacketizers are now supported through the
JMF 2.0 plug-in architecture. Existing depacketizers will need to be
ported to the new plug-in architecture.
2、Buffer 对象实例是SessionManager传送的基本单元,代替来原来 的DePacketizedUnit 和DePacketizedObject传送单元。 Buffer有自己的数据和头信息格式。
Buffer
is now the basic unit of transfer between the
SessionManager
and other JMF objects, in place of
DePacketizedUnit
and
DePacketizedObject.
RTP-formatted
Buffers
have a specific format
for their data and header objects.3、 BaseEndcoingInfo已经被JMF的Format对像所代替了。一个rtp特定的Format通过一个特定的encoding字符串标志的。
编码标志字符串都是“***_RTP格式的” 。如:RAW_RTP 。
通过在Format中绑定一个动态加载数字来实现动态加载格式信息。
BaseEncodingInfo
has been replaced by the generic JMF
Format
object.
An RTP-specific
Format
is differentiated from other formats by its
encoding string. Encoding strings for RTP-specific
Formats
end in
_RTP
. Dynamic payload information can be provided by associating a
dynamic payload number with a
Format
object.
Design Goals for the JMF RTP APIs
// JMF RTP APIs的设计目标:为实现多媒体会议应用。
The RTP APIs in JMF 2.0 support the reception and transmission of RTP
streams and address the needs of application developers who want to use
RTP to implement media streaming and conferencing applications. These
APIs are designed to:
¥ Enable the development of media streaming and conferencing
applications in Java
¥ Support media data reception and transmission using RTP and RTCP
¥ Support custom packetizer and depacketizer plug-ins through the
JMF 2.0 plug-in architecture.
¥ Be easy to program
java JMF java jmf架包api
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
关于Java Chassis 3的契约优先(API First)开发
契约优先(API First)开发是指应用程序开发过程中,将API设计作为第一优先级的任务。
API Java Java Chassis 3 Web Services -
JMF原理
JMF原理
互联网 数据结构 编程 Windows 音乐 -
利用JMF播放视频
本文主要使用JMF来实现在一个Applet中播放本地MPEG格式视频文件。并给出一个实例。
实例 视频 Applet JMF 播放 -
JMF拍照技术文档
JMF做USB摄像头刷卡拍照拍照原理:第一步:捕获摄像头视频
职场 休闲 JMF拍照 JMF安装包 JMF API文档