jrtplib移植
jrtplib版本:3.11.1
jthread版本:1.3.3
libsrtp版本:1.6.0
jrtplib库有两种编译方式:
1. 使能jthread编译,此方式可使jrtplib自动在后台轮询结束数据,
而不必用户自己调用RTPSession类中的poll方法轮询。(推茅,本例采用)
2. 不使能jthread编译, 这就要用户调用RTPSession类中的poll方法轮询。
首先编译libsrtp:
源码网站:github.com/cisco/libsrtp
下载后解压,进入源码目录。执行一项命令
./configure --prefix="安装目录" (交叉编译则需指定--host="交叉编译工具链")
make
make runtest
make install
其次编译jthread:
源码网站:https://github.com/j0r1/JThread
下载后解压,进入源码目录。
采用cmake编译(没安装则自行安装apt-get install cmake、apt-get install cmake-qt-gui)
1. 在目录下建立build目录 mkdir build
2. vi toolchain.cmake
3. 添加:
###########user defined#############
set( CMAKE_SYSTEM_NAME Linux ) #设置系统名
#set( CMAKE_SYSTEM_PROCESSOR arm ) #设置处理器名
set( CMAKE_C_COMPILER gcc ) #设置C语言编译器
set( CMAKE_CXX_COMPILER g++ ) #设置c++编译器
###########user defined#############
set(CMAKE_INSTALL_PREFIX "安装目录") #设置安装目录
###########user defined#############
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
######################################
4. 执行 cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ../
5. make
6. make install
最后编译jrtplib:
源码网站:https://github.com/j0r1/JRTPLIB
下载后解压,进入源码目录。(采用cmake编译)
1. 在目录下建立build目录 mkdir build
2. vi toolchain.cmake
3. 添加:
set(JTHREAD_FOUND 1)
set(JTHREAD_INCLUDE_DIRS "jthread安装目录/include")
set(JTHREAD_LIBRARIES "-Ljthread安装目录/lib" "-ljthread" "-lpthread")
set(LIBSRTP_FOUND 1)
set(LIBSRTP_INCLUDE_DIR "libsrtp安装目录/include")
set(LIBSRTP_LIBRARY_DIR "-Llibsrtp安装目录/lib" "-lsrtp")
###########user defined#############
set( CMAKE_SYSTEM_NAME Linux )
#set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER gcc )
set( CMAKE_CXX_COMPILER g++ )
###########user defined#############
set(CMAKE_INSTALL_PREFIX "jrtplib安装目录") #设置安装目录
###########user defined#############
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
######################################
4. 执行 cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ../
5. make
6. make install
jrtplib移植的更多相关文章
- Linux下几种RTP协议实现的比较和JRTPLIB编程讲解
流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议. IP电话等应用场合的技术基础.RTP是进行实时流媒体传输的标准协议和关 ...
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(一)简介
关于实时流媒体传输的开源库,目前流行的主要有两个:live555和jrtplib. 其中live555将rtp.rtcp和rtsp的传输协议实现集于一身,功能齐全,是个超强的集合体.但是对于嵌入式系统 ...
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)
首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...
- Linux主机上使用交叉编译移植u-boot到树莓派
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...
- STM32F429 LCD程序移植
STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...
- 将MPM雪模拟移植到Maya
同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
- DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...
随机推荐
- Jmeter常用线程组设置及场景运行时间计算
Jmeter中通过线程组来模拟大用户并发场景,今天主要介绍三个常用的线程组,帮助我们设计更加完善的测试场景,另外介绍下场景执行时间如何计算. 一.Thread Group 取样器错误后要执行的动作 ...
- python学习笔记(一)——关于正则表达式的学习小结
python中提供了re这个模块提供对正则表达式的支持. 一.正则表达式常用到的一些语法(并非全部): . 匹配任意单个字符 [...] 匹配单个字符集 \w 匹配单词字符,即[a-zA-Z0-9] ...
- springMvc配置 中文api
http://7xvpsh.com1.z0.glb.clouddn.com/publish/21-2/the-dispatcher-servlet.html springmvc4.1.7:配置 复制转 ...
- Silverlight 密码框 Focus
在做一个例子是需要运行起来后焦点默认设置在密码框上,在网上查了资料 自己找到一种方法,此方法在oob模式下管用 public Login() { InitializeComponent(); txtL ...
- 深刻理解Linux进程间通信(IPC)
https://www.ibm.com/developerworks/cn/linux/l-ipc/ linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管 ...
- java中key值可以重复的map:IdentityHashMap
在Java中,有一种key值可以重复的map,就是IdentityHashMap.在IdentityHashMap中,判断两个键值k1和 k2相等的条件是 k1 == k2 .在正常的Map 实现(如 ...
- Cucumber 场景大纲 Scenario Outlines
引用链接:https://github.com/cucumber/cucumber/wiki/Scenario-Outlines script/cucumber --i18n zh-CN | feat ...
- Linux查找文件内容(grep)
转载链接:http://www.eguidedog.net/linux-tutorial/05-grep.php grep是Linux命令行下常用于查找过滤文本文件内容的命令.最简单的用法是: gre ...
- vue-pos : 子组件与子组件通讯
子组件与子组件通讯: 例子子组件1 要与子组件2 通讯 步骤1 : 在父组件新建一个 vue 对象 : const eventHub = new Vue() 步骤2 : 子组件1 发起事件 :this ...
- grunt配置sass项目自动编译
1.安装Ruby和SASS 首先我们需要在电脑上安装Ruby和SASS.如果您使用的是Mac,您就没必要安装Ruby.如果您使用的是Window系统,你需要安装Ruby. 2.安装Nodejs 由于使 ...