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

本文介绍了在S3C2440嵌入式开发板上使用JRTPLIB库实现H.264压缩视频的RTP传输。详细阐述了Linux平台及嵌入式环境的JRTPLIB库安装和配置过程,包括PC和嵌入式设备上的环境搭建。在Linux上,通过示例展示了RTPSession的初始化、数据发送和接收方法。调试过程中遇到的登录名获取、字节序和文件写入问题及解决方法也被提及。
摘要由CSDN通过智能技术生成

本文在前人的基础上做了一定的修改,并将持续的该下去!

一 . 概述
此模块是在基于 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]# cdjrtplib-3.7.1
[root@linuxgam jrtplib-3.7.1]#./configure
[root@linuxgam jrtplib-3.7.1]# make
最后再执行如下命令就可以完成 JRTPLIB 的安装:
[root@linuxgam jrtplib-3.7.1]# makeinstall
再进入 jthread-1.2.1 目录下重复以上操作:
[root@linuxgam src]# cdjthread-1.2.1
[root@linuxgam jrtplib-3.7.1]#./configure
[root@linuxgam jrtplib-3.7.1]# make
[root@linuxgam jrtplib-3.7.1]# makeinstall
生 成的动态库安装到了 /usr/local/lib 目录下
头文件在 /usr/local/include 目录下
2) 嵌入式版的环境搭建
嵌入式版上的环境搭建和 PC 机上有些不同,如不注意可能导致两个库都不能使用。
首先,必须先安装 jthread 库,再安装 jrtplib 库;其次,要交叉编译,需修改 configure 文件。具体步骤为:
[root@linuxgam src]# cdjthread-1.2.1
[root@linuxgam jrtplib-3.7.1]#./configure  -host=arm-linux  – prefix=/usr/local/arm/2.95.3
[root@linuxgam jrtplib-3.7.1]# make
[root@linuxgam jrtplib-3.7.1]# makeinstall
[root@linuxgam src]# cdjrtplib-3.7.1
[root@linuxgam jrtplib-3.7.1]#./configure  -host=arm-linux  -prefix=/usr/local/arm/2.95.3 cross_compile=yes
注意:
1. 在 rtperrors.h 中添加头文件 stdio.h ,否则编译会出现相应的问题。
2. 修改 rtpconfig_unix.h 文件(具体方法在调试记录部分有阐述)&#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值