流媒体视频传输系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流媒体视频传输系统的设计与实现
摘要:随着第三代移动通信技术的飞速发展,流媒体业务正在无线网络中得以广泛的应用。该文设计和实现了一套无线网络流媒体播放系统,并对服务器模块、客户端模块、以及传输模块进行了设计。实验证明系统有较好的网络适应性,并能获取良好的视觉质量。关键词:流媒体;服务迁移;视频传输
中图分类号:tp37 文献标识码:a 文章编号:1009-3044(2013)09-2233-03
流媒体(streaming media),采用流式传输的方式在因特网与内联网播放的媒体格式。流媒体又叫流式媒体,它是用一个视频传送服务器把节目当成数据包发出,传送到网络上。然后通过解压设备对这些数据进行解压后,节目就会像发送之前那样的显示出来了。流媒体技术也不是一种单一的技术,它是将网络技术及视/音频技术的有机结合。在网络上实现流媒体技术,需要解决流媒体的制作、发布、传输及播放等多方面的问题。在网上进行流媒体传输的文件必须制作成适合流媒体传输的流媒体格式文件。因为我们通常格式存储的多媒体文件容量很大,假使要在现有的窄带网络上传输,就会花费很长的时间,如果遇到网络繁忙,还可能会造成传输中断。另外,通常格式的流媒体也不能按流媒体传输协议进行传输。因此,应首先对需要进行流媒体格式传输的文件进行预处理,将文件压缩生成流媒体格式文件。但是在处理过程中应注意两点:一是选用适当的压缩算法进行压缩,这样可以生成较小的文件容量。二是需要
向文件中添加流式信息。
为了实现上述的解决方法,该文设计和实现了一个流媒体系统,利用rtp(实时传输协议)作为流媒体传输协议,并且以sip(应用层的信令控制协议)来作为服务器和客户端之间信息传输的传输协议。而且为了让使用者在服务器和服务器之间的切换过程中不会察觉到视频有停顿或是画面有噪声的情形发生,则必须要能够达到无缝切换(seamless handoff)的程度。
本文研究结合了sip 和rtp协议,设计出了基于服务迁移的流媒体系统。结果降低了包的延迟,增加了连接质量,减少了整体网络的负担利用rtp 作为流媒体传输协议,并且以sip 来作为服务器和客户端之间信息传输的传输协议。而且为了让使用者在服务器和服务器之间的切换过程中不会察觉到视频有停顿或是画面有噪声的情形发生,则必须要能够达到无缝切换(seamless handoff)的程度。
1 流媒体传输原理
我们都知道,在网络上实现流媒体技术是一个复杂的过程,因而当在网络上实现流媒体技术时,我们必须对其进行综合的考虑和分析,这就需要囊括制作、传输、发布、播放等多方面的问题。当数据在传输时,我们应尽量选择合适的传输协议,虽然tcp协议是一种可靠的数据传输协议,但是tcp协议需要的带宽开销加大,在那些实时性要求比较高的时候,tcp协议有可能花费相对较高,这样就极其不合算,因此tcp协议并不适合实时性要求高的场合,这
样一来,在实际的传输中,我们就采用效率更高的rtp/udp协议。对于流式传输的理解,目前存在有很多种说法,最流行的一种说法就是,流式传输主要指通过网络传送多媒体信息(音视频)的总称。实现流式传输的两种方法:1. 实时流式传输(realtime streaming);2. 顺序流式传输(progressive streaming)。通常来说,如果视频为实时广播,或者采用流式媒体服务器,或者采用rtsp实时协议,则为实时流式传输;如采用http服务器,则为顺序流式传输。采用何种方式,应据实用场合而定。当然,流式文件也支持缓冲到硬盘,支持流文件下载的下载器也有很多种,比如迅雷就是一个很好是事例;另外,更有甚者,可以将文件路径反解析出来,比如http:///. 用户只需要输入流媒体的地址,就能反解析到实际的媒体文件地址,然后点击右键的另存为,就圆满的完成了整个任务。目前有很多公司都会封掉流媒体服务,而采用此方法,直接将流媒体浏览变为http文件传输,将直接绕开公司防火墙。
2 流媒体传输系统的设计
为了验证该文所提出的方法是否可行,我们设计和实作了一个流媒体系统来作简单的实验,整个系统包含了客户端以及服务器二个部分。客户端和服务器之间信令传输的传输协议为sip,流媒体的传输协议为rtp。而程序主要的功能如下︰
1)用户经由客户端的软件连上服务端,在线观看想看的视频。2)客户端软件会监视网络的状况(如包延迟时间、网络壅塞状
况等)。当使用者四处漫游时,可能会使的和服务器之间的距离加大,导致连接品质变差,这时候客户端会自动的去和目前连接的服务器要求作服务迁移(service migration)的动作。
3)服务器收到客户端的要求后,会将相关的资料(如多媒体名称、播放进度、rtp 状态信息等)传送给客户端,客户端再将收到的资料传送给较近的服务器,改由较近的服务器来服务。
负责和服务端之间的信令往来,以及管理draw_frame_thread 和rtp_recv_thread。分成二个部分:第一部份是基本的建立连接部分(不含服务迁移)。第二部分是服务迁移的过程。图1为流程图。
客户端连接到服务器,服务器目前不忙碌,产生子程序服务该客户端,并传送重新导向的信息给客户端。客户端收到后重新连接到该子程序,该子程序有找到客户端所要求的视频片段,并传送该视频的相关信息(如视频的高度、宽度、色彩深度、长度、帧数数等)给客户端,到此就算连接建立成功。客户端收到后,启动
rtp_recv_thread 和draw_frame_thread,准备开始播放。开始播放后,使用者便可作基本的操作,如暂停、继续、结束、缩小或放大、服务迁移等。而连接失败的话,使用者可以重新输入,改连接到其他服务器或其他视频。
3 流媒体传输系统的实现
图2为程序实际执行的快照。共有三台计算机参与实验,二台负责服务器部分,一台负责客户端部分。我们在负责客户端的计算机
上利用操作系统内附的远程连接程序,连接到那二台服务器来作控制和显示。在图2中,左上的远程连接窗口为服务器a(ip为140.127.112.12),而窗口内执行的程序为main。左下的远程连接窗口为服务器b(ip为140.127.112.96),窗口内执行的程序为main。右边中间为客户端程序(ip为140.127.112.118),上面为信息窗口,下面为播放器窗口。而程序的整个执行流程为:
1)客户端会先连接到服务器a。
2)过一段时间后迁移到服务器b,这时服务器a 和服务器b 会同时传送资料给客户端。
3)再过一段时间后客户端切断与服务器a 的连接,这时就剩下服务器b 与客户端连接。
4)最后视频传送完毕,服务器b 切断与客户端的连接。
4 总结
该文设计和实现了一套无线网络流媒体播放系统,并对服务器模块、客户端模块、以及传输模块进行了设计。实验证明系统有较好的网络适应性,并能获取良好的视觉质量。
参考文献:
[1] 季尉,丘洪江,肖振华,等. cdn和p2p融合的流媒体内容分发平台[j].音响技术,2010(2).
[2] 马军,郑烇,殷保群. 基于cdn和p2p的分布式网络存储系统[j].计算机应用与软件,2010(2).
[3] 余红梅,樊自普.cdn架构下流媒体代理缓存策略的研究[j].