RTP RTCP协议在DSP平台上的实现
- 格式:pdf
- 大小:371.59 KB
- 文档页数:7
RTPRTCP流媒体服务器技术网络服务器-电脑资料1 引言随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术,。
但现有公开文献所报道的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的1 引言随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。
但现有公开文献所报道的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的研究。
本文对流媒体服务器技术的研究重点在于如何建立一个服务器,并且在实现流媒体传输的两个基本协议RTP/RTCP的基础上构建一个基本的流媒体服务器。
2 流媒体技术简介2.1 “流”的定义现在网上传输视频、音频主要有下载(Download)和流式传输(Streaming)两种方式。
流式传输是连续传送视/音频信号,当流媒体在客户机播放时其余部分在后台继续下载。
流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。
实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。
“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系。
在中使用流式传输技术的连续时基媒体就称为流媒体,通常也将其视频与音频称为视频流和音频流。
实现流式传输一般都需要专用服务器和播放器。
2.2 流媒体系统组件流媒体是由各种不同软件构成的,这些软件在各个不同层面上互相通信,基本的流媒体系统包含以下3个组件:播放器(Player),用来播放流媒体的软件。
服务器(Server),用来向用户发送流媒体的软件。
编码器(Encode),用来将原始的音频视频转化为流媒体格式的软件。
RTP/RTCP协议分析摘要本文主要介绍了RTP/RTCP协议组成,在详细了解和分析RFC3550协议和阅读目前国内外在RTP协议研究成果上给出了使用协议的要求及使用过程中需要注意的问题。
前言RTP/RTCP协议是IETF的音视频传输工作组提出的在Internet和现有局域网上传输实时信息的一个新型协议,是实现实时通信不可缺少的协议。
该协议是专门为交互的音频、视频等实时性数据而设计的。
RTP/RTCP协议由实时传输协议RTP和实时传输控制协议RTCP两部分组成。
RTP负责实时性数据的传输,它工作于UDP和IP多点传送的顶层,用于处理IP网上的视频和音频流。
每个UDP 包均加上一个包含时间标志和符号化方式识别码后发送出去,接收端配以适当的缓冲区,它就可以利用时间标志和序号信息“复原再生”数据包、记录顺序、同步音频、视频和数据以及改善接收端连接重放效果。
RTCP监测数据传输并管理控制信息,它监视迟滞和带宽,并将其通知发送端。
一旦可用带宽变窄,RTCP 立刻将该信息通知发送端,发送端根据此信息,变更符号化方式识别码,继续进行多媒体通信。
RTP/RTCP充分考虑所给定的网络,实现传送质量与给定网络相适应的多媒体通信。
协议提供端到端的实时数据流传输业务,可以满足实时通信的基本要求,但协议本身并不提供对实时应用的服务质量标准,需要有下层的协议提供服务支持。
RTP/RTCP可以满足实时通信的基本要求,但如果要想保证实时应用的带宽,还需要利用RSVP协议。
RSVP装在端系统和路由器中,用以确保端对端的传输带宽。
它能够在数据网络上为实时性音频和视频业务实现带宽预留并设置队列管理方法,尽量减少实时通信中的时间延迟和延时抖动。
使用RTP/RTCP协议之前要对协议进行说明,以符合各种不同的要求,对RTP/RTCP的说明随应用程序而不同,但至少应包括以下两个文件:框架文件:定义净荷类型的代码,并将这些代码映射到净荷的格式之中;定义对RTP/RTCP的扩充或修改以满足特殊应用的需要。
DSP平台上的实时视频RTPRTCP传输实现的开题报告一、研究背景及意义随着视频技术的不断发展,视频应用越来越广泛,而实时视频传输和处理的需求也日益增多。
在实时视频传输场景中,RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)是实现音视频传输和控制的重要协议。
RTP和RTCP协议是IETF提出的标准协议,分别用于媒体数据传送和传送控制。
它们对一些应用场景,如IP电话、视频会议、实时视频直播等,提供了良好的支持。
因此,研究在DSP平台上实现实时视频RTP/RTCP传输,对于满足实时性和高质量的视频传输需求具有重要意义。
二、研究内容本文将研究在DSP平台上实现实时视频RTP/RTCP传输的技术,具体包括以下内容:1. RTP协议的理解和实现本研究将进行RTP协议的深入研究,包括RTP协议的格式、分组和传输,探讨如何在DSP平台上实现RTP协议的功能。
2. RTCP协议的理解和实现本研究将进行RTCP协议的深入研究,包括RTCP协议的格式、报告、反馈和控制。
同时,本研究还将探讨如何在DSP平台上实现实时控制和反馈。
3. DSP平台上的编解码实现为满足实时视频传输需求,需要在DSP平台上实现视频编解码。
本研究将研究DSP平台上基于H.264和AAC编解码器的实现技术。
4. DSP平台上的网络传输为实现实时视频传输,需要在DSP平台上实现网络协议栈相关功能。
本研究将探讨如何在DSP平台上实现TCP/IP协议栈、传输控制协议和用户数据报协议等网络传输功能。
5. DSP平台上的实时视频传输系统设计结合前述技术,本研究将在DSP平台上设计一个实时视频传输系统。
该系统将实现从视频捕获到网络传输的全过程,包括视频编码、RTP/RTCP传输和网络传输等功能。
三、研究方法1. 理论研究通过查阅相关文献和标准,对RTP、RTCP协议、编解码、网络传输等方面的相关技术进行深入研究。
图16-12 RTP是传输层上的协议从应用开发人员的角度来看,可把RTP执行程序看成是应用程序的一部分,因为开发人员必需把RTP集成到应用程序中。
在发送端,开发人员必需把执行RTP协议的程序写入到创建RTP信息包的应用程序中,然后应用程序把RTP信息包发送到UDP的套接接口(socket interface),如图16-13所示;同样,在接收端,RTP信息包通过UDP套接接口输入到应用程序,因此开发人员必需把执行RTP协议的程序写入到从RTP 信息包中抽出媒体数据的应用程序。
图16-13 RTP和UDP之间的接口现以用RTP传输声音为例来说明它的工作过程。
假设音源的声音是64 kb/s的PCM编码声音,并假设应用程序取20毫秒的编码数据为一个数据块(chunk),即在一个数据块中有160个字节的声音数据。
应用程序需要为这块声音数据添加RTP标题生成RTP信息包,这个标题包括声音数据的类型、顺序号和时间戳。
然后RTP信息包被送到UDP套接接口,在那里再被封装在UDP信息包中。
在接收端,应用程序从套接接口处接收RTP信息包,并从RTP信息包中抽出声音数据块,然后使用RTP信息包的标题域中的信息正确地译码和播放声音。
如果应用程序不使用专有的方案来提供有效载荷类型(payload type)、顺序号或者时间戳,而是使用标准的RTP协议,应用程序就更容易与其他的网络应用程序配合运行,这是大家都希望的事情。
例如,如果有两个不同的公司都在开发因特网电话软件,他们都把RTP合并到他们的产品中,这样就有希望:使用不同公司电话软件的用户之间能够进行通信。
这里需要强调的是,RTP本身不提供任何机制来确保把数据及时递送到接收端或者确保其他的服务质量,它也不担保在递送过程中不丢失信息包或者防止信息包的次序不被打乱。
的确,RTP的封装只是在系统端才能看到,中间的路由器并不区分那个IP数据报是运载RTP信息包的。
RTP允许给每个媒体源分配一个单独的RTP信息包流,例如,摄像机或者麦克风。
网络视频传输协议RTPRTCPRTSPSIPSDP流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输;下面这几种协议就围绕着这两个需求而产生。
1.RTP协议rtp的全称是实时传输协议RTP(Real-time Transport Protocol),是应用层的一个协议,主要用来做音视频数据传输,一般基于udp协议之上,也支持组播,当然基于tcp也是可以的。
用rtp传输音视频数据的一般做法是将音视频数据前面加上rtp头封装成一个个的rtp包,接收端根据接收到的数据在组成按帧标记组成音视频数据,里面可以是h264或者h265的裸码流打包,也是是ps 格式或者ts格式封装的数据包,也可以是具有私有头的第三方封包。
rtp主要说的就是rtp头,里面比较重要的字段就是sn,一般在一帧数据被拆成多个rtp包,sn就是拆包的顺序,从1-32767循环叠加,在一个帧的最后一包会被打上mark标记,以此来区分一帧与另外一帧,用于接收方组成一帧数据包,多路不同的音视频媒体流使用ssrc源标记区分。
2.RTCP协议一般提到rtp总会提到rtcp协议,它们是配套的一套协议RTCP的全称是实时传输控制协议(Real-time Control Protocol),rtp虽然可以传输音视频数据,但是却不能携带其他的信息,比如当前网络的丢包,延迟,抖动,这些都是保证音视频数据传输质量的重要信息。
简单的说来就是rtp协议负责传输音视频数据,rtcp协议配套传输当前传输的控制信息。
rtcp主要说的就是两个东西,sr报告和rr报告,sr报告叫发送报告,随着发出的rtp包发出,主要告诉接收端,当前的发送情况;rr报告叫做接收报告,在接收到一个数据包后发出,回传到发送端,主要告诉发送端当前的接收情况;当然还有其他的媒体描述信息,应用程序消息等。
rtp另一个支持的特性就是端口复用,简单的说就是多路音视频传输使用一个端口接收,多路不同的媒体流使用一个叫做复用id的字段来区分,每一路的muxid不一样。
RTP与RTCP协议在实时音视频传输中的作用与优化策略实时音视频传输(Real-time Audio and Video Transport)是指通过网络传输实时音频和视频数据的过程。
在这个过程中,RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)这两个协议起到了重要的作用。
本文将探讨RTP与RTCP协议在实时音视频传输中的作用,并提出一些优化策略。
一、RTP协议的作用与优化策略RTP协议是实时音视频传输的关键组件,它负责将音频和视频数据进行分组,并在传输过程中提供时序和同步的功能。
RTP协议的作用主要包括以下几个方面:1.数据分组:RTP将音频和视频数据按照一定的策略进行分组,每个数据包都包含了一个序列号和时间戳。
这些信息可以帮助接收方对数据进行重组和同步。
2.时序与同步:RTP协议通过序列号和时间戳等机制,确保接收方可以按照正确的顺序和时间播放音频和视频数据,从而保持音视频的同步性。
3.传输控制:RTP协议可以通过调整传输速率和丢包恢复等机制,控制音视频数据在网络上的传输质量。
这对于实时音视频传输来说非常关键,可以保证音视频的流畅性和稳定性。
为了优化RTP协议的性能和传输效果,可以采取以下策略:1.选择合适的编解码算法:不同的音频和视频编解码算法对传输带宽的要求不同。
选择适合网络条件的编解码算法可以降低传输延迟,提高数据传输效率。
2.优化数据分组策略:合理设置RTP数据包的大小和分组方式,可以降低网络传输的延迟和丢包率。
例如,将音频和视频数据进行合理的拆分和分组,避免大的数据包对网络传输造成的负担。
3.动态调整传输速率:根据网络带宽和质量的变化,采用自适应的传输速率控制策略。
例如,可以根据网络拥塞程度和接收端的缓冲状态来调整传输速率,以达到最优的传输效果。
二、RTCP协议的作用与优化策略RTCP协议是RTP协议的补充,主要用于实现音视频传输过程中的控制和反馈。
RTP,RTCP,RTSP协议介绍流媒体是边下载边播放的⽅式, 是视频会议、IP电话等应⽤场合的技术基础。
为什么TCP/IP协议就不能满⾜多媒体通信的要求呢?因为TCP有以下4个特点:1.TCP重传机制2.TCP拥塞控制机制3.TCP报⽂头⽐UDP报⽂头要⼤4.TCP的启动速度慢对⽐:IP:数据传输 RTP:多媒体数据实时传输TCP:保证数据传输可靠 RTCP:保证多媒体数据传输的可靠RTP提供时间标志,序列号以及其他能够保证在实时数据传输时处理时间的⽅法RTCP是RTP的控制部分,是⽤来保证服务质量和成员管理的RTSP具体数据传输交给RTP,提供对流的远程控制RSVP预留带宽,提⾼QoS(Quality of Sever)RTP通常使⽤UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上⼯作。
当应⽤程序开始⼀个RTP会话时将使⽤两个端⼝:⼀个给RTP,⼀个给RTCP(RTP port + 1). RTP本⾝并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
通常RTP算法并不作为⼀个独⽴的⽹络层来实现,⽽是作为应⽤程序代码的⼀部分。
RTSP与RTP最⼤的区别在于:RTSP是⼀种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。
RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。
RTSP 默认使⽤554端⼝, ⾮常类似 HTTP 协议的流控制协议, rtsp 的命令总是按照顺序来发送.RTP/RTCP -------------------------RFC3550/RFC3551RTSP --------------------------RFC23262.1 RTP数据协议RTP 为实时应⽤提供端到端的运输,但不提供任何服务质量的保证,服务质量由RTCP来提供。
RTP协议解析实现音视频传输的协议RTP(Real-time Transport Protocol)是一种实时传输协议,主要用于音视频数据的传输。
它被广泛应用于实时通信领域,如视频会议、网络直播和实时游戏等。
本文将对RTP协议进行解析,并探讨其在音视频传输中的实现。
一、RTP协议的概述RTP协议是由IETF(Internet Engineering Task Force)制定的一种开放标准协议。
它使用UDP(User Datagram Protocol)作为传输层协议,并在其上构建一种实时传输的框架。
RTP协议不保证数据的可靠性,但提供了时间戳、序列号和校验和等机制,以便在接收端进行数据重组和同步。
RTP协议使用头部扩展的方式来传递附加信息,例如时间戳、SSRC(Synchronization Source)标识符和负载类型等。
这些信息对于实时通信非常重要,用于保证音视频数据的正确解析和播放。
二、RTP协议的组成1. RTP报文RTP报文由固定大小的RTP头部和可变大小的负载数据组成。
RTP头部包含了一些重要字段,包括版本号、填充位、扩展位、CSRC计数器、负载类型、序列号、时间戳和SSRC标识符等。
负载数据则根据不同的负载类型进行封装,可以是音频采样、视频帧或其他媒体数据。
2. RTP会话RTP会话是指在同一时间和空间中进行音视频传输的一组RTP会话参与者。
在一个RTP会话中,可以包含一个或多个发送者和接收者。
发送者负责将音视频数据打包成RTP报文并发送,接收者则接收并解析RTP报文,进而还原原始的音视频数据。
三、RTP协议的工作流程1. 初始化在音视频传输前,发送端和接收端需要进行初始化配置。
发送端需要选择合适的负载类型,并设置相应的参数,如传输速率、编码格式和质量等。
接收端则需要解析RTP头部,提取出相应的信息,并进行处理和播放准备工作。
2. 打包和发送发送端根据负载类型将音视频数据打包成RTP报文,并通过UDP 发送给接收端。
RTP/RTCP协议在DSP平台上的实现靳锐敏北京邮电大学信息工程学院,北京(100876)E-mail: jinruimin@摘要:随着多媒体在网络上的应用越来越多,人们对视频传输的要求越来越高。
由于TCP 协议的开销过大,不利于实时数据的传输,于是在传输的过程中采取无连接的UDP协议,并由RTP/RTCP协议来保证QOS并实现媒体同步成为实时数据传输的最佳选择之一。
在本课题中,首先实现基于DSP嵌入式平台的网络视频传输,并在此基础上实现了RTP/RTCP 协议,从而达到由RTP/RTCP协议对传输进行控制的目的。
关键词:TMS320DM642,UDP,RTP/RTCP,视频传输1. 引言高速数字信号处理器(DSP)在人们的心目中一直是一种具有高性能的核心引擎,数字视频市场的迅猛发展就得益于更高速度和性能DSP的不断更新换代,其中DSP几乎主导了数字视频监控产品和市场,不仅如此,由DSP而演化出的数字媒体处理平台可以全面覆盖数字视频媒体处理产品,而且其应用还呈现出不断拓展之势。
于是,在DSP嵌入式平台上实现数字视频监控成为研究的热点。
TI的DSP在数字视频应用中已积累了丰富的经验,事实上已经成为数字视频监控的主流平台。
TI推出的DM642评估板附带多种格式视频编解码演示软件包使广大客户能够迅速地着手设计,有效地缩短了开发周期。
DM642可以共享TI流行最广的CCS集成开发环境,可最大限度地利用C6000平台的资源。
对于网络视频传输,可以利用TI针对C6000系列推出的TCP/IP NDK(Network Developer’s Kit)开发。
鉴于视频监控的实时性,在传输视频数据的时候采用了无连接的UDP协议,利用NDK可以比较方便的实现对资源的配置,实现数据的UDP传输。
但是由于UDP协议本身的不足,若要想对数据传输进行控制,必须要配合其他的流媒体协议共同使用。
目前流行的流媒体技术中使用的实时传输控制协议RTP/RTCP 就能够提供这样一种机制。
但在目前的应用中,在DSP上对纯C语言RTP/RTCP的实现比较少。
鉴于此,本文研究了基于EVMDM642平台上的RTP/RTCP实现。
2. DM642系统开发平台近年来,数字信号处理器(DSP)已经成为嵌入式高速计算平台的主要实现工具。
TMS320DM642是TI公司于2004年初推出的一款面向多媒体数据处理的高性能、数字视频定点信号处理器。
其核心处理器主频为600MHZ。
DM642片内采用可配置的双级cache结构,提高了数据的存取速度。
CPU与一级程序高速缓存和一级数据高速缓存直联,两块Cache 分别为16Kb,工作在CPU全速访问状态。
二级缓存有256Kb,而且可以由用户编程设置成部分为普通片内RAM、其余为二级cache的结构。
因此二级缓存的分段和大小分配也有很多种情况。
DM642的EMDA能提供超过2Gb/s的外部带宽。
EDMA支持64路独立触发的事件传输。
此外,TMS320DM642还采用高级超长指令字结构,以在一个指令周期内能够并行处理多条指令[9]。
此外,作为数字媒体处理器,DM642芯片内部集成了丰富的外设资源。
包括可配置的音、视频接口(VP),以太网接口(EMAC/MDIO)、PCI接口、HPI接口、多通道缓冲串口(McBSP)、JTAG仿真器接口等等。
由于DM642上集成有以太网MAC接口,只需要外接一个网络处理芯片即可方便的实现网络接入功能。
为完成实时视频通信功能,采集系统的硬件总体结构按功能分为DM642最小系统、逻辑控制模块、视频解码模块、视频编码模块、音频编解码模块、网络接口模块及其他接口模块,如图1所示。
图1 视频通信系统终端框图3. 视频传输与控制协议3.1 UDP协议在如今的视频通信领域,最广泛应用的是H.263协议,它已经可以在嵌入式系统中达到实时、稳定的压缩效果。
本课题中视频压缩标准采用的即为H.263协议[10]。
由于TCP需要较多的开销,故不太适合传输实时数据。
一般采用无连接的UDP协议进行传输。
但是,实验中发现,基于DM642平台采用UDP传输H.263视频码流时,还存在如下问题:1.UDP无法检验网络丢包、错序现象。
尤其是传输数据量较大的I帧(很多情况下被拆分发送)出现包丢失或者错序现象时,会造成整个I帧的解码错误,并在其后的几个P帧的解码中延续这个错误,导致图像质量下降或解码错误而造成图像停顿。
2.在接收端,H263数据送入解码器之前,单纯的UDP数据包无法标识该帧数据是否是I帧,无法对网络引起的接收错误做区分处理(I帧是解码的关键帧)。
3.UDP没有传输质量控制功能,无法在传输的过程中根据网络状况协调发送和接收的速度。
4.UDP不利于系统的扩展。
当多个DSP终端同时传输监控图像时,需要分别缓冲不同的音、视频流,并进行同步。
UDP对此无能为力或实现复杂。
3.2 RTP/RTCP目前流行的流媒体技术中使用的实时传输控制协议RTP/RTCP(Real-time Transport Control Protocol/ Real-time Transport Protocol)能够提供一种机制:可以通过包序列号检验传输数据包丢失、错序的情况;采用时间戳的标识结合缓冲系统可以弥补网络造成的延迟和抖动,并控制视频播放的帧率;进行不同数据流的复用、同步传输。
此外,实时传输控制协议RTCP和RTP一起提供流量控制和拥塞控制服务。
在RTP会话期间,各参与者周期性地传送RTCP包。
RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
通常RTP/RTCP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分,可裁剪性很强[8]。
工作时,RTP协议从上层接收流媒体信息码流(如H.263),装配成RTP数据包发送给下层,下层协议提供RTP和RTCP的分流。
如在UDP中,RTP使用一个偶数号端口,则相应的RTCP使用其后的奇数号端口[1]。
RTP数据包没有长度限制,它的最大包长只受下层协议的限制。
RTP头部的定义及设置如图2所示:11CSRC41716232SSRC32CSRC032CSRC1..图2 RTP包头格式如上图所示,RTP头部的前12个字节出现在每一个RTP数据包中,最后的CSRC列表仅出现在具有数据混合器的情况下。
RTP协议本身并不能提供流量控制、拥塞监测等功能,需要由传输控制协议RTCP来实现。
RTCP主要有4个功能[1]:1.拥塞控制和QoS监控。
这是RTCP的一个重要功能。
用反馈信息的方法提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;2.为RTP源提供一个永久性的CNAME(规范性名字)的传送层标志,因为在发现冲突或者程序更新重启时SSRC(同步源标识)会变,需要一个运作痕迹,在一组相关的会话中接收方也要用CNAME来从一个指定的与会者得到相联系的数据流(如音频和视频);3.根据与会者的数量来调整RTCP包的发送率;4.传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。
为了实现上述的四个功能,RTCP中定义了5种携带不同控制信息的RTCP包类型:SR:发送报告,当前活动发送者发送、接收统计。
RR:接收报告,非活动发送者接收统计。
SDES:源描述项,包括CNAME。
BYE:表示结束。
APP:应用特定函数。
4. RTP/RTCP在DSP平台上的实现4.1 底层协议支持要在DSP平台上实现RTP/RTCP协议,必须有下层协议的支持。
我们的网络协议栈的开发实现使用了TI针对C6000系列推出的TCP/IP NDK(Network Developer’s Kit)。
NDK为网络协议开发提供了完整的TCP/IP函数功能环境。
它独立于操作系统和外设硬件,可以通过操作系统提取层(OS.LIB)与操作系统DSP/BIOS连接,底层硬件通过硬件提取层(HAL.LIB)支持与外围硬件接口。
在一个网络应用程序正确运行之前,TCP/IP栈必须正确配置和初始化,这是由网络控制模块(NETCTRL)完成的,它是栈初始化、配置和事件调度的核心。
在配置并初始化后就可以直接调用相应的函数来完成发送和接收的功能了。
图3为协议栈控制流函数调用关系的方框图,OS.LIB, NETTOOL.LIB, STACK.LIB, NETCTRL.LIB和HAL.LIB组成了NDK开发包。
图3 协议站控制流[7]这些库简介如下:1.STACK.LIB:最主要的TCP/IP网络栈,包括从最顶层的sockets层到最底层的以太网和PPP层。
本部分经过汇编以利用DSP/BIOS操作系统。
2.NETTOOL.LIB:由NKD提供的基于网络业务的sockets,以及一些帮助网络应用开发的工具组成。
最常用的是基于配置系统的标签。
3. OS.LIB:是一个瘦小的适配层,将OS函数调用映射为DSPBIOS函数调用。
4. HAL.LIB:连接硬件外设与TCP/IP协议栈的文件系统,包括定时器.LED指示,以太网设备,串口。
5. NETCTRL.LIB:在某种意义上说是TCP/IP协议栈的核心,它控制TCP/IP和外部世界的交互,是所有协议栈组成模块中是最重要的。
4.2 实时传输方案在DSP嵌入式平台编程需要考虑编码的执行效率问题,于是本系统采用C语言来实现DSP端RTP/RTCP,并将相应功能封装在各个函数中。
RTP/RTCP的内部实现流程如下:1.RTP数据包封装。
将给定的数据包发送缓冲区做为RTP数据包容器进行头部设置,包括序列号、时间戳、M标识、同步源标识等项;将待发送的H263码流拷贝到该RTP数据包容器的载荷处。
2.使用UDP发送函数sendto将封装好的RTP数据包发送出去。
3. 更新本地的RTP传输的统计数据。
包括该RTCP时间间隔内发送的RTP数据包的数目,发送的数据总的字节数等信息。
4.查询RTCP发送间隔的定时器,确定是否需要发送RTCP数据包。
若需发送RTCP 的控制信息,则将本地的传输信息打包成RTCP控制包进行发送,并更新RTCP包发送间隔定时器的初值,重新计时下一个计时间隔。
5.接收RTCP控制包。
并根据收到的RTCP包中的接收端数据接收情况分析网络状况,进而调整DSP端发送的速度、每次发送的数据包的长度等参数。
采用RTP/RTCP协议后,网络任务模块的功能结构如图4所示。
图4 RTP实时流传输方案RTP承载着由DSP采集终端到PC机监控中心的单向H263视频流传输,提供快速、连续、可靠的传输机制。
RTCP从RTP传输中收集视频流传输的统计信息,并分析收发双方的反馈信息,以此进行网络状况的判断及传输质量的控制。