开源库SRT编译指南

SRT(Secure,Reliable,Transport)是Haivision公司开发的一套开源媒体传输协议,用于在不稳定的网络环境下,优化媒体数据的传输性能。 
SRT的码流加密基于开源库openssl实现,采用了AES加密,秘钥可以选择128、192、256bit三种长度;而抗丢包特性基于自动重传算法实现。
如果想要了解SRT更详细的信息,除了访问github仓库(https://github.com/Haivision/srt)之外,还可以访问其官网https://www.srtalliance.org/
 

开源库SRT编译说明 

我编译的源码下载自SRT的github仓库(https://github.com/Haivision/srt),版本是1.3.2.
SRT模块交叉编译之前,需要先configure,configure时必须的两个参数分别是:“--prefix”和“--with-compiler-prefix”。 “--prefix”表示的是编译完成之后,“make install”命令将编译结果拷贝的目录; “--with-compiler-prefix”则是编译器的路径。以tx1平台为例,其配置命令是:
 
./configure --prefix=/home/xxx/git_base/srt/release/tx1/ --with-compiler-prefix=/opt/nvidia/gcc-linaro-5.3.1-2016. 05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

 

configure之后,依次make;make install; 编译结果就被拷贝到了“--prefix”所指定的目录了。
需要注意的是:
    --有些比较旧的编译器,可能还需要在configure时,加上选项“--disable-c++11”
    --有些编译环境,没有SRT依赖的openssl库;编译时会出错,这时就需要先编译openssl,并安装到交叉编译环境中
 --有时,编译不过,可以先手动删除CMakeCache.txt,避免错误配置的影响 
 

开源库openssl编译说明 

openssl的编译方法与SRT类似,我测试的源码来自于openssl的官网(https://www.openssl.org/source/),版本是v1.1.1b。
交叉编译前,也需要configure,必须的选项分别是“--prefix”、“CROSS_COMPILE”、“CC” 以hisiv500编译器为例,configure的例子如下:
./Configure linux-generic32 no-asm shared no-async --prefix=/home/xxx/git_base/openssl/release/hisiv500/ CROSS_COMPILE=/opt/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi- CC=gcc
需要注意的是:
    --选项 “linux-aarch64”与“linux-generic32”分别代表64位ARM和32位处理器, 如果是其他类型的处理器,建议用./Configure --help来找一个对应的处理器
    --选项“-no-asm”,表示编译时,不用汇编加速
    --选项“no-async”,表示编译器不支持ucontext库,一般的编译环境都支持,除了部分海思
    --编译之后,还需要把编译结果,拷贝到编译环境的动态库目录,cp时注意加选项“-rdf”
 
posted @ 2019-05-22 19:59  刘建章  阅读(3273)  评论(1编辑  收藏  举报