




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于RTP 协议的视频实时采集与传输的研究赵臣兵,刘立柱(解放军信息工程大学,河南 郑州 450002)摘 要:分析了实时通信协议RTP 及其控制协议RTCP ,构建一个基于RTP 协议的采集传输系统,能够实时采集视频数据、编码并通过网络传输。关键词:RTP 和RTCP ;视频采集;实时传输【中图分类号】:TN919 【文献标识码】:AResearch on Real-time Video Capture and Transport Based on RTP ProtocolZHAO Chenbing ,LIU Lizhu(PLA Information Engineering Univers
2、ity,Henan Zhengzhou 450002Abstract :This paper analyses the real-time transport protocol (RTPand the real-time transport control protocol(RTCP,we build up a system based on RTP,it can capture vieo,encode and transmit on network. Key words:RTP and RTCP;Video Capture;Real-time Transmission随着网络技术的迅猛发展和
3、全球信息化的加深,多媒体实时通信已成为网络通信中的一个非常重要的业务,这些业务主要包括视频点播、可视电话、会议电视、远程教育、流媒体等,而这些应用关键技术在于数字视频的实时采集和传输。根据多媒体数据要求实时性高、延迟小、可容忍适当的丢包率等特点,我们研究了RTP 协议和系统自带的VFW 函数并进行视频采集。一、RTP协议分析实时传输协议RTP (Real-time Transport Protocol)是用于网络上针对多媒体数据流的一种传输协议,RTP 协议由RTP 数据协议和控制协议RTCP 两部分组成。RTP 被定义在一对一或一对多的传输情况下工作。RTP 通常使用UDP 来传送数据,但R
4、TP 也可以在TCP 或A TM 等其他协议下工作。1 1 RTP 数据包由12字节的固定的RTP 头和不定长的连续媒体数据(视频帧或音频帧)组成,媒体数据可以是压缩编码后的数据。RTP 头结构如下图所示V M PT Sequence 时间戳SSRC 标识符CSRC 标识符荷载数据V :2位长的版本号P :1位长的附加标记位,用以说明包尾是否有非负荷信息,这些附加信息可用以加密或通知低层协议,一个数据单元封装有几个RTP 包。X :1位长的扩展位。若X=1,表示RTP 头后附有一变长的扩展头。CC :4位长的CSRC 计数,表示固定头后有多少个CSRC 标识符。M :1位长的标记位,用以标记数
5、据流中的主要事件,如帧边界。PT :7位长的负荷类型,接收端据此来识别媒体类型。Sequence number:2字节长的包序列号,每个RTP 数据包发送按先后次序依次增1,用于接收端的丢包检测和包序号恢复,第一包的数据是随机选取的。时间戳:32位长的时戳。RTP 包中数据开始产生的时钟时间,用于同步和包到达间隔抖动计算,时钟频率和数据格式有关,不能使用系统时钟,对固定速率的音频来说,每次取样时戳时钟增1。和包序列号一样,时戳的开始值也是随机的。如果多个连续的RTP 包逻辑上是同时产生的,那么他们具有相同的时戳。同步源(SSRC ):32位长,定义SSRC 的定义符,可以随机选取,但在同一RT
6、P 会话中,不同的SSRC 应该有不同的SSRC 值。贡献源CSRC 列表:可以有015个项目。每个项目占32位,一列贡献源标识被插入到混合器中。混合器表示将多个载荷数据组合起来产生一个将要发出去的包,允许接收端确认当前数据的贡献源,他们具有相同的同步源标识符。1 2 RTCP控制功能RTP 提供一个控制协议RTCP ,用来支持其协议功能。对于不同的应用的控制,RTCP 信息由若干堆栈式的包组成。每个包有其自己的类型码和长度指示,其包格式与RTP 包格式类似。RTCP 包周期性的在会话成员间传播,起会员活动指示器的作用。常用的RTCP 包有以下几类:SR:源报告包,用于发送和接收活动源的统计信
7、息;RR:接收者报告包,用于接收非活动站的统计信息;SDES:源描述包,用于报告和站点相关的信息;BYE:站点离开系统报告包;APP:特殊应用包。RTCP 有以下几个主要功能:(1)QoS监控和阻塞控制。发送音频、视频数据的应用会产生一个SR 包,含有所发送的包数和字节数统计信息,接收者可以据此估计出实际的数据率。会话成员向所有活动的音频、视频源发送RR 包,含有所接收的最高包序号,丢失包数、包间抖动测量值以及计算源目之间往返时间所需的时戳。(2)媒体间同步。RTCP发送报告包含一个实时(外部时钟时间)显示和对应的RTP 时间戳,可用于不同媒体间的同步控制。(3)标识。RTP 数据包只能通过随
8、机产生的32位识别符来标识源,不能满足诸如会议这样的复杂要求。而RTCP 的SEDS 包中有足够的文本信息,如用户各种信息等,以满足复杂应用的需要。(4)会议大小估计和控制信息量的调节。参与会话的每个成员周期性的发送RTCP 包,各站点据此计算出参与会话的人数,以便及时调节实时控制信息量,使控制信息量和媒体业务量达到平衡。二、视频的实时采集在视频采集中,通过USB 接口的摄像头采集视频数据,可以满足对图像采集实时性的要求。我们构建了利用MS Visual C+6.0基于VFW (Video For Windows)对视频数据进行采集的软件。VFW 是微软公司1992年推出的关于数字视频的一个软
9、件包,它能使应用程序通过数字化设备从传统的模拟视频源得到数字化的视频剪辑。VFW 的一个关键思想是播放时不需要专用硬件,为了解决数字视频数据量大的问题,需要对数据进行压缩。21 视频采集流程和关键函数下面介绍利用VFW 进行实时视频采集及实现的具体步骤和关键函数:(1)建立一个采集窗口。使用capCreateCaptureWindows 函数,函数返回值即是采集窗口的句柄。/创建捕获窗口m_capwnd=capCreateCaptureWindows(“Capture”,WS_POPUP,0,0,1,1,0,0; capSetUserData(m_capwnd,this;(2)注册回调函数。c
10、apSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo;if(!capDriverConnect(m_capwnd,indexAfxMessageBox(“Unable to open Video Capture Device”;M_capwnd=NULL;(3)获取和设置采集窗口采集参数。使用capCaptureGetSetup 获得采集窗口当前的参数设置,函数结果保存在CAPTUREPARMS 中,根据需要修改后再用capCaptureGetSetup 写入。 if(SetCapturePara(=FALSEcapDriverDisconnec
11、t(m_capwnd;BOOL VideoCapture:SetCapturePara(CAPTUREPARMS CapParms=0;capCaptureGetSetup(m_capwnd,&CapParm,sizeof(CapParms;CapParms.fYield=TRUE;CapParms.fCaptureAudio=FALSE;CapParms.wPercentDropForError=50;if(capCaptureSetSetup (m_capwnd,&CapParm,sizeof(CapParms=FALSE return FALSE;(4)与采集设备相连。使
12、用capDriverConnect(hwnd,iIndex与采集设备相连,其中hwnd 表示采集窗口,iIndex 表示视频设备的索引号。(5)设置采集窗口显示模式。使用capPreview 来设置窗口现显示模式为Preview ,Preview 占用CPU 资源,使用时会造成机器运行速度慢,可以在应用程序中降低Preview 的速率来保证其他程序的正常执行。(6)采集视频到缓存或进行相应的处理。利用capCaptureSequence 将视频流保存到文件中,通过回调函数可以在本地显示,并通过网络传送到远端。(7)终止采集并断开与采集设备的连接。void VideoCapture:Stop(/
13、停止捕捉capCaptureAbort(m_capwnd;/注销回调函数capSetCallbackOnVideoStream(m_capwnd,NULL;/取消与视频捕捉设备的连接capDriverDisconnect(m_capwnd;22 使用VFW 采集时压缩和解压缩处理在视频采集时,直接采集的数据没有经过压缩的avi 文件格式是非常大的,如果不经过压缩,对数据的存储和传输都是很大的困难。在使用VFW 库,也可以方便的实现软件的压缩和解压缩。在需要进行压缩处理的时候,可以使用自带的Codec ,下面是在VFW 中调用Codec 的方法:(1)使用VFW 提供的ICInstall 和IC
14、Remove ,用于安装和卸载Codec 或者用于Codec 的函数。(2)使用A VICap 提供的更高层的接口宏capDlgVideoCompression ,直接显示设置对话框供用户选择压缩驱动程序。很多Codec 软件厂商提供了安装程序,安装口可以通过capDlgVideoCompression 提示的对话框直接调用。三、系统设计和传输的实现在分析了RTP 数据包的基础上,设计了一套网络多媒体数据的传输系统,系统流程如下图: 通过摄像头采集的数据经过数据压缩,RTP 打包,形成RTP 流发送到网络中,接收端接收到数据包后,根据RTP 包头里的信息进行排序处理,送入缓冲区,然后利用win
15、dows 自带的Directshow 进行解码播放。软件部分主要包括采集,编解码,传输,显示几个模块。(1)实时采集。利用VFW 提供的API 函数进行采集,并将采集的数据放如缓冲区中。(2)实时编码。利用VC+实现MPEG2的编码,生成的码流写入FIFO 缓冲队列。(3)实时传输。利用Windows sockets进行网络编程。采用客户端/服务器模式进行点到点的通信。通过指定服务器的IP 地址和规定的端口号实现连接。编码服务端从FIFO 缓冲队列中利用定时器定期发送的RTP 数据包,解码端从网络中接收数据并放入客户端的FIFO 缓冲队列中。(4)实时解码。利用VC+实现MPEG2的解码,从客
16、户端的FIFO 缓冲区中取出数据包进行解码。(5)显示。通过系统自带的Directshow 进行实时解码播放。在处理RTP 数据包的时候,采取了缓冲技术,采集后的数据在网络传输中分解成若干个RTP 数据包,由于网络是动态变化的,每个包的传输路径不一样,到达接收端的时间也不一样,使用缓存来弥补延迟和抖动的影响。接收端将接收到的RTP 数据包解包后放入缓冲区,根据RTP 包头中的序列号将数据重新排列,送入解码缓冲区进行实时解码。同时接收端综合RTP 数据包和SR 包计算出数据包的达到延时和丢失率,形成RTCP 包(RR 包)向发送端反馈,这样发送端可以根据RR 包提供的网络信息来调整发送策略。四、
17、结束语视频采集、编码压缩以及基于RTP 数据流的实时传送是一个很有价值的研究课题,本文通过软件方法实现了多媒体通信的实时通信,降低了硬件成本,便于实现。随着网络速度的提高和压缩新技术的出现,可以进一步降低延迟,得到真正的实时传输。进一步整合扩充系统,可以在交互式会谈,远程教育、监控等方面发挥更大的作用。参考文献:1刘祎玮Visual C+视频/音频开发实用工程案例精选 人民邮电出版社20042黄永峰等编著.IP网络多媒体通信技术.北京:人民邮电出版社.2003.3罗建川等.实时传输协议RTP 的研究及其应用.计算机工程与应用。2001.84吴昱军. 媒体实时传输协议及在视频传输系统中的运用.微计算机信息.2003.19作者简介:赵臣
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育赛事组织与参与合作协议
- 农村土地流转与农业社会化服务合作协议
- 食堂承包协议转让
- 房屋出租资信证明书针对房产租赁行业(8篇)
- 2025年内蒙古危货从业资格证模拟考试题库
- 绿色办公用品推广合作协议
- 员工社保及公积金缴纳证明(7篇)
- 2025年不见面审批项目建议书
- 节能环保技术在企业运营中的实际应用方案设计
- 网络零售服务协议签署声明
- 福建省能源石化集团有限责任公司招聘笔试题库2024
- 2024年安徽省高考政治+历史+地理试卷(真题+答案)
- “两弹一星”精神弘扬与传承智慧树知到期末考试答案章节答案2024年青海师范大学
- 2024年江苏省盐城市中考数学试题(原卷版)
- 中医内科学:汗证
- 房产土地税培训课件
- 电子行业研发工程师劳动合同范本
- 法律法规合规性评价记录表
- 能源英语面面观 知到智慧树网课答案
- 电脑时代需要练字辩论材料
- 中国书法艺术智慧树知到期末考试答案2024年
评论
0/150
提交评论