欢迎访问发表云网!为您提供杂志订阅、期刊投稿咨询服务!

多媒体播放器大全11篇

时间:2023-02-05 21:54:15

多媒体播放器

多媒体播放器篇(1)

【关键词】Android 播放器 多媒体 移动应用

随着智能手机的普及,越来越多的人通过手机观看视频和欣赏音乐,这给人们的生活带来很大的便捷。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。本文介绍的多媒体播放器就是基于Android进行开发的,主要模块有:播放器界面、播放音乐、播放视频以及多媒体文件管理。

1 多媒体播放器界面设计

多媒体播放器界面旨在为用户提供可视的操作界面,需要在用户界面设计中提供进度控制、开始、快退、快进、暂停等控件。效果如图1所示。

设置项目主题区域,利用LinearLayout和TextView两种XML元素进行布局。媒体播放区域用于播放媒体文件,需要使用SurfaceView控件。SurfaceView控件以流的方式来显示媒体文件。控制区主要由快退、暂停、开始和快进组成。设计要求:控制区域水平居中,相邻控件要有一定的间隙,开始和暂停按钮不能同时出现。进度区域要求显示媒体文件总时长、已播放时长、进度,选择LinearLayout、SeekBar和TextView等XML元素进行布局。

2 播放音乐

本模块要求实现音乐文件的播放,在播放界面上显示音乐的文件名、播放的时间、总的时间、音乐播放控制等。效果如图2所示。

MediaPlayer类用于管理媒体播放的操作,android多媒体框架支持播放不同位置存放的多媒体资源,如:本地资源、内部URI和外部URL。MediaPlayer类的构造函数比较简单,只有一个无参的构造函数:MediaPlayer()。

5 总结

本文介绍了如何在Android平台上设计多媒体播放器,本项目主要涉及的关键技术包括:播放控制条的控制、消息处理、声音的播放、视频图像的显示、多媒体文件的搜索等。

参考文献

[1]许瑾.基于Android平台音乐播放器的设计与实现[D].北京邮电大学,2011.

[2]李刚.基于Android平台的智能手机流媒体播放器的研究及实现[D].南京邮电大学,2012.

[3]聂茹,黄诚灿.基于Android系统的音乐播放器设计与实现[J].微型电脑应用,2013,10:23-26.

[4]李江,曹家庆,陈文生.手机音乐播放器的设计与实现[J].信息通信,2013,09:128-129.

[5]郝俊寿,丁艳会.基于Android系统的影音播放器研究与实现[J].硅谷,2013,22:20-21.

[6]叶晓静,黄俊伟.基于Android系统的多媒体播放器解决方案[J].现代电子技术,2011,24:73-76.

[7]单俊丽.基于Android的流媒体客户端的研究与设计[D].西安电子科技大学,2013.

[8]赵金龙.基于Android平台音频播放系统设计与实现[D].西安电子科技大学,2012.

作者简介

郑逸凡(1983-),男,现为福州外语外贸学院教师,福州大学数学与计算机科学学院研究生,主要从事Web编程和软件开发。

多媒体播放器篇(2)

1.引言

随着通信技术和计算机技术的迅猛发展,3G时代的到来,人们对手持设备的应用有了更高的要求,人们已不满足于简单的通话、收发短信等基本功能,而更多的是要求有多媒体应用,能利用手机进行上网冲浪、3D游戏、播放视频等。

2.J2ME技术介绍

J2ME平台存在的基础是设备使用操作系统的多样性。虽然JAVA的运行速度经常受到指责,但手机平台的发展已经使得这种缺陷可以忽略,而J2ME适用平台的多样性使得J2ME技术成为手机应用开发的首选。它的主要技术优势在于:有良好的跨平台能力,实现了write once,run anywhere,有着与J2EE后端的无缝结合能力。因为J2ME是基于Java语言的,所以它天生就具有以下优点:

・动态内容传输。新的应用、服务和内容可以通过不同类型的网络动态下载。

・安全。类文件校验、明确定义的应用程序编程接口和安全组件确保了第三方应用程序的行为是可靠的。不会对设备或者网络造成损害。

・交叉平台的兼容性。标准化语言组件和库意味着由于支持J2ME配置和简表所带来的约束使应用和内容可以在不同设备之间灵活地传输。

・离线获取。不用激活网络连接,应用就可以被使用。这种特点降低了传输费用,减轻了可能的网络故障带来的影响。

3.系统的设计与分析

3.1目前存在的问题

随着通信技术和计算机技术的迅猛发展,人们对手持设备的应用有了更高的要求,人们已不满足于简单的通话、收发短信等基本功能,而更多的是要求有多媒体应用,能利用手机进行上网冲浪、3D游戏、播放视频等。移动设备通过网络观看视频将是必备的功能。目前的城市的网络覆盖率比较好。

在这种情况下,多媒体播放器在设计与实现中存在一些问题:

3.1.1由于多媒体手机在硬件性能上与PC机有着显著的差异,在多媒体手机上播放的视频短片的比特率要远远低于PC机上的,所以在设计多媒体手机时要受到多媒体手机硬件与操作系统的影响。

3.1.2现在多媒体手机外接的存储卡容量不是很高,当你在旅行的过程中或者在移动的过程中,因为你的存储卡的容量有限,所以你只能看少量的影音文件。

3.1.3现在多媒体手机在播放视音频文件的过程中,如果看到自己喜欢的图片,无法保存下来,作为永久的珍藏。

3.1.4如何设计一款全新的多媒体播放器,为将来的多媒体移动服务打下坚实的基础。

3.2对目前系统的改进

本项目是一个关于手机播放器的系统,通过移动终端手机能够实现在任何时间、地点进行多媒体音频与视频的播放,本项目在空间上延伸了基于Internet的网络服务,在时间上更具有灵活性。本系统只能播放格式为MPEG的视频文件与格式为WAV的音频文件,这是由底层的开发包所决定的。

本项目具有以下几个功能模块:

3.2.1视频(主要是MPEG格式)的播放模块。播放形式主要采用两种形式:本地播放与网络播放。本地播放也就是所谓的视频文件在本地手机存储器里,直接进行播放,网络播放主要是视频文件放在网络服务器,手机进行调用播放。它在空间上延伸了Internet的网络服务,在时间上更具有灵活性。

3.2.2音频(主要是WAV格式)的播放模块。播放形式主要采用两种形式:本地播放与网络播放。运行方式与视频播放模块相似。

3.2.3抓图模块。在进行播放本地与网络视频时,当你认为一个视频的瞬间你很喜欢,你就可以进行抓图,把它截取下来。

3.2.4控制模块。在进行播放音频与视频的同时,有一些基本的控制功能,比如播放、停止、暂停、增加音量、减小音量等。

4.播放与控制的设计与实现

它主要是由VideoCanvas继承Canvas,并有以下几个方法:VideoCanvas(),initialize(),paint(),time2pix(),open()等。它主要实现的功能是:对播放的视频或音频文件进行一系列的操作,比如播放、停止、暂停、增加音量、减小音量等。

以下是主要的代码:

public class VideoCanvas extends Canvas implements Runnable,PlayerListener,{//在框架中添加videocanvas类的构造函数,初始构造函数,初始化屏幕}

private void initialize(){//添加返回按钮}

public void paint(Graphics g){//只有播放视频的时候可以使用全屏}

private int time2pix(long time){//计算时间的字符串格式}

public void open(String url){//分析打开资源的URL}

public void start(){//获得视频时间长度}

public void close(){//关闭程序}

public void pause(){//首先判断player对象是否已经创建了,如果存在player点}

public synchronized void pauseApp(){//player正在播放,所以停止它并且释放资源}

public void run(){//获得播放视频所需要的时间}

public void playerUpdate(Player plyr,String evt,Object evtData){//是否播放结束}

private void doSnapshot(){//进行抓图功能}

protected void pointerPressed(){//更改滑杆上面的小方块的位置,然后请求重画屏幕}

public void commandAction(Command c,Displayable s){//控制播放}

public synchronized void startApp(){//开启程序}

public void keyPressed(int keyCode){//利用手机里的按键进行一些操作}

switch(keyCode){

case Canvas.KEY_NUM4://减小播放速度

case Canvas.KEY_NUM6://增加播放速度

case Canvas.KEY_STAR://减小音量

case Canvas.KEY_NUM0://静音

case Canvas.KEY_NUM7://向后跳跃,即快退

case Canvas.KEY_NUM5://停止播放

case Canvas.KEY_NUM9://向前跳跃

case Canvas.KEY_NUM2://暂停,播放

case Canvas.KEY_NUM8://全屏,目前不支持

case Canvas.KEY_NUM1://没有发挥作用

case Canvas.KEY_NUM3://跳过}

5.结语

本文研究的重心在于探讨利用流媒体技术使手机播放器中本地与网络(无线)终端MIDP应用开发技术的解决方法及资源的网络通信、信息整合问题。本文中深入研究了J2ME体系结构及其平台下手机程序MIDP的开发技术,详细分析了本地终端与无线终端和资源的通信解决方法,并构造了一个手机多媒体播放器系统。本文设计与开发了播放与控制,通过该系统,完整说明了MIDP应用程序开发的流程控制、界面设置与流媒体和视频压缩技术。本系统还会不断地改进,实现更广、更新、更实用的功能,以适应时代的需求。

参考文献:

[1]吴一丁.J2ME技术在移动设备上的应用.java研究组织,2005.

[2]黄宝雄.流媒体技术.中国多媒体视讯,2005.

多媒体播放器篇(3)

中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)03-0240-02

随着计算机网络与手机的迅速发展,各种音乐资源成为人们生活中必不可少的一部分,音乐播放软件成了手机必不可少的要素[1]。目前手机播放器以酷狗音乐、QQ音乐、网易云音乐和虾米音乐等为代表,另外还有大量手机开发厂商自主研发的基于其自身系统的音乐播放软件[2-3]。但存在播放器一味追求外观花哨、功能庞大,对用户的手机造成比如CPU、内存等的占用率过高,同时对于大多数普通用户而言,许多功能形同虚设。Android的开放性优于其他封闭式系统[4]。因此,本设计致力于一款基于Android手机平台的音频播放器,进行性能优化与简化满足用户需求。

1 系统设计

本设计具有与用户交互简洁美观易于操作的界面,同时还具有播放器的基础功能与扩展功能[5-6]。音乐播放器主要由前台应用和后台数据库组成。前台主要实现与用户的交互,实现歌曲的播放控制、显示曲目列表;能对曲目列表进行插入,删除,修改。另外扩展功能包括歌曲查找与搜索页面,显示搜索结果歌曲及信息;在歌曲播放界面下能显示图片等。

1.1 系统总体功能结构设计

系统总体功能结构设计如图1所示。

1)音乐文件的播放功能模块

音乐文件播放实现对音乐文件的播放、暂停、歌曲的切换、播放模式的选择与音量的控制等功能。

2)菜单栏功能模块

主菜单栏为播放器的主要功能,其中包括播放器歌曲列表、音乐均衡器、播放器的相关设置、本地搜索、随机播放一首音乐、刷新乐库、关于iMusic音乐播放器的说明与音乐播放器的退出。在音乐播放器菜单栏功能模块表中体现了其运行流程及产生的相应效果。

3)歌曲列表功能模块

音乐播放器歌曲列表功能能够对歌曲列表进行新建、添加、删除和保存等操作。

4)音乐文件操作功能模块

音乐播放器歌曲文件功能能够歌曲文件进行播放、添加、查找、删除、编辑、排序与重命名等操作。

1.2 系统界面设计

系统界面显示的需求用例主要包括视觉外观显示、歌曲时间显示、播放状态显示与歌曲文件信息显示等。具体设计见表1至表5。

2 结束语

采用基于Linux系统的Android平台,调用其活动、广播接收器、服务和内容提供者等四大基本组件与音频架构的相关接口,对多媒体音乐播放器的功能结构和界面显示的需求用例进行了设计。系统具有音乐播放、音量控制、文件加载与搜索等功能,能够设置音乐播放器列表循环、随机播放、单曲循环等模式与背景图片、主题。系统操作方便、界面简单,具有较好的实用性。

参考文献:

[1] 许瑾. 基于Android平台音乐播放器的设计与实现[D]. 北京: 北京邮电大学, 2011.

[2] 葛艳, 高占江. 基于Android 系统的音乐播放器设计与实现[J]. 微型机与应用 2014, 33(1): 5-7, 10.

[3] 韩超, 梁泉. Android系统原理及开发要点详解[M]. 北京: 电子工业出版社, 2010: 132-135

多媒体播放器篇(4)

1 系统设计

本设计具有与用户交互简洁美观易于操作的界面,同时还具有播放器的基础功能与扩展功能[5-6]。音乐播放器主要由前台应用和后台数据库组成。前台主要实现与用户的交互,实现歌曲的播放控制、显示曲目列表;能对曲目列表进行插入,删除,修改。另外扩展功能包括歌曲查找与搜索页面,显示搜索结果歌曲及信息;在歌曲播放界面下能显示图片等。

1.1 系统总体功能结构设计

系统总体功能结构设计如图1所示。

1)音乐文件的播放功能模块

音乐文件播放实现对音乐文件的播放、暂停、歌曲的切换、播放模式的选择与音量的控制等功能。

2)菜单栏功能模块

主菜单栏为播放器的主要功能,其中包括播放器歌曲列表、音乐均衡器、播放器的相关设置、本地搜索、随机播放一首音乐、刷新乐库、关于iMusic音乐播放器的说明与音乐播放器的退出。在音乐播放器菜单栏功能模块表中体现了其运行流程及产生的相应效果。

3)歌曲列表功能模块

音乐播放器歌曲列表功能能够对歌曲列表进行新建、添加、删除和保存等操作。

4)音乐文件操作功能模块

音乐播放器歌曲文件功能能够歌曲文件进行播放、添加、查找、删除、编辑、排序与重命名等操作。

1.2 系统界面设计

多媒体播放器篇(5)

中图分类号:TP37文献标识码:A

文章编号:1004-373X(2010)05-206-03

Design of Vehicle GPS Multimedia Player Based on AU1200 and OS8104

LIU Quanbin

(Shenzhen Fanhai Sanjiang Electronics Co.Ltd.,Guangzhou,510665,China)

Abstract:With the rapid development of auto electronics industry,the vehicle navigation system and the MOST network transmission system are famous for auto electronics industry bined navigation system with the MOST network,so that the traditional GPS navigation system not only has the streaming media play,but also reduces the vehicle wiring,increases anti-electromagnetic interference and scalability.Vehicle navigation system and MOST network are studied to improve the traditional vehicle navigation system,and the design is given.Because of using the low-power AU1200 and the MOST network,so the design improves system performance,integration and scalability,while making the system has the function of strong,low power consumption and high reliability.

Keywords:MOST;I2S;multimedia;GPS

基于MOST(Media Oriented Systems Transport)车载光纤传输多媒体已成为汽车多媒体的主流,国外已将此技术普及到轿车上,并且对数字多媒体设备进行规范。采用MOST光网络传输不会受到电磁干扰的影响,同时也减少了总线布线。随着汽车光网络技术的发展,会有越来越多的汽车厂家支持MOST协议,因此,可以预测国内的汽车光纤传输多媒体视听产品亦将出现广泛的市场。

1 AU1200 简介

AMD公司于2005年1月推出了专门为多媒体设计的处理器AU1200[1]。它支持NORFLASH,NANDFLASH启动,支持DDR Ⅰ和DDR Ⅱ SDRAM,支持RGB LCD显示,支持I2S,USB 2.0,SD卡等功能,是┮豢罡咝阅艿凸耗的MIPS多媒体处理芯片。支持WINCE,Linux操作系统。

2 系统工作原理及芯片选型

该系统选用Hynix的HY5DU121622BT-D43[2] 64 MB DDR Ⅰ内存,三星K9F1208U0B[3] 64 MB NAND FLASH,富士康群创7寸LCD AT070TN83[4],顶天国际REB3310 GPS模块[5],板上留有UART调试输出接口,方便调试。

系统通过FLASH启动,将程序拷贝到内存中运行,用户可以通过触摸屏点击菜单选择需要运行的功能,如GPS,播放MP3、MP4,或者选择接收处理来自MOST网络的音频数据。在调试过程中,可以通过预留的DEBUG口外接LVTTL 转RS 232电平转换芯片将调试信息输出到PC机,还可以通过USB升级烧录程序。SD卡可以存放电子地图、音视频文件或其他电子文件等。软件采用WINCE操作系统,WINCE带有AU1200 BSP驱动包,裁减方便。系统工作原理框图如图1所示。

图1 系统工作原理框图

2.1 I2S 音频设计方案及其部分工作流程

I2S 芯片选用WM9713L芯片,该芯片的主要作用是将AU1200和OS8104传输过来的音频数据进行D/A转换,变成模拟的音频信号输出。WM9713L[6] 芯片可实现两路I2S 音频数据输入,支持AC97音频数据和PCM I2S音频数据输入接口,可以很方便地实现AU1200同WM9713L,OS8104同WM9713相连接。同时WM9713L PCM/I2S 功能模块可以工作在四种工作模式:DSP模式,左声道模式,右声道模式和I2S模式,D/A时信噪比为94 dB,支持WINCE嵌入式操作系统。WM9713L同时还可以驱动四线式触摸屏。

功放选用Supec 公司的 BTL类SA4871功放[7]。该功放工作在电压范围DC 25~55 V,可以直接用锂电池供电,输出3 W功率。

WM9713L附带BTL功放,由于WM9713L只有400 mW的输出功率,SA4871有3 W的输出功率,考虑到用户对音量的大小要求选择SA4871。

播放MP3、MP4等多媒体文件时,声音可以通过AU1200 I2S接口送到WM9713L进行D/A转换。如果需要播放通过MOST光纤传输的音频数据,这时可以通过设置WM9713L内部寄存器18H使音频数据直接通过WM9713L 进行D/A输出。

WM9713 与 AU1200 OS8104 I2S数据传输接线示意图如图2所示。

图2 I2S数据传输接线示意图

2.2 OS8104工作方式

采用OASIS公司生产的OS8104[8],其主要作用是将光网络上的数据进行分解,输出I2S音频数据到WM9713L进行解码。其控制接口有多种工作方式,I2C,SPI,并口模式等,在这里选择I2C工作模式来配置OS8104的内部寄存器。

OS8104 I2S支持多种数据源格式,如Philips,Sony,Matsushita等。由于WM9713L支持I2S的PCM数据格式,通过对比两者的时序波形图,选择Philips 或Matsushita,WM9713L工作在DSP模式。为了接收整个MOST系统的I2S数据,还需要配置OS8104寄存器来设定I2S的采样频率。这里采用44.1 kHz采样频率。MOST的数据传送使用512 b的帧,以及16个帧的块。每个帧内除了前导码和其他内部管理位以外,还包含有同步、异步和控制数据[9]。MOST网络接口设备的源数据口配置为I2S串行方式,最大的同步数据传输率为:

4×64×441×103=11289 6 Mb/s

3 软件界面开发

采用WINCE 5.0 [10]嵌入式操作系统,其特点是性能稳定。EVC(Embedded Visual C++,是Windows CE下软件开发工具之一)开发图形界面,其特点是界面美观。EVC开发环境和Visual C++相似,基于Visual C++的开发人员比较容易熟悉并掌握EVC进行嵌入式应用界面开发。有较多的电子地图支持WINCE操作系统,如凯立德、道道通等。

WINCE移植需裁剪,先安装WINCE 5.0 AU1200 BSP驱动包再裁减,同时更改部分底层驱动程序。可以通过电脑RS 232串口输入按键来控制系统启动过程,其程序流程图如图3所示。

图3 程序流程图

4 测试结果及性能分析

AU1200功耗在400 MHz主频时低于400 mW,本系统AU1200内核在播放MP4或导航时工作在396 MHz主频,DDR工作在198 MHz,整机功耗小于4 W(菜单操作,不含喇叭)。在播放MP3时通过降低系统和DDR频率,关闭GPS模块,使MOST处于零功耗状态模式等方式来降低功耗,经测试可使功耗降低1.5 W播放1 kHz采样率为44.1 kHz的正弦波,信噪比为85 dB,有比较好的音质效果。

5 结 语

该多媒体播放器,以低功耗、高性能、多用途为主要目标,选择AU1200为主芯片,尽量优化外部电路,降低功耗,增加使用寿命,提高用户体验。

该设计的新颖之处:将MOST网络与多媒体GPS导航相结合,实现了MOST音频和节点流媒体音频的切换;采用WINCE 操作系统,界面美观。

参考文献

[1]AMD Technologies Inc.Products.AMD Alchemy Au1200 Processor Data Book - PRELIMINARY[EB/OL]./.

[2]Hynix Semiconductor Inc.Products.HY5DU124(8,16)22B(L)T(Rev1.1) Data Sheet[EB/OL]..

[3]SUMSANG Semiconductor Inc.Products.K9F1208U0B DataSheet[EB/OL]..

[4]富士康群创公司产品.AT070TN83 Data Sheet[Z],2006.

[5]RoyalTek Company LTD.REB-3310 Operational Manual Version 1.0 2005/4/7,/.

[6]Wolfson Microelectonics Co. Ltd.Products.WM9713 Data Sheet[EB/OL]..

[7]Supec Electronics Corp.SA4871 Datasheet[EB/OL].Rev.A.1,.cn.

[8]Oasis Silicon Systems AG Products.OS8104 MOST Network Transceiver DataSheet.Austin,USA:Oasis Silicon Systems AG,2003:20-21.

[9]Most Cooperation.Most Specification Rev2.2 .Karlsruhe,Germany :Most Cooperation,2002.

[10]何宗键.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.

多媒体播放器篇(6)

分辨率:最高720P

输出格式:NTSC/PAL

存储设备:SD\SM\MMC\XD卡、USB接移动硬盘

文件系统:FAT32、NTFS

众所周知,互联网上RM、RMVB压缩视频格式电影大为流行,任何一个普通网民都能轻易地找到并且享用这个免费大餐。过去,大家习惯于通过PC下载电影并在电脑上观看,但并不是所有人的PC都配置有“超级”音响、超大显示器,如果下载的电影拿到液晶电视上播放,那该多好呢?如今,天敏推出的天敏炫影DMP100多媒体播放器为我

们提供了一个非常完美的解决方案。

外观精巧,接口设计合理

炫影DMP100体积小巧,整体为灰色。外壳采用了喷漆表面处理技术,不仅做工精良,而且美观大方,放置于客厅相信是非常适合的。

机身左侧,我们可以看见炫影DMP100的YPbPr以及AV输出接口。而机身背面从左向右分别是电源、音频线以及两个USB(部分移动硬盘需要两个USB接口来提供电能),可以连接闪盘或移动硬盘等设备,最右侧是4合1读卡器接口,支持SD、SM、MMC、XD等多种类型的存储卡。

视频直接播放,无需转换

炫影DMP100内部集成了多媒体解码芯片,通过YPbPr(色差)输出,可以在LCD、电视机等提供该接口的显示器上直接播放RM、RMVB、MPEG-1/2、DAT、AVI、DIV等视频格式文件,各种格式文件都是无需转换的,非常方便和人性化。另外,和一般的带视频输出的MP4产品相比,炫影DMP100最大优势在于分辨率可高达720P,能够满足大屏幕液晶电视的片源标准。

操控方便,操控界面友好

多媒体播放器篇(7)

1 前言

随着网络通信和计算机行业的飞快发展、数字处理技术的不断提升以及人们对信息需求的日益提高,使得具备明显优势的流媒体技术所带动的宽带互联网多媒体产业快速崛起并在网上直播、视频点播、远程医疗、电子商务等众多网络信息服务领域得到了广泛的应用。由于其潜在的巨大社会经济效益和良好的市场前景,使得行业中不少人才进行流媒体的研究和开发。

跟以前的多媒体技术不同,流媒体技术将网络技术、视频技术和音频技术进行有机的结合,不必将文件完全下载以后才可以播放,而是通过流式传输把声音、影像等通过服务器连续、不断的传送到用户的计算机,让用户在下载文件的同时就可以进行观看和收听。流媒体技术首先在用户端的计算机中建立缓冲区,预先下载部分数据作为缓冲,如果观看时的播放速度大于网络连线的速度,播放程序便会从缓冲区内获取部分数据,这样不仅保证了播放的品质,同时能够有效的防止出现播放的中断。

一方面由于流媒体的传输对传输协议、网络的延迟和阻塞、丢包率有一定的要求,而目前的网络对流媒体的传输没有提供QoS安全机制加以保证;另一方面利用流媒体进行全功能的VCR控制也面临着巨大的挑战。在综合开发的成本、难度、周期和产品的可延续性等因素,本文给出了一种基于嵌入式的流媒体播放系统的详细方案,并详细介绍了该系统的组成、网络协议、VCR 控制方案、QoS 控制原理。

2 流媒体工作原理

互联网通过IP的分组交换可以实现不间断的异步传输,主机将所有到达的分组按照分组的序列完成组包过程,不过由于占用存储空间比较大的在线音频文件和视频文件进行传输时需要分解为多个IP包,而且网络的状态、拓扑结构又处在不断的变化中,不同的IP包可通过多种的途径由到达客户端,因此不同的IP包产生的延迟时间也有所差异,在某些情况下,后发的数据包也有可能先到达客户端。流媒体中采用缓存方案正是为了较大程度的消除网络变化和时间延迟不同带来的影响,这样就有足够的时间将数据包进行正确合理的顺序安排,也就保证了多媒体数据有序连续的输出,从而有效的降低了网络连接速度较慢时播放不顺畅现象发生的几率。在通常状态下,各个多媒体流对高速缓存的需求容量不会太大,另外采用环形链表数据结构的高数缓存一般不发生溢出,流媒体通过废弃无用的片段、用后续的播放片段进行覆盖而不断更新缓存中的数据,从而能够高效循环的利用高速缓存。在较为主流的流媒体播放系统中,流媒体的工作原理如图1所示。

3 系统组成

我们所设计的流媒体播放系统包括视频服务器、服务端编码器以及播放器三个部分,

3.1 服务端编码器

服务端编码器是在视频服务器上运行的一种编码软件,可以把视频资源从原始格式进行编码,转换成适合网络播放的格式。服务端编码器在处理同一多媒体的数据时,该编码器能够按照多种不同的压缩比例完成数据的编码,这样就可以产生适应不同网络带宽所需要的、具有多种不同传输速度且集成于一路多媒体节目流中的数据流。如果把视频服务器和播放器相连接,播放器自身可以诊断出两者连接的时间长短并向视频服务器发出信号,使其按照当前的连接速度提供与之匹配的数据流。在直播的情况下还可以及时的传送流媒体信号到流媒体服务器。

3.2 视频服务器

视频服务器相当于一个网站,允许客户机访问服务器并播放服务器上的视频资源,简单来说就是用于接收用户的点播请求。视频服务器中存储了丰富的多媒体数据,同时负责对编码器传上来的数据的进行管理、传送并提供对VCR的支持。

3.3 播放器

终端播放器又叫解码器,大多数播放器内部通常设置一整套的转换频率和缓冲算法,这里的中心处理芯片选用Winbond公司生产的W90221F,音视频解码器选用ALI 公司生产的M3321,加上的辅助芯片就组成了一个STB系统。在使用嵌入式实时多任务操作系统所开发的播放器软件可以解压并回放所接收的A/V数据流,与此同时参与网络的QoS 控制和用户 VCR 操作。

4 网络传输协议

支持流媒体的网络传输协议有网络层协议IP、传输层协议TCP/UDP、实时传输和控制协议以及实时流传输协议RTSP。因为流媒体对传输产生的延时有较为严格的要求,而TCP因存在差错重传机制所以不能够满足,因此UDP在流媒体应用程序中作为传输层协议被广泛的使用。不过UDP是一种参考模型中无连接的简单不可靠信息的传输层协议,所以流媒体采用RTP、RTCP传输协议从而获得控制数据传输的一些相关的信息来支持流媒体的传输过程。实时流传输协议RTSP可以从媒体服务器上获取流媒体数据,用户端能够请求服务器建立会话并传输被请求的数据,并能够把媒体加到原有表达中,当新加上的媒体可以使用时,服务器端和用户端之间要互相通报,从而以使播放器和视频服务器之间建立连接来传输数据信息,并保证音频数据流的连续稳定的传递以及提供对用户操作VCR的支持。

基于嵌入式的流媒体播放系统采用和实时传输协议RTP类似的传输协议RTP-like来实现流媒体数据的传输,关于RTP-like协议将作如图2所示的数据包格式、视频播放器和服务器之间不同工作过程的角度来说明。

4.1 A数据包格式

数据包格式包括传输文件请求、UDP连接的数据文件请求应答、TCP连接的传输文件请求应答、传输文件数据请求、传输文件数据请求应答、传输文件结束请求、传输文件结束请求应答和网络连接状态8个部分 。

SeqNo:因为时延不同等原因引起的不同数据包到达播放器的顺序并没有按照序列号进行而产生失序,因此RTP-like协议采用SeqNo序列号将数据包按照正确的顺序存放在回放缓冲区域中。

TmStp:RTP-like协议采用TmStp时间戳将不同的媒体流和计算网络时延实现同步从而预估出网络连接的带宽。

数据包类型的识别是通过TFR、TFRAUDP、TERATCP、TRDR、TFDRA、TFOR和TFORA的标识进行区分的,视频播放设备和服务设备可以依据数据包的不同类型执行与之相应的操作。

Status Word作为网络连接状态的显示,可以使播放器完成自身管理以及视频服务器的连接。

4.2 视频播放器和服务器之间的工作模式

下面依据图2所示来进行视频播放器和服务器的工作过程的说明:

(1)通过VCR控制单元,播放器可以发送传输文件数据包的要求至视频服务器并且请求播放一段视频文件,在传输文件请求数据包中,BkSize 是数据块的大小,PgSize 是数据包的大小,FileName 是请求播放的视频文件在视频服务器中的全路径名。

(2)在服务器接收到播放器所传送的文件传输请求后,视频播放器将会产生两个服务进程,使用其中的一个进程来向视频播放器传输所请求的视频文件的VCR控制文件,也就是TCP连接服务进程;另一进程为UDP服务进程,该进程用来向播放器传输音频和视频数据。视频服务器经过“传输控制”来向视频播放器发出“VDP和TCP 连接的传输文件请求应答”这两个数据包通知播放器它们各自的连接端口号。

(3)播放器下载过控制VCR文件之后发送“传输文件结束的请求”的数据包来使视频服务器及时关闭TCP 服务。与此同时视频服务器生成的“传输文件结束请求应答”数据包传送到播放器。

(4)播放器经过 UDP 来穿送“传输文件数据请求”的数据包来使视频服务器接收其它视频、音频数据。

(5)视频服务器依据新接收的“传输文件数据请求”的数据包来为播放器传递相应的视频、音频数据。

(6)重复执行(4)~(5)的过程直到播放器被或者文件传送被停止。

5 QoS控制

庞大应用的增长,已经使网络的追加带宽投资显得微不足道,QoS已经被加入到网络设备、特别是路由器设备提供商的产品说明书中。对于当前的情况,设备供给厂商在QoS概念的指导下,聚集的相关技术越来越多,如队列、时序、强制速率等。

为了防止网络连接拥堵情况的发生以及在发生数据包丢失时在最大程度上尽量保证图像的播放品质,采用比较全面的QoS控制方案。该控制包括拥塞、错误控制两种方法,它们都不需网络提高任何的QoS支持且都在终端系统中使用。

网络的拥塞会导致大量的数据包发生丢失且出现过度的时延,这都在一定程度上影响了图像的质量,因此有必要采用拥塞控制机制来有效的减少数据包的丢失和时延。通常情况下,拥塞控制体系利用流量控制方法来防止网络发生拥塞。流量控制可以在发送或者接收缓冲区发生溢出时通过将阻塞的信号发送回源地址而避免端口阻塞时发生丢帧。目前的流量控制的算法有服务端控制、客户端控制和混合控制三大类。

在通过网络而传输数据的过程中,很有可能会发生数据包的丢失,因此视频的质量会相应降低。而错误控制正是在数据包丢失发生时,能够最大限度的保证视频质量的一种控制机制。错误控制体系有时延限制重传、FEC、错误掩饰等途径虽然在流媒体播放系统在宽带网应用中数据包的丢失必然出现,仍然有必要设计控制机制来提高视频质量。因此设计设计了客户端流量控制、差错重传两种控制机制以实现QoS控制。

5.1 客户端流量控制

由上述的视频播放器和服务器的工作过程中的相关流程可以知道,只有在接收到来自播放器的“传输文件数据请求”数据包时,视频服务器才会发送PgSize 个字节的音视频数据给播放器。数据的发送完成以后,除非视频服务器收到下一个“传输文件数据请求”数据包,否则不会发送音频数据。据此,就可以采用播放器控制请求视频服务器来响应的方法来实现对流量的控制过程,该控制机制在宽带网的应用中简便有效。

5.2 差错重传

与允许的最大时延相比,如果在很短时间内重传视频包可以往返,差错重传技术就可以采用。回放缓冲区一旦为空时,播放器就不能够处理接收的数据,只有在到达的数据包大于一定的值时,播放器才能正常处理数据。因此,只要设置音视频解码器的相关参数,如果缓冲区内部为空,SCR的计数就会停止,于是就有一定的时间来重传数据。而且回放缓冲区保证了差错重传时,仍然能够连续播放图像。

6 结束语

本文对当前家用的流媒体播放系统的组成、、网络协议、QoS 控制机制、VCR 控制方案等进行了详细的介绍,目前所采用的系统使用可以解码流媒体的机顶盒,使电视用户能够接触流媒体,同时也使用户能够方便、快捷的收看流媒体节目,真正的达到了高层次的视听享受。

参考文献

[1]尹逊钰,王伟.流媒体技术的发展与应用[J].广播电视信息,2001.

[2]金海,邵艳明,韩宗芬.基于实时流协议的流媒体客户端[J].计算机工程,2004.

作者简介

多媒体播放器篇(8)

笔者利用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校园流媒体系统的实现

多媒体播放器篇(9)

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

多媒体播放器篇(10)

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2016)18-0191-03

Design and Implementation of Playing Streaming Media Based On JSP

YANG Zi-xiang,LIN Peng

(Tianjin Open University, Tianjin 300191, China)

Abstract: With the development of Internet, playing web video is more and more on web. However, if playing the video through the HTML5 or the Html tag, then dragging and dropping the video only after the completion of the video completely downloaded before using. Through research and analysis principles of streaming media server of Windows Media Services, and research Http package of Chrome browser, the paper successfully devised playing streaming media with JSP program. By publishing program on Tomcat, users can drag and drop the video during playback, successfully resolving the problem of the HTML5 or the Html tag with not drag.

Key words:Streaming Media; JSP; Html5; Chrome browser; Video Control

1 概述

随着Internet的发展,网页视频播放的使用越来越多。因此,视频播放的用户体验也越来越实用;视频的播放、暂停、定点播放等操作的需求也就越来越大,而且也更符合用户实际浏览视频的要求。但是,目前如果直接通过HTML5的或者Html的标签播放视频的话,视频的拖拽功能只有在视频完全下载完成后才能使用。这就会加大服务器的压力,因此越来越多的用户开始使用流媒体。

所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体的出现极大地方便了人们的工作和生活。目前,使用流媒体的话都会通过流媒体服务器(比如Windows Media Services等)来搭建流媒体平台[1-4]。

JSP作为一种网页开发语言,在网站的开发中使用者的比例很大;因此,使用JSP开发的网站对视频播放的需求也会越来越多。但是,如果直接通过JSP后台平台结合HTML5的标签进行视频播放的话,就会出现网页中视频无法拖拽,从而不能实现定点播放等功能。所以,通过JSP语言实现视频的流媒体播放对于JSP网站来说,不仅可以省去借助流媒体服务器的烦恼,而且可以实现在线视频播放的随意控制,从而满足用户的实际需求。

2 基于流媒体服务器的网页播放探究

流媒体服务器的使用,解决了视频播放过程中,直接访问网络视频资源导致的视频拖拽问题。因此,流媒体服务器的网页视频资源的访问方式对于本文的设计来说,具有很大的价值。Windows Media Services作为一种流媒体服务器,是Windows Server服务器系统中使用频率很高而且性能很好的流媒体服务器。本文通过Chrome浏览器访问Windows Media Services中视频资源的流程研究发现,在视频拖拽的控制中,Chrome浏览器都会发送Http请求包;Windows Media Services接收到浏览器的请求后,再根据Http中包含的内容返回相应的视频片段。具体的流程如图1所示。

如图1中流媒体视频在Chrome浏览器和Windows Media Services流媒体服务器之间的交互可以看出,无论视频的播放还是中间视频播放控制,都是Chrome发送Http包进行控制;而Windows Media Services流媒体服务器则是负责对视频片段的返回。因此,本文使用Chrome浏览器访问对已经在Windows Media Services流媒体服务器中的视频,通过Chrome浏览器中的Network网络工具,对Http包进行抓取。图2中显示的是视频点击开始播放后,即视频从头开始播放,抓取的Http请求包的头文件内容。图3和图4中显示的则是视频播放过程中点击视频任意位置后,抓取的Http请求包的头文件内容。

3 基于JSP的在线流媒体播放的实现

在第二节中,本文通过Chrome的Http包的追踪功能,截取了视频在播放控制过程中不同播放位置请求的包。通过图2、图3和图4的追踪结果可以看到他们的Request Headers以及Response Headers中的部分头文件字段是不同的,具体的信息比较如表1所示。

由表1中可以看到,三个图中的Http包中只有Range、Content-Range字段是不同的,其他的字段的内容根本就没有发生变化。其中,Range是Request Headers中的字段,Content-Range是Response Headers中的字段。在表1中还可以发现,Content-Range字段的内容和Range字段的内容有一定的关系;Content-Range内容中“-”前的数值和Range是一致的。同时,在表1中也可以发现,Content-Range字段和Content-Length字段有一定的关系;Content-Range内容中“/”后的数值和Content-Length是一致的。我们知道,Http包中的Content-Length的作用主要是记录文件的长度,因此可以在服务器端通过程序求出文件的大小。

由于Http包中的Request Headers是由浏览器进行发出并封装的,因此本文的程序无法控制包中的Request Headers内容。但是,Http包中的Response Headers是由服务器封装后返回给浏览器的;因此,本文的程序设计将会根据Http包中的Request Headers字段内容,对Http包中的Response Headers字段进行封装返回给服务器。根据以上的分析,本文通过JSP进行程序设计如下:

@RequestMapping(value = { "/videos/{path}" })

public String displayVideo(HttpServletRequest request,

HttpServletResponse response, @PathVariable String path) {

try {String filePath = videoDir + path + ".mp4";

File file = new File(filePath);

if (!file.exists()) {

response.sendError(404);

LOG.error("未找到文件" + file.getCanonicalPath());}

Long fileLength = file.length();

LOG.debug("文件找到了,大小为" + fileLength);

String range = request.getHeader("range");

if (range != null && !range.equals("")) {

LOG.debug("请求的名字是range,内容是" + range); }

Long startPos = 0l;

if (range != null && !range.equals("")) {

Pattern pattern = Pattern

.compile("^bytes\\=(\\d+)(?:\\-(\\d+)?)?$");

Matcher matcher = pattern.matcher(range);

LOG.debug(matcher.matches());

startPos = Long.parseLong(matcher.group(1), 10);

LOG.debug("成功截获range,开始位置是" + startPos);

response.setStatus(206);

} else {

response.setStatus(200);

LOG.debug("从头开始传送");}

InputStream is = new FileInputStream(file);

OutputStream os = response.getOutputStream();

byte[] buffer = new byte[1024];

response.addHeader("Content-Range", "bytes " + startPos + "-"

+ (fileLength - 1) + "/" + fileLength);

response.addHeader("Content-Length", fileLength.toString());

response.setCharacterEncoding("UTF-8");

response.setContentType("video/mp4");

response.setHeader("Accept-Ranges", "bytes");

is.skip(startPos);

int length = is.read(buffer);

while (length > 0) {

os.write(buffer, 0, length);

length = is.read(buffer); }

os.flush();

os.close();

is.close();

} catch (Exception err) {

if (err.getClass()

.getName()

.equals("org.apache.catalina.connector.ClientAbortException")) {

LOG.debug("客户挂断了");

} else {

err.printStackTrace();}}

return null; }

在本文的程序设计中,浏览器的视频请求URL路径的后端是通过JSP中的Spring框架进行控制,在路径中的/videos/{paths}即是视频路径存储在磁盘的相对位置;在程序中,视频的读取并没有经过中间的流媒体服务器,而是直接读取在磁盘中的视频文件。经过程序在Tomcat7上测试之后,视频在播放的过程中,用户可以根据需求随意拖拽,解决了Html5中标签不能播放的问题。具体的如图5所示,图中显示的是程序后视频随意播放截取的Http包。经比较,与文中的图3、图4中间播放的Http包的内容是相似的,实现了流媒体播放的效果。

4 结论

本文通过分析Windows Media Services流媒体服务器中视频拖拽播放控制过程中,Chrome浏览器发送的Http包的信息,得出了浏览器播放视频时播放控制和Http包中Request Headers、Response Headers头文件的关系。并且,本文通过JSP程序语言的设计,成功实现了流媒体服务器控制视频播放的原理。本文设计的程序到Tomcat后,经过该程序访问的视频都可以在浏览器端随意拖拽播放视频,解决了Html5的标签不能直接播放服务器磁盘中视频的弊端,也省去了流媒体服务器视频的任务。

参考文献:

[1] 蒋太杰. Windows Media Services及其在远程教育中的应用[J]. 指挥技术学院学报, 2001, 12(6): 81-85.

多媒体播放器篇(11)

现在,很多朋友都喜欢使用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地址了。