期刊在线咨询服务,发表咨询:400-888-9411 订阅咨询:400-888-1571股权代码(211862)

期刊咨询 杂志订阅 购物车(0)

流媒体播放器模板(10篇)

时间:2023-03-14 15:23:21

流媒体播放器

流媒体播放器例1

中图分类号:TN919.8 文献标识码:A 文章编号:1006-3315(2013)03-149-002

1.前言

流媒体技术以流的方式在网络中传输媒体,具有良好的实时性和交互性。随着3G、4G等高速移动通信技术的发展成熟和多媒体智能移动设备的普及,流媒体技术获得了广泛应用和迅速发展。本文基于GStreamer架构,采用RTP/RTCP协议实现数据传输,设计了一种流媒体播放器,处理芯片采用OMAP3430,操作系统为嵌入式Linux系统,借助高速网络,可以实现高质量的流媒体播放。

2.相关技术介绍

2.1流媒体技术。流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户计算机连续、实时传送。用户采用内容缓存的方式,只需要进行很短时间的缓冲,就可以一边播放一边下载,而不需要提前下载整个文件。

流媒体传输一般都是采用建立在udp协议上的rtp/rtsp实时传输协议。相对于注重传输质量的tcp协议来说,udp协议更加注重传输速度,这种协议对于实时性要求很高的流媒体文件来说,无疑是更加合适的。

2.2Gstreamer概述。GStreamer是一种流媒体应用框架,采用了基于插件(plugin)和管道(pipeline)的体系结构,框架中的所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。其主要功能模块包括元件、衬垫、箱柜等。

元件(Elements)是Gstreamer框架中所有可用组件的基础,是组成管道的基本构件。元件可以分为数据源元件、过滤器元件、接收器元件等,实现数据的输入、处理和输出等功能。

衬垫(pad)是元件(element)与外界的连接通道,每个衬垫都带有特定的功能信息,通过将不同元件的衬垫依次连接起来构成一条媒体处理管道,使数据在流经管道的过程能够被各个元件正常处理,最终就可以实现特定的多媒体功能。

箱柜(Bins):箱柜是一个可以装载元件的容器,同时其自身也是一个GstElement对象,也能够被用来容纳其他的箱柜对象。

2.3实时传输协议(RTP/RTCP)。RTP/RTCP协议栈由两个相互紧凑的协议组成,其中RTP协议负责传送具有实时特征的多媒体数据,而RTCP协议负责反馈控制、监测QoS、监视和传递相关信息。由于流媒体数据传输对于传输实时性的要求远高于传输可靠性,RTP/RTCP数据通常采用UDP/IP封装,它们共同完成网络传输层的功能。

2.4实时流媒体协议(RTSP)。RTSP协议是一种对流媒体数据的传输进行控制的应用级协议。通过RTSP协议,可以实现音视频的控制、点播等功能。

3.流媒体播放器的实现

本文设计的流媒体播放器,可以分为以下几个模块:用户界面、RTSP控制模块、RTP/RTCP传输模块、数据转换模块、解码模块、视音频输出模块。如图1所示。用户通过用户界面与客户端交互,RTSP模块响应用户界面发送的命令,建立RTP数据传输会话,会话建立之后,由RTP/RTCP模块循环接收RTP数据包并进行排序,然后转换模块对RTP数据进行解包,转换成原始的音视频数据,然后送入解码模块进行解码,最后通过音视频输出模块将媒体展示给用户。

图1流媒体播放器架构

用户界面是客户端跟用户之间交互的界面,它包括两部分内容:一是媒体播放控制,比如暂停、快进等;二是媒体内容的展示,比如视频画面的显示等。在Linux系统下,本文利用GTK+库开发GUI框架。

RTSP模块用于会话的建立和控制,它提供响应界面操作的接口,直接响应界面发送的命令。RTSP也提供互联的双方或多方的一个传输方式和编码方式的协商操作,在网络允许的情况下,建立一条最佳的传输通道。当客户端用户选择服务器上某项流媒体内容的时候,播放器会通过RTSP协议,与服务器建立会话,通知服务器往本地RTP接收端口发送音视频数据。

RTP/RTCP模块为流媒体播放器的核心组成部分,当RTSP建立传输会话之后,RTP和RTCP会各使用一个端口,RTP端口会循环接收RTP数据包,同时RTCP端口会周期性的发送RTCP报,RTCP包中包含已发送的数据包的数量、丢失的数据包的数据等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变有效载荷类型。RTP包由RTP包头和RTP数据构成,RTP包头中包含了一些可以较好保证流数据连续性实时性的信息,如序列号、时间戳等。序列号可以保证到达客户端的RTP包的连续,而时间戳可以同步音视频包。根据包头中的时间戳接收的数据包进行重新排序,然后传送到转换模块进行处理。

4.小结

本文采用Gstreamer架构,对RTP/RTCP/RTSP协议进行了深入研究,设计了一种基于Linux系统的流媒体播放器,通过构建RTP/RTCP流媒体传输插件,实现了流媒体数据的实时传输和播放,在终端设备中可以取得良好的流媒体播放效果。

这种基于Gsreamer的媒体播放器具备良好的灵活性和可移植性,借助高速传播网络,特别适合在各种不同类型的智能终端实现流媒体的接收和播放等功能,在视频监控、远程会议、视频教学、多媒体娱乐等多种不同场合都可以获得广泛应用。

参考文献:

[1]孙弼阳,李虹,王颖.移动流媒体业务的技术与应用[J]现代电信科技,2008(06):13-18

[2]陈丹,郭先会.RTP/RTCP协议在3GPP移动流媒体业务中的研究与应用[J]山西电子技术,2010(06):65-66

[3]陈洪敏.基于RTP/RTCP协议流媒体传输的研究[J]福建电脑.2010(02):93-94

流媒体播放器例2

中图分类号:TP302.1 文献标识码: A文章编号:1009-3044(2010)10-2466-02

Design of Embedded Streaming Media Player Based on ARM and Qt

GUI Ling

(College of Computer Science & Technology, Wuhan University of Technology, Wuhan 430063, China)

Abstract: This paper is focused on the design of embedded streaming media player based on the MC9328MX21 of Freescale as the core processor. And the operating system is embedded Linux which source code is open. In addition, it selects the latest version of Xvid as the decoder and takes Qt development library to design the graphical user interface. With a real-time streaming transmission technology, the play, pause, stop and other functions of streaming media are implemented in this player. At the same time the player can remote control the streaming media server.

Key words: ARM; Qt; embedded Linux; streaming media player; Xvid

随着数字信息技术和网络技术的高速发展,人们的日常生活已经越来越离不开嵌入式系统。现今,开发功能齐全、可靠性高、操作简单的嵌入式流媒体播放器己经成为计算机、通信以及消费电子产业技术发展的主要方向之一[1]。

本文中的流媒体播放器采用嵌入式技术、MPEG-4图像编码技术以及实时流式传输技术,把从流媒体服务器接收的压缩码流,进行实时解码并同步播放,同时还能远程控制流媒体服务器,实现对流媒体的播放、暂停、停止等功能。另外,利用ARM集成技术还可以实现系统的小型化、 模块化,提高了系统的通用性和可扩展性。

1 系统的整体设计

嵌入式流媒体播放器的系统体系结构可以划分为以下三层:硬件层、内核层和应用层,如图1所示。

系统的软件部分主要分为内核层软件和应用层软件。内核层软件包含嵌入式操作系统以及硬件设备的驱动程序。其中,嵌入式操作系统采用嵌入式Linux系统,其构建过程包括:建立系统引导程序Bootloader、定制Linux的内核、创建根文件系统[2]。音视频解码器、通信协议栈和图形用户界面三个主要模块组成了应用层软件。通信协议栈的主要任务是:建立与流媒体服务器间的通信,接收流媒体码流并对码流进行相应处理;通过音视频解码器对音视频压缩码流进行实时解码;图形用户界面用来向用户提供交互式的操作界面,使用户能控制、播放解压缩后的音视频数据。

嵌入式微处理器和各种设备构成了系统的硬件部分。在该系统中,选择Freescale公司的MC9328MX21嵌入式微处理器,它是整个硬件系统的核心。系统的设备主要包括:LCD输出模块、网络通信模块、系统存储模块、音频输出模块和USB主控模块等,系统硬件部分的构成如图2所示。

2 软件的设计与实现

2.1 构建嵌入式系统

嵌入式系统由于硬件资源非常有限,因此不能直接使用Linux作为其操作系统,而应该针对具体的应用,通过裁减shell 和嵌入式C库、重新配置内核等手段定制系统,使整个系统能够更高效的运行并存放到容量较小的 Flash 中。所有Linux系统的核心组件都是内核,其性能在很大程度上决定了整个系统的性能。本系统采用了定制的ARM-Linux内核,版本为2.6.13,它启用了MMU(内存管理单元),是针对支持 MMU的处理器设计的。另外,在保证内核基本组件的基础上,添加了TCP/ IP协议、文件系统等组件的支持,定制出最小适用内核。

随机存储器 RAM(DRAM,SDRAM)和只读存储器ROM(常采用FLASH存储器)是嵌入式系统的主要存储设备。以存储设备为基础的嵌入式文件系统主要有YAFFS[3](Yet Another Flash File System)、JFFS(Journaling Flash File System,日志闪速文件系统)、 JFFS2、ROMFS(只读小文件系统)、CRAMFS(用于MTD设备的数据压缩文件系统)、RAMFS/TMPFS等。本系统的硬件平台是以NAND Flash为存储芯片并选择NAND Flash的YAFFS作为文件系统。

要使Linux系统能正常工作,根文件系统是其运行所必需的文件及应用程序的集合。本文的根文件系统主要包括:基于busybox的 shell、支持应用程序的最基本库文件、GUI程序及gcc应用程序等。

图形用户界面使用面向对象体系结构的Qt/Embedded来实现,使代码结构化、可重用。

2.2 MPEG-4视频解码器的实现

MPEG-4视频解码就是对按照MPEG-4编码的压缩码流进行反变换获得图像的YUV值,这是一个视频恢复的过程,它的流程如图3所示。在嵌入式系统的应用中,MPEG-4视频解码器的实现一般有硬件实现和软件实现两种方法。为降低成本,本系统以Xvid编解码器模型为基础,采用软件方法实现MPEG-4视频解码器。

Xvid是一个开放源代码的、以GNU GPL协议[4]为基础,基于OpenDivX编写的MPEG -4多媒体编解码器,它是目前世界上最快的MPEG编解码器。在ARM-Linux系统平台下,Xvid视频解码器的嵌入式移植过程主要有七个步骤:

1)从Xvid的官方网站上免费下载其源代码,为解码器移植做准备。Xvid的源码可以从其官方网站上免费下载,本文下载的版本为1.2.2。解码器的移植采用宿主机/目标板的开发模式,宿主机为PC机+Ubuntu 9.04,交叉编译器的版本为arm-linux-gcc-4.3.2。

2)删除多余代码。由于我们的目标平台是ARM,因此可以将关于PPC、X86的代码删除。另外,有部分代码是与编码相关的,解码不需要,故也可以删除。

3)运行配置脚本,生成Makefile。进入xvidcore-1.2.2/xvidcore/build/generic目录,执行以下命令:#./configure Cdisable Cassembly。

4)将Makefile的C语言编译器修改为arm-linux-gcc交叉编译器。将platform.inc文件里的CC=gcc修改为CC=arm-linux-gcc。

5)执行make命令,生成Xvid类库文件。

6)将上一步生成的类库文件拷贝至交叉编译器的默认库搜索路径。对于本系统交叉编译器的默认库搜索路径为/usr/local/arm/4.3.2/arm-linux-gcc/lib。

7)调用Xvid解码器提供的接口函数编写应用程序,交叉编译应用程序,将生成的可行文件拷贝至目标板调试执行。

经过以上步骤,即完成了对Xvid视频解码器的移植并实现了MPEG-4视频解码器。相对于以前的版本,Xvid 1.2.2最主要的改进是增强了RGB与YUV之间相互转换的精度。

2.3 GUI程序的设计

播放器的图形界面在Qtopia视窗环境下运行,采用版本为3.3.6的Qt/embedded作为底层图形库。Qt是一个跨平台的C++图形用户界面应用程序框架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,Qt/Embedded是面向嵌入式系统的版本。信号和槽机制是Qt的核心机制,Qt的窗口部件中有多个预定义的信号,我们也可以通过继承来加入自己的信号,槽是一个可以被调用处理特定信号的函数,当一个特定事件发生的时候,一个信号被发射,对应的槽就会调用相应的函数[5]。

图形界面主要包括主界面窗口、文件操作窗口、播放列表窗口。界面窗口有一个显示屏和一些控制按钮,包括播放、暂停、快进、快退、音量调整及播放进度条和播放时间显示。文件窗口可以让用户选择要播放的多媒体文件。播放列表用来显示最近播放的多媒体文件。

3 MPEG-4视频流的实时传输

MPEG-4系统层模型自上而下包括压缩层、同步层和传输层。由于复杂度较高,本文没有采用在传输层中制定的传输多媒体框架DMIF(Delivery Multimedia Integration Framework)标准,而是利用RTSP、RTP和RTCP来实现MPEG-4视频流的实时传输。其中RTSP是用来控制MPEG-4视频数据传输的,RTP是用来实际传输MPEG-4视频数据的,RTCP是用来实现拥塞控制和流量控制服务的。各个协议之间的关系如图4所示。

MPEG-4视频流实时传输系统是以RTP/RTCP/RTSP协议为基础的,图5是其总体框架。单个的MPEG-4视频数据流在传输时,用户需要打开3个与服务器进行交互的网络端口,即RTP视频流接收端口、RTCP控制信息交互端口以及RTSP控制信息交互端口。

4 结束语

本文以嵌入式技术、Qt、流媒体技术为基础,研究并初步设计了一种基于嵌入式系统平台的流媒体播放器。该方案的优点在于视频流的实时传输方法较之MPEG-4制定的标准,更加简单易行,容易实现,并采用了最新版本的Xvid,增强了RGB与YUV之间相互转换的精度。但该方案还有很多地方有待改进,在后续开发中,可以从以下几个方面展开工作:完善嵌入式图形用户界面、优化Xvid视频解码器在ARM上的运行效率、扩展解码器功能以支持更多的多媒体格式。

参考文献:

流媒体播放器例3

中图分类号:TP37 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.04.018

流媒体播放器例4

笔者利用Windows 2000 Server自带的Windows Media Service搭建了一个环境,经过一番努力,终于实现了流媒体服务。欣喜之余,谨愿将这些探索并经验与读者共享;

1.流媒体技术概述

流媒体简单地说就是应用流式传输技术在Internet/Intranet上传输的连续时基媒体,如:音频、视频或多媒体文件。流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输。流式传输主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet将影视节目传送到PC机。流媒体技术是包含了采集、编码、传输、储存、解码等多项技术的综合技术。

2. Windows Media技术简介

2.1 特点

Microsoft公司推出的Windows Media技术具有方便性、先进性、集成性、低费用等特点,而且其制作、和播放软件与Windows NT/2000/9x集成在一起,不需要额外购买。Microsoft的流视频解决方案在Microsoft视窗平台上是免费的,制作端与播放器的视音频质量都上佳,而且易于使用。

2.2 Windows Media播放方式

Windows Media播放方式包括单播、多播、点播与广播,并可组合为点播单播、广播单播、广播多播等播放方式。它们的含义如下表所示:

播放方式 含义

单播 是客户端与服务器之间的点到点连接。在客户端媒体服务器之间建立一个单独的数据通道,1台服务器送出的每个数据包只能传送给1个客户机。

多播 是通过启用多播的网络传递内容流,网络中的所有客户端共享同一流。由多播技术构建的网络,允许路由器一次将数据包复制到多个通道上。采用多播方式,媒体服务器只需要发送一个信息包,所有发出请求的客户端即可同时收到连续的数据流而无延时。多播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽,是理想的播放方式。

点播 是客户端与服务器之间的主动的连接。用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。

广播 指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要。此种传输方式会非常浪费网络带宽。

组合播放方式 含义

点播单播 客户端连接到服务器以接收特定内容,而该内容也只传往一个客户端。用户可以控制流。

广播单播 客户端通过点上的别名访问流。用户可单击 Web 网页上的链接或获得该别名的 URL,从而连接到流。每个连接到流的用户都有其自己的连接和来自服务器的流。

广播多播 被动的用户通过监视特定的 IP 地址接收多播 ASF 流(与以特定频率从收音机或电视台接收信号类似)。

2.3 Windows Media视频技术组成

Windows Media视频服务器系统包括以下几个部分:Windows Media服务器组件、Windows Media工具、Windows Media Player。

2.4 Windows Media编码器

Windows Media编码器用于转换实时和存储的视频和音频内容为ASF流,然后通过Windows Media服务器在网络中传送。

2.5 Windows Media Player

Windows Media客户端软件称为Windows Media Player,由Windows Media服务器接收并播放流内容。Windows Media服务使用Windows Media Player以播放包含视频、音频、图像、URL和脚本内容的ASF流。Windows Media Player 9系列是最新版本。

2.6 Microsoft高级流格式ASF简介

Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。 Microsoft将ASF定义为“同步媒体的统一容器文件格式”。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容。

3. Windows Media校园流媒体系统的设计

3.1 网络结构设计

Windows Media流媒体系统包括服务器端和用户端两部分。服务器端包括Windows Media服务器、制作计算机。Windows Media服务器用于存储和流媒体信息。制作计算机安装视频采集卡、声卡及摄像机,用于制作流媒体文件。用户端安装Windows Media Player软件。数据传输依托校园网。

3.2 软硬件要求

3.2.1服务器

服务器硬件配置一般是PIII400以上CPU,内存在128~512M左右。操作系统Windows 2000 Server及Windows Media服务组件。

3.2.2制作计算机

制作计算机硬件配置一般是PIII400以上CPU,内存在128~512M,需要声卡、视频采集卡以及VCD或录像机。软件为Windows 98或Windows 2000 Professional,安装Windows Media编辑工具。

4. Windows Media校园流媒体系统的实现

流媒体播放器例5

1)数据压缩比高。流媒体所利用的压缩方式,将流信息添加到文件,这一处理不但可以提高数据压缩比,还可以把动画、音/视频等多媒体文件打包成若干个压缩包,以便客户端能够实时连续地接收来自服务器的压缩包。

2)可节省客户端的缓存及硬盘空间。流媒体技术的应用,用户可以在多媒体文件下载的同时,在客户端计算机进行多媒体的播放和观看,其中下载的内容只是暂存在缓存区,播放后即可进行释放,这样可以节省客户端的缓存及硬盘空间。

3)缩短了延时等待的时间。大大的提高了系统运行的效率,减少了视频缓冲时间,使得网络视频教学播放的更为流畅。

4)采用了与以往不同的传输。流媒体技术应用一种实时传输协议,这一协议较好的解决流媒体数据传输问题,可以使媒体数据在网上快速有效的传输。针对.rm,.avi,.flv,.swf等格式的动画视频提供在线播放功能,能自动识别视频格式,选择对应的网页播放器,在带宽不足的情况下,能够实现同时在线的人数控制。相对于传统的下载后播放大幅度,流式传输减少了启动延时,且由于所有内容都被下载到缓存中,使得所需空间大大减少。目前,流式传输主要依靠以下两种方式实现:一是实时流式传输(RealtimeStreaming),二是顺序流式传输(ProgressiveStreaming)。如视频为实时广播,可以使用流式传输媒体服务器或者使用RTSP这样的专门设计的实时协议,如果使用HTTP传输,文件则是顺序流传输。

1)顺序流式传输顺序流式传输指的是顺序下载媒体文件,用户只能观看已下载部分却不能跳至未下载部分,由于HTTP协议本身存在限制,该传输方式亦不能根据带宽情况在传输期间进行调整。通常情况下,HTTP服务器可发送此类文件形式,所以该方式也称作HTTP流传输。

2)实时流式传输实时流式传输不同于顺序流式传输,它采用专门的流媒体服务器及传输协议,实时流媒体支持随机访问,可对观看内容快进和后退。特定流媒体服务器在实时流式传输中是必要的,如DarwinStreamingServer、HelixServer与WindowsMediaServer。这些服务器允许更多级别的控制媒体发送。特殊网络协议在实时流式传输中也是必要的,如:RTSP(RealtimeStreamingProtocol)或MMS。

流媒体播放器例6

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)07-1556-03

1 概述

随着移动媒体技术的发展,J2ME在手机、PDA等移动设备上的到了广泛的应用,目前已成为手机开发的主流平台之一,该文首先介绍了J2ME层次结构,MMAPI框架。然后对视频播放器的功能要求做了分析,搭建开发平台,设计了并实现了一款基于J2ME的移动媒体播放器。

2 技术分析

2.1 J2ME体系框架概述

J2ME平台有一系列技术规范组成。J2ME主要由配置(configuration)、简表(profile)和可选包(层)三部分组成。J2ME体系框架结构如图1所示。

2.2 MMAPI框架分析

移动媒体API(Mobile Media API,MMAPI)是JSR135定义的可选包,处于J2ME体系框架的可选包层。提供了一个功能强大,使用简单的多媒体框架。开发人员可以使用这个多媒体框架在移动设备上处理音频和视频数据。MMAPI框架有一个管理器、一个数据源、一个播放器和若干个控制器组成,其中播放器是MMAPI的核心。他们之间的关系如图2所示。

现对MMAPI框架中的各个组件说明如下:(1)数据源(DataSource):数据源由抽象类javax.microedition.media.protocol.DataSource描述,负责把多媒体数据从原始位置传输到播放器。多媒体数据可以存储在各种不同的位置。如文件、远程服务器或者记录管理系统等。根据多媒体数据的存储位置,数据源采用不同的传输协议。(2)播放器(player):播放器是MMAPI框架的核心,负责和解码数据源提供的多媒体数据,并把解析后的数据发送到输出设备的缓冲区中。Java.microediton.media.Player接口定义了管理器播放器生命周期、控制媒体重放和同步的方法。(3)控制器(Control):控制器负责改变播放器的行为。如声音控制器可以调整音频播发器的声音大小。(4)管理器(Manager):管理器又javax.microedition.media.Manager类实现,负责创建播放器和数据源。它提供了创建播放器的静态方法createPlayer。

2.3 使用MMAPI

视频播放的基本流程是:首先通过一定的网络协议或本地的位置获取传递来的流数据,然后将这些流数据传输给DataSource类进行处理,DataSource类将读取视频流和音频流数据并将它们提供给Player类,最后由Player类解析和解码数据以及识别媒体数据类型和传送媒体数据到相应的输出设备缓冲中,Player通过同步机制使用音频和视频设备实现视频和音频的播放。

播放器在其生命周期中有5种状态,图3描述了播放器的生命周期。播放器被创建成功,此时播放器处于unrealized状态。调用realized()方法初始化数据传输,当从该方法返回时,播放器处于realized状态。然后调用prefetch()方法获取音频设备、视频设备等专用资源,直到成功获取这些资源,播放器进入prefetched状态。此时播放器就可以调用start()方法开始播放媒体数据,播放器进入started状态。而在任何一种状态下,都可以调用close( )方法使播放器处于closed状态。如果播放器unrealized状态直接调用start()方法,系统将自动调用中间的realized()方法和prefetch()方法。

3 实例应用

3.1 设计要求

设计一款视频播放器能够播放MPEG格式的视频文件。具体要求如下:(1)当用户选择“打开视频文件”选项时,在屏幕上显示一个文件对话框。在文件对话框中列出了当前目录下所有的子目录和MPEG格式的视频文件。用户可以选择打开一个视频文件,也可以选择进入目录或者上一级目录。文件对话框第一次显示时,将列出移动设备中所有文件系统的根目录。(2)当用户打开一个视频文件时,将启动播放器,在屏幕上播放选择的视频文件。在播放视频的过程中,用户可以通过屏幕上的命令暂时播放和继续播放视频。用户还可以通过按下方向键改变音。(3)用户尅停止播放视频,返回播放器的主菜单,再次打开文件对话框,打开新的视频文件。

3.2 类设计

移动视频播放器共包含4个类和一个接口。一个控制器类MobilPlayerMIDlet;一个视图类VedioCanvas;一个视频播放器类VedioPlayer以及一个文件对话框类VedioFileDialog和文件对话框命令的处理接口VedioFileDialogListener。图4显示了它们之间的关系。

1)控制器类MobilPlayerMIDlet:该类是应用程序主类,实现了MIDlet的生命周期控制方法。该类实现了PlayerListener接口,能够监视播放器的变化。同时,该类还实现了CommandListener接口,处理播放、暂停等命令。2)播放器类VedioPlayer:该类描述了视频播放过程。为了避免播放视频阻塞用户界面线程,视频的播放过程在一个线程中完成。

3.3 实例实现

移动视频播放器在eclispeME+SDK平台下,采用Sun公司的WTK进行模拟,通过实验达到了预期的效果。以下是运行的效果,如图5所示。

4 结束语

移动媒体的软件开发是当前研究的热点。该文阐述了J2ME的系统架构,分析了MMAPI框架,采用该技术设计实现了一款手机视频播放器。通过实验,取得了预期的效果。

参考文献:

[1] 卢军.J2ME移动软件程序设计[M].北京:水利水电出版社,2010.

[2] 傅伟.基于J2ME的手机掼蛋网络游戏的研究[J].计算机应用软件,2013(3).

流媒体播放器例7

现在,很多朋友都喜欢使用Total Commander(以下简称TC)来替代系统的资源管理器,它的功能的确比系统自带的资源管理器强大。下面再教你一招,将常用的应用程序添加到TC的工具栏中,这样就可以在TC中直接启动需要的应用程序,省得再从“开始”菜单中逐步打开了。

第一步:打开TC程序,右击工具栏,选择弹出的快捷菜单中的“改变”项(如图)。

第二步:单击“添加”按钮,再单击“命令”项后面的“>>”按钮并将欲添加的工具对应的可执行程序添加进来,最后单击“确定”按钮即可。这样设置后,这个工具便会自动添加到TC的工具栏中,以后只要直接在TC的工具栏中单击该工具对应的图标即可立即启动该工具了。

提示

TC默认显示的是系统工具栏,如果你添加的应用工具比较多,建议添加到用户工具栏中:先单击工具栏最左侧的 “UserApps Toolbar”按钮,然后再按照上面的步骤添加目标应用程序即可。

流媒体也能连播

dream

喜欢听音乐、看电影的朋友们可能都会一个技巧,那就是直接将所有的音乐文件或是电影视频文件添加到播放器中,实现自动连续播放的目的。如果你看的是在线流媒体文件,如何实现连续播放呢?其实,实现原理与上面的连续听音乐、看电影类似,只要将流媒体文件全部添加到播放器中即可,但是流媒体并不像硬盘中音乐文件那样以单独的文件存在,如何将其添加到播放器中呢?

第一步:直接点击流媒体播放链接,启动默认播放器播放,这时,在播放器中可以查出该流媒体文件的播放URL。

Real Player播放器查看方法

如果在线媒体默认启用Real Player来播放影片的话,方法如下:

单击Real P1ayer的主窗口中的菜单“File/Clip Properties/View Clip Info”,打开属性窗口,选择“File”标签即可看到当前播放的流媒体的URL地址了。

Media Player播放器查看方法

单击播放器窗口中的菜单“查看/正在播放/显示播放列表”选项,相应的播放器窗口的右侧将会出现当前播放列表。然后,用鼠标右击播放列表中的当前文件名,在弹出的快捷菜单中选择“属性”选项,此时就会弹出显示流媒体文件真实的URL地址了。

流媒体播放器例8

流媒体技术解决的问题就是:采用流式传输方式直接从网络上得到平滑的数据流,无须首先把多媒体数据下载到本地终端在采用流式传输的系统中,声音、影像、动画等信息从网络中音视频服务器向用户终端(如PC、PDA等)连续、实时传送,用户不必象下载方式那样等到整个文件全部下载完毕,只需经过短暂的启动延时(缓冲)即可在用户的计算机上通过解压设备(硬件或软件)解压后进行回放,数据的剩余部分在后台继续从服务器下载这种对多媒体数据边下载边回放的方式不仅使启动延时缩短,而且不需要本地终端有太大的存储容量。

2流媒体的传输方式

2.1顺序流式传输

即在给定时刻,用户只能观看已下载的部分,而不能跳过还未下载的部分,它不像实时流式传输那样在传输期间根据用户连接的速度进行调整。由于文件在播放前观看的部分是无损下载的,顺序流式传输方式适合高质量的短片段,如片头、片尾和广告,不适合长片段和有随机访问要求的视频、讲座、演说与演示,也不支持现场广播。严格说来,它是一种点播技术。

2.2实时流式传输

是指媒体传输时信息带宽能自动动态适应网络带宽,保证媒体信号带宽与网络连接相匹配,使媒体可被实时观看到。它与顺序流式传输不同,需要专用的流媒体服务器与传输协议。实时流式传输适合现场事件,也支持随机访问,用户可快进或后退观看前面或后面的内容。理论上,实时流一经播放就可不停地收看,但实际上,可能会发生周期暂停。

2.3二者的比较

(1)从视频质量上讲,实时流式传输必须匹配连接带宽,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量会下降;如欲保证视频质量,顺序流式传输更好。

(2)实时流式传输需要特定的服务器,如QuickTimeStreamingServer、RealServer与WindowsMediaServer,这些服务器允许对媒体发送进行更多级别的控制,因而系统设置、管理比标HTTP服务器更复杂。

(3)实时流式传输还需要特殊的网络协议,如:RTSP(RealtimeStreamingProtocol)或MMS(MicrosoftMediaServer),这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容;而顺序流式传输与防火墙无关。

3流媒体传输质量的控制

3.1智能(intelligenceandability)流技术

系统能够自动检测网络状况并将视、音频流的属性调整到最佳,使用户收到与其连接速度相符的媒体流。智能流技术的实质是通过C/S应用层的速率反馈机制探测网络带宽变化,利用媒体流的多速率层次编码能力,在服务器端动态的调节媒体流的传输速率,以保证用户在网络带宽变化条件下仍能收到质量较好的媒体流。

3.2分流(splitting)技术

分流技术一般只在作网络直播时使用。发送服务器通过UDP单播、UDP组播等方式将直播媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。发送服务器与接收服务器之间由高速链路连接。

3.3内容分发网络(CDN)技术

CDN是近几年才发展起来的新技术,它作为基础IP网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,可以将用户请求的流媒体内容到距离用户最近的网络边缘,从而提高用户访问的响应速度,并有效解决网络拥塞,最大限度的减轻骨干网络流量。

3.4缓存(caching)技术

互联网是以断续的异步包传输为基础,一个实时媒体流或媒体文件在传输中将被分成多个包传输。由于网络的延时、抖动等因素,包到达客户端的顺序和延迟可能不一样,可能出现先发的包后到的情况,因此需要缓存系统来弥补网络延迟和抖动的影响,以保证数据包的顺序正确以及不会因为网络暂时拥塞而出现播放停顿的现象。缓存技术一般采用环形链表结构存储数据,丢弃已发送或已播放内容并利用空出的空间存储将要发送或将要播放的内容,所以一般缓存不会很大。

4流媒体系统组成结构

4.1服务器端产品

服务器端软件产品主要有Microsoft公司的WindowsMediaServers服务器组件、RealNetworks公司的RealServer和Apple公司的QuickTimeStreamingServer等。这些软件的作用是提供流式多媒体信息的和管理平台。

4.2制作端产品

制作端软件产品主要有Microsoft公司的WindowsMediaServers工具组件、RealNetworks公司的RealProducer和Apple公司的QuickTime等。这些软件的作用是将普通格式的音频、视频或动画媒体文件通过压缩转换为能进行流式传输的流格式文件。

4.3客户端播放器

客户端播放器软件产品主要有Microsoft公司的WindowsMediaPlayer、RealNetworks公司的RealPlayer和Apple公司的QuickTime等。这些软件通常既可以独立运行,也能作为插件在浏览器中运行。

5流媒体技术的应用

Internet的不断发展决定了流媒体应用广阔的市场前景。流媒体技术及其相关产品将广泛用于远程教育、网络电台、视频点播、收费播放等。流媒体技术在企业一级的可能应用包括电子商务、远程培训、视频会议、客户支持等。下面对一些主要的流媒体应用作简要的介绍。

5.1视频播出(StreamingVideo)

娱乐是流媒体的重要应用场合。用摄像机或其它装置获得视频信号后,就可以通过站点进行基于Internet的现场直播;或者保存为流媒体格式的文件,以供按需播放。需要在一台较高配置的PC机或服务器上安装上普通视频采集卡和声卡,然后通过视频采集卡输入视频和通过声卡输入声音信号就可以用实时编码工具来进行直播或录制成流媒体文件。在这种应用中可加入一定的计费手段,从而能够提供有偿多媒体内容服务。

5.2远程教学(Remoteseminar)

流媒体播放器例9

中图分类号:TN943.6 文献标识码:A 文章编号:1007-9416(2012)09-0071-01

进入21世纪以来,随着计算机技术、网络通信技术的飞速发展,传统的教育教学模式面临着巨大的挑战。利用互联网进行网上教学、进行网络课程的开发已经成为教育技术界讨论的重要问题和改革趋势。其中音视频的直播传输在远程教育中已经被广泛的加以应用并得到了良好的效果。

1、流媒体技术的原理

1.1 流式传输

对于一些比较小的音视频文件,可以通过下载存储到本地计算机,然后再进行观看。但对于大部分带有视频的的文件,一小时的节目就需要占用几百MB,甚至达到几个GB的存储空间,此时采用下载观看的方法就不方便了。另外,对于一些时效性比较强的节目,显然用下载的方法无法满足直播性的要求,因此,就需要采用一种具有实时性的传输方式——流式传输。

对音视频信息使用流式传输,需要使用专门的流媒体服务器向客户终端用户发送视频图像、声音、动画等多媒体信息,其传输过程是由流媒体服务器连续、实时地向客户端发送。这样用户就不必等文件全部下载到本地才进行观看,而是一边从流媒体服务器接收数据,一边在客户端的多媒体播放软件中观看已传到本地的数据,而在播放的过程中,播放软件仍在不断地接收服务器发送过来的数据,这样就可以连续不断地看到节目。

通过流式传输,用户就可以实时地看到节目。这里说的实时其实对于一些直播节目还是有一点延迟,例如看网络电视的节目通常会比广播电视网中传输到电视机上的节目有2分钟左右的延迟。延迟的原因一是网络传输速度的影响,另一个重要原因是这些多媒体节目都需要一个视频压缩转换的过程。当然,随着流媒体技术的发展,将来也完全能做到完全实时同步。

1.2 流媒体播放方式

(1)单播方式:一台服务器传送的数据包只能传递给一个客户机,媒体服务器必须向每个用户发送所申请的数据包,多个点对点方式结合。

(2)组播方式:允许路由器将数据包复制到多个通道,客户端共享一个数据包,按需提供。

(3)点播与广播方式:点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。

本系统应用的就是广播方式。

2、实况编码服务器的设置

实况编码服务器包括高性能多媒体计算机一台、Oserpy-210流媒体卡一块,Sony DVC33摄录一体机一台,具体设置如下所述:

实况流编码器1(多媒体计算机)的配置

(1)“开始”—“程序”—“Windows Meadia”—“Windows Meadia编码器”;

(2)弹出“新建会话”对话框,选择“广播实况事件”并“确定”;

(3)点击“下一步”,弹出“广播方法”对话框,选择“自编码器拉传递”;

(4)点击“下一步”,弹出“广播连接”对话框,随机查找可用的HTTP端口,这里我们选择“1085”端口;

(5)连续“下一步”后,点击“完成”,弹出“Windows Meadia编码器”界面,点击“开始编码”按钮,编码开始。

至此,音视频直播实况流编码服务器完成。

3、流媒体服务器配置

本次流媒体服务器所使用的操作系统是Windows server 2003,具体操作如下所述:

(1)“开始”—“设置”—“控制面板”—“管理工具”—双击“Windows Media Services”,弹出Windows Media Services控制界面;

(2)在“点”上右击,选择“添加点(高级)”,弹出“添加点”对话框。

(3)点击“确定”,回到Windows Media Services控制界面,流媒体服务器配置完成。

4、客户端测试直播

“开始”—“运行”,输入“mms://TEACHER/直播”,“确定”后会自动启动“Windows Meadia Player”播放器,开始播放“直播实况”,至此,基于网络流媒体技术的音视频直播成功。

5、结语

本文阐述了一种使用Windows Media Services流媒体服务器来实现基于网络的音视频直播方法。在实际使用过程中,从摄像机获取的音视频得以顺畅的通过网络传送到客户端,达到了比较满意的效果。当然,本研究还存在许多不足之处,比如可以在以后的实践中尝试基于Linux环境下搭建Helix producer的流媒体传输等更全面的技术。

参考文献

[1]庄捷.《流媒体原理与应用》[M].北京:中国广播电视出版社,2007.

[2]齐俊杰等.《流媒体技术入门与提高》[M].北京:国防工业出版社,2009.

流媒体播放器例10

其实,在不同设备以及平台之间,共享数字媒体是件很简单的事情。其简单之程度,可能会让你感到吃惊。Windows 7内置了媒体播放器以及相应的工具,并提供DLNA/UPnP支持,可以和兼容设备非常容易的共享数字媒体库。而对想通过网络(或者网页)来访问这些媒体文件的人来说,也只需极少的几步配置即可。

当然,有几个先决条件你必须达到;此外,对于Windows媒体播放器的不同分享选项,你也应该有相应程度的熟悉。首先,存有媒体文件库的电脑必须已连到局域网网上(这样才能在内部网共享),或是连到Internet上(如果是打算通过互联网共享文件的话)。你必须根据要求,在Windows媒体播放器中启用了相应的一些设定。如果连到互联网的主机是位于某个路由器或者防火墙之后,则还需在电脑上打开几个相应的端口,以便外部连接的访问请求能够顺利通过。

起步

在Windows 7电脑上共享数字媒体的第一步,是在Windows媒体播放器中建立并管理数字媒体库。如果你已将相应的文件都放到了“我的音乐”、“我的照片”,以及“我的视频”等文件夹中,则WMP应该会自动发现它们。如果将这些文件放到了另一个磁盘驱动器上,或者是放到了某个网络存储设备上的话,则需要自己手动将这些文件导入Windows媒体播放器中。具体做法是打开WMP(Windows媒体播放器),切换到“媒体库”。然后点击下拉菜单“组织”中的“管理媒体库”,再根据需要选择“音乐”、“视频”或“图片”。然后会出现一个“视频库位置”的窗口,你可以在这个窗口中点击“添加”按钮,然后找到要加入文件的具体文件夹位置即可。

当然了,还有一条是不言而喻的,那就是开始共享之前,这台装有数字媒体的电脑必须已开机且连到网上了。如果想通过互联网和另一台电脑进行共享的话,你还必须先连入Internet。达到了上述这些必备条件之后,就可以开启“共享”了。打开媒体播放器(切换到媒体库页面,如果需要的话),点击上部“媒体流”下拉菜单中的“自动允许设备播放我的媒体”。启用这个选项,将把你的电脑转化成一台兼容DLNA的数字媒体服务器(DLNA,数字化实时网络设备)。而那些能访问这些文件的远程系统或设备,将作为数字媒体播放器出现。一个网络之中,可以同时存在多台数字媒体服务器;那些作为数字媒体播放器出现的电脑或设备(遵守DLNA设备类定义),也可以成为数字媒体服务器主机。

下一步,再次点击“媒体流”下拉菜单,选择“更多流选项”。在这个页面中,你可以对媒体库进行命名。同时,该屏幕上也会显示一个网络中可以访问该库的设备列表。如果你想允许或者禁止某个列表中的设备访问你的媒体库,可以在此进行设置。

这样,你就已经准备好开始通过网络与另一台设备共享媒体流了。如果你想更进一步,通过网页与人共享的话,你还要打开另一个选项。在媒体播放器中的“媒体流”下拉菜单中,选中“允许网络访问家庭媒体”。然后程序会弹出一个窗口,提示你允许互联网连接,以便“链接联机ID”(比如某个Windows Live账号)到媒体库上;务必注意根据屏幕上的提示,妥善完成上述步骤。当账号链接成功后,你就可以使用该账号链接到其他电脑上,并通过网页来访问该媒体库。

不过,想通过网页远程访问电脑的话,一般都会需要对路由器或者防火墙进行一些调整。以前我们就已经解释过如何打开某些特定的端口,但这里你需要确切的知道应当打开哪些端口,以便网络共享能够正常工作。要想找出这些端口,首先在媒体播放器中的“媒体流”下拉菜单中,点击“允许网络访问家庭媒体”,然后在子窗口中,点击“测试连接”。互联网媒体流检测工具将打开并运行一些快速测试。在窗口底部,点击“转发端口信息”连接,可以看到一个需要转发的端口列表。将这些端口转发给相应的主机(或相关DMS设备)的IP地址,你就算万事俱备了。

下面,我会告诉你如何与其他设备共享媒体流。

局域网电脑共享

对于在同一网络上,或是在同一家庭组中的电脑来说,访问共享系统中的数字媒体库是十分简单的。如果你已经按照上文设定了允许设备自动播放媒体,共享的媒体库将会显示在Windows媒体播放器的主界面中。

如果你的电脑正确连入网络,并且你的主机已经开机可以正常使用的话,打开Windows媒体播放器,给它一点时间,让它扫描一遍整个网络。在它左侧的库面板上,库列表底部位置,应当可以看到在其他媒体库的下面,是主机共享的媒体库。点击该库,就可以使用该库中的音乐,视频,图片,录制的电视节目,以及播放列表了。

互联网电脑共享

至于通过网页访问数字媒体库的过程,在微软手里也变得十分简单。首先,确保你已经按照我上文所述进行了正确的设定。此时,你应该可以在媒体播放器的“媒体流”下拉菜单中,看到“允许网络访问家庭媒体”被勾选了;同时,你应当也为该媒体库链接了一个联机ID。

基本上,你需要在远程电脑上同样执行一遍那些必要的步骤。在远程电脑上,打开Windows媒体播放器,然后选中“允许网络访问家庭媒体”选项。然后会出现一个新窗口,标有“网络访问家庭媒体”。点击“链接在线ID”按钮,然后将该电脑链接到你用于设定主机系统(DMS)的同一联机ID上。当该电脑开机并联入互联网后,(如果有必要,事先应在路由器中设定好需转发的相应端口),它的媒体库应当会显示在其他库的类别下面,就好像这些电脑被连入同一局域网时所表现的那样。

游戏终端共享流媒体

至于和游戏终端(比如Xbox 360或者PS 3)共享数字媒体,则更是异乎寻常的简单。只需将该游戏设备连入该电脑(或数字媒体服务器)所在的网络即可。无论是Xbox 360还是PS 3,访问Win7电脑上的数字媒体,就像打开游戏终端电源,然后播放终端内的照片、视频或者音乐一样简单。如果数字媒体服务器和游戏终端是位于同一网络上的话,服务器上的数字媒体库应当会被列出来,用终端直接播放库中的文件即可。

使用Xbox 360访问Win7电脑相当快捷简单,需要做的无非是事先在媒体播放器中启用媒体流而已。不过,如果在Windows中事先关闭了“文件与打印机共享”服务的话,用户使用PS 3游戏终端访问Win7电脑时将会遇到问题。解决方法是将Win7的“文件与打印机共享”服务重新开启――具体做法是点击“开始”按钮,在“搜索程序和文件”框中,输入“管理高级共享设置”,然后按下回车键。在弹出的控制面板窗口中,确保“启用文件和打印机共享”被选中,而“媒体流”选项显示为“媒体流已打开”。

如果觉得上述操作搞不定的话,PS3的用户们还可以尝试另外一招,那就是在电脑中运行一个第三方的DLNA/UPnP媒体服务器软件,比如Ps3mediaServer。

DLNA电视或机顶盒共享

如今为数众多的HDTV和机顶盒设备(比如蓝光播放器)都是具备联网功能的“智能设备”,内置有数字媒体播放工具,支持DLNA。如果将这些设备连入Win7电脑所在的网络(Win7电脑已事先正确开启了媒体流设置以及其他相应的共享选项),它们能像其他设备一样,快速便捷的访问Win7电脑中的媒体文件。

我们分别使用了一台三星HDTV,以及一台三星蓝光播放器来访问电脑。虽然因为两台设备的界面极其类似,所以导致了测试过程中的表现看起来也几乎完全相同,但实际上却是来自于完全不同的设备制造商。这一点表明,凡是兼容DLNA的类似设备,大概这些相同的步骤都是必不可少的。

首先,我们打开了三星蓝光播放器的电源(但没有插入碟片),于是我们直接看到了播放器的主界面,可进行相关设定或运行相关应用。我们确认该播放器已连入网络(本例中我们是使用了无线网),并在网络设定菜单中,确认该播放器已获得IP地址。然后我们进入设备菜单,开始扫描整个网络,寻找DLNA数字媒体服务器。找到之后就很简单了,直接在设备菜单中选中该电脑(或数字媒体服务器),然后打开要观赏的音乐、视频或图片文件夹,播放相应的文件即可。

安卓智能手机(平板电脑)共享