JRTPLIB库-------一个RTP协议的开源库

JRTPLIB库是一个RTP协议的开源库,使用这套库文件,我们可以创建端到端的RTP连接,实现数据的实时传输。
RTP是实时传输协议的简称。
下载jrtplib-3.7.1.rar后,首先将其解压到一个临时文件夹中,然后开始后续工作。

首先需要强调的是,jrtplib是一个库而不是应用程序,编译后我们获得的是.lib文件。这个文件是用来实现RTP协议的,意义和我们在写WIN32程序时用到的kernel.lib一样。

1、解压后的文件夹中包含两个目录,jrtplib-3.7.1和jthread-1.2.1,打开这两个目录后我们可以看到下面又有两个同名的目录,为了后面能顺利编译,我们把同名目录下的文件全部考到上一级目录中,就是说把c:/jrtplib-3.7.1/jrtplib-3.7.1/*.* 复制到c:/jrtplib-3.7.1/。同理,把c:/jthread-1.2.1/jthread-1.2.1/*.* 复制到c:/jthread-1.2.1/。完成上述步骤后我们就可以开始编译库文件了。

2、编译jrtplib.lib和jthread.lib需要注意VC6要求安装Vs6sp6,在编译jrtplib.lib和jthread.lib前,在project——settings——C/C++——Code generation:use run-time library中,对于debug,选择:Debug Multithreaded DLL,对于release,则选择:Multithreaded DLL。

3、首先编译jthread库,然后将jthread-1.2.1/src内的"jmutex.h"和"jthread.h"两个头文件放入jrtplib-3.7.1/src目录下,然后将jrtplib-3.7.1/src文件夹下所有头文件中的<jmutex.h>和<jthread.h>语句修改为"jmutex.h"和"jthread.h",需要修改的文件为rtpudpv4transmitter.h、rtpsession.h和rtppollthread.h。编译时注意编译方式和jthread.lib一致,并且设置路径包含jtrplib所有头文件,路径设置方法:工具--选项--目录--include files.

4、将编译生成的jthread.lib和jrtplib.lib拷贝到系统目录:C:/Program Files/Microsoft Visual Studio/VC98/Lib下。

5、那些example的编译,需要在cpp文件开头加上:

#pragma comment(lib, "jrtplib.lib")

#pragma comment(lib, "jthread.lib")

#pragma comment(lib, "WS2_32.lib")//pragma的作用自己上网查吧

编译的时候,同样选择编译选项:Debug Multithreaded DLL(对于debug);Multithreaded DLL(对于release)。

Project->Settings->Link中Object/library modules:添加jthread.lib jrtplib.lib ws2_32.lib
然后编译-链接-运行就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在Android开发中遇到了"Unsupport mime 'audio/g711-alaw'"的错误提示,这是由于Android系统本身并不支持G711A和G711U的音频格式,而只支持G711标准的PCM编码格式。因此,如果要在Android中使用G711A或G711U的音频格式,需要使用第三方的进行编解码。 这里推荐使用JRTPLIB,它是一个开源RTP协议,支持G711A、G711U、G722、L16等音频格式的编解码。使用JRTPLIB可以方便地实现RTP协议的编解码,并支持自定义的音频格式。 以下是使用JRTPLIB进行G711A编解码的示例代码: ```java // 初始化JRTPLIB jrtplib::RTPSessionParams sessionParams; sessionParams.SetOwnTimestampUnit(1.0/8000.0); jrtplib::RTPSession rtpSession; rtpSession.Create(sessionParams); // 创建G711A编解码器 jrtplib::G711Codec g711Codec; // 编码 unsigned char encodedData[1024]; int encodedDataLen = 0; g711Codec.Encode(g711Data, g711DataLen, encodedData, 1024, encodedDataLen); // 解码 unsigned char decodedData[1024]; int decodedDataLen = 0; g711Codec.Decode(encodedData, encodedDataLen, decodedData, 1024, decodedDataLen); ``` 在上述代码中,首先使用jrtplib::RTPSessionParams对象设置了音频采样率,并创建了一个RTPSession对象。然后使用jrtplib::G711Codec对象进行G711A的编解码操作。 需要注意的是,JRTPLIB需要在C++环境下编写,并使用JNI技术将C++代码与Java代码进行交互。因此,使用JRTPLIB需要一定的C++编程经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值