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推流。
