关键词:JRTPLIB  RTP  ARM  交叉编译
BCNG 
 
 
                       基于JRTPLIB库的RTP数据传输设计文档
 
本:1.0
者:xxx
别:嵌入式项目组
期:2008-07-21
 
  
.          概述... 3
.          流媒体传输系统设计与实现... 3
1.    Linux平台实时流媒体编程... 3
1)    PC机上的环境搭建... 3
2)    嵌入式版的环境搭建... 3
3)    初始化... 4
4)    数据发送... 4
5)    数据接收... 4
2.    Window平台实时流媒体编程... 5
3.    具体流程图... 7
.          调试记录... 9
.          存在的问题和拟采取的解决方案... 12
.          作者简介... 12

一.    概述
    此模块是在基于S3C2440的嵌入式开发板上实现对摄像头采集并经过H.264压缩过的数据的RTP传输,并在接收端PC上能正确接收的功能。
        RTP即实时传输协议,用于Internet上针对多媒体数据流的传输。它通常使用UDP协议来传送数据,起初是为了“multicast”传输情况而设计的,目的是提供时间信息和保证流同步,不过现在也用于一对一的传输情况。RTP协议主要完成对数据包进行编号,加盖时戳,丢包检查,安全与内容认证等工作。通过这些工作,应用程序会利用RTP协议的数据信息保证流数据的同步和实时传输。
二.    流媒体传输系统设计与实现
1.         Linux平台实时流媒体编程
RTP是目前解决流媒体实时传输问题的最好办法,如果需要在Linux平台上进行实时流媒体编程,可以考虑使用一些开放源代码的RTP库,如LIBRTPJRTPLIB等。 JRTPLIB是一个面向对象的RTP库,它完全遵循RFC 1889设计,我拟采用JRTPLIB实现RTP/RTCP协议,下面就以JRTPLIB为例,讲述如何在Linux平台上运用RTP协议进行实时流媒体编程。
1)        PC机上的环境搭建
JRTPLIB是一个用C++语言实现的RTP库,目前已经可以运行在WindowsLinuxFreeBSDSolarisUnix VxWorks等多种操作系统上。要为Linux 系统安装JRTPLIB,首先从JRTPLIB的网站(http: //research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib)下载最新的源码包,此处使用的是jrtplib-3.7.1jthread-1.2.1(控制线程库)。假设下载后的源码包保存在/root目录下,对其进行解压缩,接下去需要对JRTPLIB进行配置和编译:
[root@linuxgam src]# cd jrtplib-3.7.1
  [root@linuxgam jrtplib-3.7.1]# ./configure
  [root@linuxgam jrtplib-3.7.1]# make

最后再执行如下命令就可以完成JRTPLIB的安装:
[root@linuxgam jrtplib-3.7.1]# make install
 
再进入jthread-1.2.1目录下重复以上操作:
[root@linuxgam src]# cd jthread-1.2.1
  [root@linuxgam jrtplib-3.7.1]# ./configure
  [root@linuxgam jrtplib-3.7.1]# make
[root@linuxgam jrtplib-3.7.1]# make install
 
生成的动态库安装到了/usr/local/lib目录下
头文件在/usr/local/include目录下