基于JRTPLIB库的RTP数据传输设计文档(1)

关键词: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 库,如 LIBRTP JRTPLIB 等。 JRTPLIB 是一个面向对象的 RTP 库,它完全遵循 RFC 1889 设计,我拟采用 JRTPLIB 实现 RTP/RTCP 协议,下面就以 JRTPLIB 为例,讲述如何在 Linux 平台上运用 RTP 协议进行实时流媒体编程。
1)        PC机上的环境搭建
JRTPLIB 是一个用 C++ 语言实现的 RTP 库,目前已经可以运行在 Windows Linux FreeBSD Solaris Unix VxWorks 等多种操作系统上。要为 Linux 系统安装 JRTPLIB ,首先从 JRTPLIB 的网站( http: //research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib )下载最新的源码包,此处使用的是 jrtplib-3.7.1 jthread-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 目录下

你可能感兴趣的:(文档,设计,数据传输,休闲,RTP)