




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多路RTSP播放器直播与点播技术实现多路RTSP高清视频播放器下载地址:http:/blog.csd n.n et/u011352914/article/details/16919535多路 RTSP 播放器源码下载地址:多路RTSP播放器SDK说明下载地址:http:/dow nload.csd n.n et/detail/u011352914/66032711. 综述RTSP协议定义了一对多应用程序如何有效地通过 IP网络传送多媒体数据, 在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。目前在 流媒体传输技术中使用最多的就是基于 RTSP/RTP勺流媒体传输,在智能
2、网络摄 像机上也需要实现基于 RTSP/RT啲H.264实时流的传输。RTSP协议基于TCP完成RTSP青求报文和响应报文的传输,RTP协议基于UDP 协议完成流媒体数据的实时传输,RTCP协议基于UDP协议提供客户端和服务器 有关当前网络拥塞和以及实时流传输质量等信息。2. 架构设计本文研究的流媒体播放器主要用来对遵循RTSP标准协议的码流以及 AVI文件进行实时播放以及码流录制。播放器核心为两个DLL,分别为网络DLL以及播放DLL。网络库基于Live555开发,主要对码流的获取以及链路的管理进 行控制;播放库基于ffmpeg以及DirectX开发,主要对实时码流以及本地的音视 频的文件进
3、行解码播放和控制。该RTSP播放器实现了主流RTSP播放器的基本功能,并有所拓展:(1) RTSP标准码流(包括音视频)的实时预览播放;(2)网络数据流的断线重连;(3)对存储文件的解码播放以及控制;(4)音视频码流的同步存储,文件存储时以当前系统的时间戳作为音视频 播放时的索引,方便在文件播放时以时间戳作为检索条件来点播文件;(5) 视频播放格式上支持 h.264、mpeg4 mpeg2等,音频播放格式上支持 AAC、AMR、G711 等;(6)视频抓拍;(7)视频显示角度旋转;(8)画面填充控制显示比例。3. 程序框架播放器整体设计参考VLC, MPLAYER等知名播放器,将整个数据的处理
4、流程分为:in put、demux、decode、output四个过程。其中in put用来处理网络数据流的输入以及文件数据的读取;demux用来做数据流的解复用,将音频 以及视频数据分离成ES流;decode用来解码视频以及音频 ES流,并输出解 码后的数据(视频为 YUV数据,音频为PCM格式);output用来处理YUV视 频数据的显示以及PCM音频数据的输出。为支持多路媒体数据并行解码输出,对于每路媒体数据分别设计了相应的engine引擎机制来进行管理,具体实现方案如下:(1)为实现多种输入方式的扩展性,将 in put、demux、decode、output四个过程划分为两个库来实现
5、,分别为数据源解析库SourceSdk、播放库PlaySdk ;(2)SourceSdK的管理功能由SourceE ngi ne引擎来完成,主要对in put以及demux模块进行封装管理。SourceEngine从数据源(直播、点 播、文件)获取数据,并解析数据将数据源分离成音频ES流和视频ES流,并将解析的数据以私有格式进行封装,通过回调函数的机制传递给应用层;(3)PlaySdk的管理功能由PlayEngine引擎来完成,主要对 decode以及output模块进行封装管理。PlayEngine提供了数据输入接口,通 过该接口可以将从SourceE ngi ne得到的数据传入该接口,放入
6、PlayEngine缓存。PlayEngine从缓存中提取数据,并对数据按协议 格式进行解析,将解析出的音视频数据分别回调;(4)为方便Engine对各模块的管理以及数据通讯,在内部设计了消息机 制,可以通过Engine给模块发送消息控制各模块的正常运行;(5)在相互作用的模块之间,如decode与output之间采用高效的数据缓 冲池机制来保证高效的内存分配,并通过队列机制将数据进行有效的 传递;4. 主要技术播放器在功能和性能上具有较高的要求, 具体的实现上,需要主要解决的关 键技术点主要包括有:多路高清解码、兼顾低时延与流畅性、音视频同步以及浏 览器扩展。针对以上问题,实现上采用的相应解
7、决办法如下:4.1多路高清解码多路高清解码播放每路都由多个线程配合来完成整个数据的处理流程,在多路播放的情况下则更为复杂。因此需要在系统的实现上具有高效的多线程管理机 制,以及对各模块的组织、内部互联互通上做出良好的设计:(1)通过SourceSdk、PlaySdk的实现,将繁琐的数据处理流程统一成了标准的数据接口,控制管理上方便有效;(2)在SourceSdk、PlaySdk内部实现上通过engine机制,对单路数据 以及播放的管理提供了统一接口,对于多路播放实际上只需要管理多 个engine即可;4.2低时延与流畅在性能提高上通过减少对内存数据的拷贝以及额外的内存分配开销:(1)在Play
8、Sdk中设计了回环数据缓冲机制,对应用层输入的数据进行 高效的缓存,在传输decode模块时,避免了数据拷贝;(2)在数据解码中使用了 ffmpeg的directbuffer机制,进一步的避免了数 据的拷贝动作;(3) 数据再各模块之间传递时使用数据缓冲池,避免了额外的内存分配操 作,同时也减少了因内存分配操作而带来的内存碎片;在低时延与流畅的平衡性上,通过设置最大缓冲帧数和最小缓冲帧数来实现 控制,具体实现策略为:通过比较待解码缓冲区和解码后还未来得及显示的缓冲区里数据包的个数 的和值,如果该值大于最大缓冲帧数,说明有很多数据在缓存里,延迟大了,这 时就要加快显示速度(减小output模块的
9、休眠时间),最大缓冲帧数就是影响延 迟的;反之一样,最小缓冲帧数就是流畅的保证,该值越大就越流畅;通过改变这个最大值最小值就可以平衡延迟与流畅。4.3音视频同步由于声音对时间的敏感性,所以在同步的处理上,系统以声音作为基准来参 考,对视频的输出来进行调整,从而保证音视频的同步性,具体实现为:通过比较音频和视频的时间戳(pts )来对视频的显示速度进行调整,如当 前的视频的pts比音频pts大于最小偏差值(目前设置为 200MS ),说明视频快 了,就放慢是视频的显示速度;反之就加快视频的显示速度;但是,如果差距太 大(目前设置为1000MS),大于最大偏差值时,加快视频的显示速度的效果不明显就采用丢帧方式,这个一般出现再刚开启的是时候。4.4 WEB浏览器调用针对不同的浏览器需要来制作成不同的插件, 即需要根据具体浏览器的插件 接口来编写,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链经济效益评价方法试题及答案
- 2024年CPMM竞争策略试题及答案
- 2024年CPMM新生入门试题及答案
- CPSM考试技巧与试题及答案心得
- 肺结核防治知识讲座课件
- 数学 第四册(五年制高职) 课件 第一章 逻辑代数初步
- 2024年SCMP高频考点试题及答案
- 备考CPSM的高效策略试题及答案
- 2024年国际物流师考试注意事项试题与答案
- 深度解析CPMM考试的思维考点及试题及答案
- 拆旧区复垦方案范本
- 湖南省2025届高三九校联盟第二次联考英语试卷(含答案解析)
- (甘肃一诊)2025年甘肃省高三月考试卷(3月)思想政治试卷(含答案)
- 高铁隧道工程施工设计毕业论文
- 辽宁省名校联盟2025届高三下学期3月联合考试(考后强化版)化学试卷(含答案)
- 湖南省2022年普通高等学校对口招生考试英语试题(无答案)
- 《智能交通信号灯控制系统》课件
- 《个人所得税申报赡养老人专项附加扣除指定分摊协议模板》
- DB32∕T 2803-2015 槜李生产技术规程
- 华为采购管理培训
- 徐州医科大学《公共政策学》2023-2024学年第一学期期末试卷
评论
0/150
提交评论