ORTP库移植
转载,侵删
1、ORTP的引入
为什么要使用RTP:http://blog.51cto.com/ticktick/462746
RTP协议分析:http://www.xuebuyuan.com/739929.html
总结:OPTP是一个C语言写的开源协议库,它的本质是实现一个服务器,可以用来在客户端和服务器之间相互传输视频
2、OPRT库的移植
- [ ] (1),准备源码
- 下载ortp源码:https://github.com/dmonakhov/ortp
- [ ] (2),存放到临时工作目录并解压
- ortp源码在Windows电脑中的E:\winshare\HI3518EV200\ortp-master中
- [ ] (3), 将ortp-master放入Ubuntu的特定目录中并解压:
- cd ~/sambashare/
- cp /mnt/hgfs/winshare/HI3518EV200/ortp-master.zip ./
- unzip ortp-master.zip
- [ ] (4),修改源码:增加H.264的payload支持
- cd ortp-master/
- cd src/
- sudo vi avprofile.c
- 在src/avprofile.c中357行添加:
- rtp_profile_set_payload(profile,96,&payload_type_h264);
- [ ] (5),执行./autogen.sh,配置默认的编译环境
- 错误1:./autogen.sh: line 44: libtoolize: command not found
- 解决:sudo aptitude install libtool*
- 扩展:GNU Libtool 可以容易的在不同的系统中建立动态链接库。它通过一个称为 Libtool 库的抽象,隐藏了不同系统之间的差异,给开发人员提供了一致的的接口。
- 错误2:libtoolize: error: Please install GNU M4, or 'export M4=/path/to/gnu/m4'.
- 解决:sudo apt-get install m4
- 解决:sudo aptitude install m4
- 扩展:M4是一个宏处理器,将输入拷贝到输出,同时将宏展开。宏可以是内嵌的也可以是用户定义的。除了可以展开宏,M4还有一些内建的函数,用来引用文件,执行Unix命令,整数运算,文本操作,循环等。M4既可以作为编译器的前端也可以单独作为一个宏处理器。
- 错误3:Automake - aclocal: command not found
- 解决:sudo apt-get install automake
- 扩展:主要用于创建makefile
- [ ] (6),执行./configure --prefix=/tmp/ortp --host=arm-hisiv300-linux 【--host=arm-hisiv300-linux指定了交叉编译工具链,所以工具链一定要安装好】,配置特定的编译环境
[ ] (7),执行make && make install,编译ORTP库
- [ ] (8),到/tmp/ortp目录下查看移植好的库和头文件
- cd /tmp/ortp/
- ls 【include lib】
- ls lib/ 【有.so,.la之类的文件】
- ls ../include/ortp/ 【有很多.h文件】
3、OPRT库源码分析
3.1 ORTP库源码概览
(1) OPTP库里面最关键的是include,src和src/test这三个文件夹,相应的数据结构和头文件存放在include/ortp目录下;src里面实现了一些功能函数[无main];src/test是示例代码
(2)ORTP库实现了RTP和RTCP协议,前者复制传输视频,或者负载视频传输的质量[控制,同步,协调等]
3.2 OPTP库API使用
ORTP库移植的更多相关文章
- ortp库入门
转自:http://blog.csdn.net/suer0101/article/details/7333267 再补充一个代码走读:http://www.xuebuyuan.com/1863409. ...
- Cocos2d-x移植到WindowsPhone8移植问题-libcurl库移植问题
在Cocos2d-x 3.x最新版本中提供了Windows Phone 8平台移植libcurl库所需要的头文件和库文件.但要在Windows Phone 8平台成功移植libcurl库还是很不容易, ...
- ortp库使用入门
我们知道, RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议,做流媒体传输方面的应用离不开RTP协议的实现及使用,为了更加快速地在项 ...
- Cocos2d-x移植到WindowsPhone8移植问题-libNetwork库移植问题
Cocos2d-x提供了libNetwork库的源代码,而且还提供了libNetwork库的源代码Visual Studio 2012工程文件libNetwork.vcxproj,这样就更方便移植了. ...
- ORTP库API使用入门
一.简介 ORTP是一个支持RTP以及RFC3550协议的库,有如下的特性: (1)使用C语言编写,可以工作于windows, Linux, 以及 Unix平台 (2)实现了RFC3550协议,提供简 ...
- Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!
导读(苦恼) 做多个项目的时候,可能会有这样的需求,需要把A项目中的某些功能移植到B项目上:移植途中,牵扯到顺便把表也要一块移植过去,若表字段较少,那还好,可能耗费10分钟就搞完了,万一碰上几十个字段 ...
- 【MCU】国民N32固件库移植
目录 前言 移植N32Gxxx系列要点 前言 链接: 李柱明博客 移植AT32库&FreeRTOS教程 由于大部分国产MCU移植固件库.RTOS源码都是差不多的,所以本文不讲细节,如想熟悉移植 ...
- 【转】FFMPEG 库移植到 VC 需要的步骤
原文:http://blog.csdn.net/leixiaohua1020/article/details/12747899 在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷 ...
- FFMPEG 库移植到 VC 需要的步骤
在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步.(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http: ...
随机推荐
- 『PyTorch』第二弹重置_Tensor对象
『PyTorch』第二弹_张量 Tensor基础操作 简单的初始化 import torch as t Tensor基础操作 # 构建张量空间,不初始化 x = t.Tensor(5,3) x -2. ...
- ssh: connect to host 192.168.11.180 port 22: Connection refused
错误原因: 1.sshd 未安装:sudo apt-get install openssh-server 2.sshd 未启动:sudo net start sshd 3.防火墙:sudo ufw d ...
- UVA-1632 Alibaba (区间DP+滚动数组)
题目大意:在一条直线上有n件珠宝,已知每件珠宝的位置,并且第 i 件珠宝在 ti 时刻就消失,问能否将所有的珠宝收集起来?如果能,求出最短时间.搜集能瞬间完成. 题目分析:区间DP.dp(i,j,0) ...
- EBS 中iSupplier模块中的MAPPING_ID
在EBS的供应商模块中,有一个非常有意思的表 POS_SUPPLIER_MAPPINGS, 这个表中建立了supplier_reg_id,vendor_id,party_id之间的映射关系. 这个表中 ...
- jenkins插件--Cobertura,JaCoCo,Emma-----(二)
代码覆盖API插件 Jenkins中有许多代码覆盖插件:Cobertura,JaCoCo,Emma等等.这些插件的问题在于它们每个都自己实现了所有代码覆盖功能.因此,您可以获得不同的功能集,UI,CL ...
- jenkins的流水线pipeline+项目实验php
声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...
- onedriver -1T容量,edu邮箱申请。
https://www.cccs.edu/ Apply申请 以前申请过这个红石社区大学. 创建帐号 自己翻译一下填填吧. 注册完,进入My Account,下面会有 2,点进去,也是注册. 3,点进去 ...
- JProfiler性能分析
之前已经介绍过如何调试本地的JBoss.现在额外一篇文章关于如何远程调试Tomcat的,其实远程和本地的区别不大,主要区别只是,JProfiler的GUI运行在你本地,而JProfiler的Agent ...
- 《Python》 内置函数补充、匿名函数、递归初识
一.内置函数补充: 1.数据结构相关(24): 列表和元祖(2):list.tuple list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转 ...
- docker中进行IDA远程调试提示“TRACEME: Operation not permitted[1] Closing connection from 192.168.109.1...”的解决方法
加入 --security-opt seccomp:unconfined选项,关闭docker远程命令执行保护 如: docker run --security-opt seccomp:unconfi ...