欢迎来到天天文库
浏览记录
ID:6293311
大小:77.50 KB
页数:7页
时间:2018-01-09
《基于arm的嵌入式流媒体客户端软件的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于ARM的嵌入式流媒体客户端软件的设计陶佳李英祥(成都信息工程学院通信工程学院,四川成都610225)摘要:流媒体技术的日渐成熟和网络技术的飞速发展给嵌入式设备应用带来了巨大的机遇。,而嵌入式Linux操作系统具有很强的网络支持能力和媒体处理能力,很合适作为多媒体应用的理想嵌入式平台系统。具有,音视频流媒体点播功能的嵌入式客户端软件是流媒体服务的重要组成部分,也即是基于上述技术而迅速发展的流媒体技术的热门领域之一。本文即是以Linux此操作系统为平台,借助VLC强大的流媒体播控媒体技术和QT工具高效开发G
2、UI开发的支持能力,开发设计并实现了一个基于ARM的嵌入式流媒体客户端软件。的开发设计测试表明,本客户端软件能够正常运行,达到了设计目标。关键词:Linux嵌入式;流媒体;QT点播;VLC;视频点播一引言流媒体技术的出现改变了传统互联网只能主要表现文字和图片的缺陷,将成为未来互联网应用的主流。与以往必须等待全部文件下载完毕之后才能播放的方式不同,流媒体可以在文件下载的同时进行播放,从而有效减少用户等待时间,减小文件缓冲区大小并提升用户感知度。流媒体是由各种不同的软件构成,这些软件在各个不同的层面上互相通信。
3、,基本的流媒体系统包含服务器、编码器和客户端三个组件,服务器是用来向客户端观众发送流媒体内容的软件,编码器则是用来将原始音频视频文件转换为流格式的软件,客户端是一种能够与流媒体服务器通信的软件,这种软件能够播放或丢弃收到的流媒体。客户端软件,即常见的流媒体播放器软件,可以像一般应用程序那样独立运行,并通常都提供流的交互的式操作功能,比如播放、暂停、快放等。某些客户端还提供一些额外的功能,比如录制、调整音频或视频,甚至提供文件系统记录自己喜欢的流媒体文件。在众多的客户端播放软件播放器中,使用最广泛的有:Rea
4、lNetwork公司的RealPlayer、微软的windowsMediaPlayer和苹果公司的QuickTime客户端,它们虽然功能强大,但在需要界面和功能自主设计时表现得不够方便,无法满足在不同环境下对流媒体客户端界面和功能上的个性化定制,而本方案的设计思路,可以根据不同的应用需求设计出不同的流媒体客户端样式。本文采用达尔文流媒体服务器作为服务器端软件,以VLC开源库作为流媒体协议开发的基础和原型,VLC库集成了RTP/RTCP协议,并且支持多种媒体格式文件的流传输,基于跨平台的C++图形用户界面库Q
5、T4设计了客户端播放软件的GUI操作界面。这些组件之间通过特定的协议互相通信,按照特定格式互相交换文件数据,实现了客户端向服务器发送点播请求并实时响应服务器数据流的功能。基于本文所采用的流媒体客户端的设计方法,可以设计出具有不同界面风格和功能的嵌入式流媒体客户端,极大的满足了在不同环境下人们对客户端界面的个性化需求。基于上述特点,支持流媒体技术的嵌入式终端设备将拥有日益广泛的市场。1流媒体客户端软件层次结构流媒体网络协议流视频协议是为了在客户端机和视频服务器之间进行通信而设计的标准化协议。根据它们的功能,网
6、络上传输的流视频相关的协议分为三类。网络层协议:网络层协议提供了基本的网络服务支持。IP就是网络上流视频使用的网络协议。传输协议:传输协议为流服务提供端对端的网络传输功能。TCP、UDP、RTP和RTCP就是网络上流视频流使用的传输协议。话路控制协议:话路控制协议定义消息和程序。RTSP就是一种话路控制协议。达尔文服务器音频数据视频数据RTSP响应RTSP请求解码后的一帧数据远程控制命令QT层显示播放层VLC开源库RTSP会话控制层RTP数据传输层解码层解码器解码前的一帧数据媒体同步流媒体服务器客户端与服务
7、器之间的通信主要是由位于在应用层的RTSP协议和位于传输层的RTP协议来实现的,RTSP是一个多媒体流传输控制协议,通过此协议,可以为服务器和客户端建立会话控制连接,为多媒体流提供远程控制功能,比如播放、暂停、跳跃、停止等,具有可扩展性、解析简单、安全、传输独立等特点。由于流媒体数据的实时性要求,应该选择传输效率较高数据可靠性较低的UDP协议。实时传输协议RTP是针对Internet上多媒体数据流的一个传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。图1表示了流媒
8、体客户端和服务器之间信息交互和客户端内部的层次结构。图1流媒体客气端层次结构图2流媒体客户端底层设计与实现VLC(VideoLANClient)是开源项目VideoLAN下的跨平台的媒体播放器和流媒体服务NOYesVLC_Create安装信号句柄VLC_Init返回值小于0VLC_AddIntfVLC_CleanUp退出main函数结束VLC程序执行1,2步执行4—10步VLC_IDestroy退出main函数结
此文档下载收益归作者所有