Advertisement

oRTP在ubuntu下的编译安装

阅读量:

1 准备工作

环境:ubuntu14.04 64位

oRTP(1.0.2)链接: _https://github.com/BelledonneCommunications/ortp_

该版本号为0.6.0的bctoolbox连接:_https://github.com/BelledonneCommunications/bctoolbox_。

mbedtls (2.9.0)的链接: _https://github.com/ARMmbed/mbedtls_

具体来说,oRTP基于bctoolbox实现功能模块划分,并且该库又基于mbedtls实现底层协议支持.因此需要这三个库配合使用,并参考下图了解完整架构.

另外需要注意的是,在软件开发过程中必须先安装必要的工具包包括 gcc、g++、make 等等。特别强调 CMake 版本需高出 3.0 以上。如果 CMake 版本低于 3.0,则建议升级至更高版本进行安装

2 源码下载

oRTP官网: _http://www.linphone.org/technical-corner/ortp/overview_

GitHub链接: _https://github.com/BelledonneCommunications/ortp_

注意看oRTP源码的 README.md

**

**

3 mbedtls 库编译安装

解压源码包

tar xvfz mbedtls-mbedtls-2.9.0.tar.gz

进入源码

cd mbedtls-mbedtls-2.9.0/

生成makefile

cmake . -DUSE_SHARED_MBEDTLS_LIBRARY=On

编译

make

安装

sudo make install

说明:上述代码在编译时同时生成静态库和动态库,并将这些库放置于/usr/local/lib/目录下;同时包含头文件位于/usr/local/include/mbedtls/目录中。

**

**

4 bctoolbox 库编译安装

解压源码包

tar xvzf bctoolbox-0.6.0.tar.gz

进入源码

cd bctoolbox-0.6.0/

生成makefile(安装在/usr下)

cmake . -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_TESTS_COMPONENT=NO

编译

make

安装

sudo make install

说明:编译操作能同时生产静态与动态版本的共享物。这些共享物被放置于 /usr/lib/x86_64-linux-gnu 该目录中;相应的头文件则位于 /usr/include/bctoolbox 目录内。

说明:编译操作能同时生产静态与动态版本的共享物。这些共享物被放置于 /usr/lib/x86_64-linux-gnu 该目录中;相应的头文件则位于 /usr/include/bctoolbox 目录内。

**

**

5 ortp 库编译安装

解压源码包

tar xvzf ortp-1.0.2.tar.gz

进入源码

cd ortp-1.0.2/

生成makefile(安装在/usr下)

cmake . -DCMAKE_INSTALL_PREFIX=/usr

编译

make

安装

sudo make install

构建了静态与动态两类库,并将这些库安装至/usr/lib/x86_64-linux-gnu/目录中;同时对应的包含目录设置为/usr/include/ortp/位置。

**

**

6 源码自带例程体验

说明:源码自带测试例程是针对PCMU格式音频文件的发送

编译/src/tests/rtpsend.c

gcc -o rtpsend rtpsend.c -lortp

查看可执行文件的动态依赖库情况

ldd rtpsend

注意到软件环境中缺少主要的动态链接库文件 libm mbedtls.so.10、libm bedx509.so.0 和 libm bedcrypto.so.2 这些关键组件无法正常加载

sudo ln -s /usr/local/lib/libmbedtls.so.10 /usr/lib/x86_64-linux-gnu/

sudo ln -s /usr/local/lib/libmbedx509.so.0 /usr/lib/x86_64-linux-gnu/

sudo ln -s /usr/local/lib/libmbedcrypto.so.2 /usr/lib/x86_64-linux-gnu/

复制一个音频测试文件test.g711放到 /src/tests/ 下

执行RTP send程序

./rtpsend test.g711 192.168.2.105 6664

可能会出现段错误---Segmentation fault (core dumped),这通常是因为从网上下载的测试音频文件test.g711并非采用pcmu编码方案(而是采用pcma编码方案),因此需要将负载类型设置为8号位,并启用socket连接功能。

改rtpsend.c测试代码,如下,改两处

重新编译,运行,成功

创建.sdp文件,并通过VLC软件播放音频文件时会听到声音;其中sdp文件的内容应按照目标IP地址及指定端口号进行配置设置

下一节分析音频g711推流。

全部评论 (0)

还没有任何评论哟~