论文部分内容阅读
当前,随着Internet应用的普及,越来越多的用户期望通过Internet传输和发布音视频信息。尽管现在存在一些基于Internet的多媒体信息传输和发布技术,但这些技术一般不能实现多媒体数据的实时传输和播放,无法满足视频点播、会议电视等实时应用的需求。流媒体(Streaming Media)是近年来在网上发布多媒体信息的一种新技术,它可以实现多媒体数据的实时传输和播放。 Java Media API(Java多媒体应用编程接口)是由Sun公司推出的一种用于处理和开发多媒体(包括流媒体)应用的面向Java Application和Java Applet的应用程序接口(API)。它包括图形技术(图形的绘制、颜色的设置和字体的应用)、声音技术、图像技术(包括图像的处理)和动画技术、音频流技术、视频流技术等。它支持多媒体数据的播放和实时传输等媒体操作,在数据播放上,它支持大多数的媒体格式,如AIFF、AU、AVI、GSM、MIDI、MPEG、QuickTime、RMF及WAV等;在实时传输上,它支持实时传输协议RTP(Real-Time Transport Protocol)和实时传输控制协议RTCP(Real-Time Control Protocol)。 JMF(Java Media Framework API)是一种采用Java语言开发流式媒体应用的面向JavaApplication和Java Applet的集成媒体数据类型的应用程序接口。它作为Java Media API技术家族的一个重要组成部分,对Java平台进行了扩展,为媒体应用开发人员提供了增强的媒体开发能力,使音频流与视频流等流媒体能够应用于企业、学校等所需部门中,是本文研究的重点。 本文以教育部精品课程计划——漳州师范学院精品课程项目为背景,结合当前Java技术和流媒体技术,就Java多媒体应用编程接口Java Media API进行研究和应用,在介绍Java Media API的基础上,重点阐述了JMF的特点和功能,并应用Java Media API开发出Java Apolication应用程序和内嵌于网页的JavaApplet小程序。 本文所做主要工作、技术难点与创新如下: (1) 探讨了新的多媒体处理技术JMF。JMF完全继承了Java跨平台的优点,使得通过JMFAPI开发的多媒体应用同其他Java应用一样,拥有“一次开发,到处运行”(write once,run anywhere)的特点。JMF为多媒体的获取、播放、处理和传输定义了统一的体系结构、消息处理机制和程序设计接口,提供给开发者一个可以扩展的并且跨平台的强大的媒体工具,并完全支持RTP/RTCP协议。本文应用Java Media API来处理各种媒体数据,并将其运用于流媒体传输与播放系统的实际开发当中。通过使用JMF中的几种关键技术(RTP API、会话、端口控制、事件模型、缓冲区设置等)解决了流媒体传输与播放。 (2) 深入探讨了流媒体的形成机制。多媒体文件是以数据包形式在Internet上传输的,应先对多媒体文件以一定的格式(例如H.263格式)进行编码,压缩成数据包,传送到网络上。同样地,到了接收端时,以相反的流程操作,才能还原为多媒体数据,也就是要进行解码、解压缩。一般情况下,接收端接收完整个媒体文件才能播放,而流媒体或者媒体流却可以边下载边播放,即它不需要存储到本地硬盘便可直接播放,大大节省了时间和空间,它是通过缓存实现的。接收端必须向操作系统申请一块缓存,把发送端源源不断送来的数据包(多个流动的数据包就成了流媒体或媒体流)放在缓存里,并启动播放器进行播放,这样无需存储到外部存储器(硬盘)。缓冲区的大小是有限的,故边接收的同时边删除已播放的媒体数据。这就形成了我们所说的无需存储到本地存储器、边下载边播放的流媒体。 (3) 研究了多媒体文件进行RTP传输的准备工作及其传输过程,采用Java技术实现了接口的统一和跨平台的可移植性。采用JMF事件模型实现JMF应用程序的控制核心。JMF