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.-. -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”
 

开源库SRT编译指南的更多相关文章

  1. 踩坑经验总结之go web开源库第一次编译构建

    前言:记录一个go新手第一次构建复杂开源库的经历.go虽然是新手,但是编程上还是有多年的经验,除了c/c++,用过IDEA能进行简单的java编程.甚至scala编程.所以最开始还是有点信心的.所以也 ...

  2. python开源库——h5py快速指南

    1. 核心概念 一个HDF5文件是一种存放两类对象的容器:dataset和group. Dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group.在使 ...

  3. 开源库dlib的安装与编译-CMake

    前言 最近项目涉及到关于face alignment的实现,了解到目前主要的算法有ERT.SDM.LBF等,其中由于dlib开源库实现了ERT算法,效果也很不错,故开始研究dlib的使用.而使用的第一 ...

  4. 2018年度 35 个最好用 Vue 开源库

    在本文中,我们将推荐一些非常好用的 Vue 相关的开源项目.无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠 ...

  5. 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署

    前文已经说过,OPC基于微软的DCOM技术,所以开发OPC服务器我们要做的事情就是开发一个基于DCOM的EXE文件.一个代理/存根文件,然后就是写一个OPC客户端测试一下我们的服务器了.对于第一项工作 ...

  6. 无法链接glew的解决办法-编译开源库出现: error LNK2001: 无法解析的外部符号

    无法链接glew的解决办法-编译开源库出现: error LNK2001: 无法解析的外部符号 参考官方配置指南:http://glew.sourceforge.net/install.html 1. ...

  7. 基于第三方开源库的OPC服务器开发指南(3)——OPC客户端

    本篇将讲解如何编写一个OPC客户端程序测试我们在前文<基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署>一篇建立的服务器.本指南的目的是熟悉OPC服务器的开发流 ...

  8. 基于第三方开源库的OPC服务器开发指南(1)——OPC与DCOM

    事儿太多,好多事情并不以我的意志为转移,原想沉下心好好研究.学习图像识别,继续丰富我的机器视觉库,并继续<机器视觉及图像处理系列>博文的更新,但计划没有变化快,好多项目要完成,只好耽搁下来 ...

  9. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

随机推荐

  1. 【BZOJ 3238】差异 后缀自动机+树形DP

    题意 给定字符串,令$s_i$表示第$i$位开始的后缀,求$\sum_{1\le i < j \le n} len(s_i)+len(s_j)-2\times lcp(s_i,s_j)$ 先考虑 ...

  2. 数据库中的id不会自动 替换,这个应该处理吗。怎么处理,那个是唯一主键

  3. Wannafly #4 F 线路规划

    数据范围252501 劲啊 Q国的监察院是一个神秘的组织. 这个组织掌握了整个Q国的地下力量,监察着Q国的每一个人. 监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只听从其上直接司的命令 ...

  4. @@cursor_rows变量解析

    刚刚看了@@curosr_rows这个全局变量,发现这个变量挺有意思.要懂得这个变量的意义,基本上牵扯到cursor一些比较容易忽视的内容. @@cursor_rows是用来记录当前游标的数量,也就从 ...

  5. 寻找总和为n的连续子数列之算法分析

    看到有这么道算法题在博客园讨论,算法eaglet和邀月都已经设计出来了,花了点时间读了下,学到点东西顺便记录下来吧. 题目是从1...n的数列中,找出总和为n的连续子数列. 这里先设好算法中需要用到的 ...

  6. bzoj 4823 & 洛谷 P3756 老C的方块 —— 最小割

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 https://www.luogu.org/problemnew/show/P3756 ...

  7. Erlang generic standard behaviours -- summary

    gen_server 相关的片段分析得也差不多了, 这篇作为一个简要的总结.这一系列相关的分析暂且告一段落(之后如有必要,还会回来的 ^^ ),下一个系列主要是以pool 相关, 包括但不仅限于开源项 ...

  8. 【转】Unity3D如何制作落叶效果

    原文地址:http://hi.baidu.com/cupgenie/item/c23861df692f59e3b3f777a8 创建一个粒子系统 GameObject>Create other& ...

  9. poj3414Pots(倒水BFS)

    Pots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13231   Accepted: 5553   Special J ...

  10. Excel对重复数据分组,求出不同的数据(office 2013)

    第一步: 第二步: 第三步: