5、ORTP库移植

1、ORTP的引入

为什么要使用RTP:http://blog.51cto.com/ticktick/462746

RTP协议分析:http://www.xuebuyuan.com/739929.html

总结:OPTP是一个C语言写的开源协议库,它的本质是实现一个服务器,可以用来在客户端和服务器之间相互传输视频

2、OPRT库的移植

  • [ ] (1),准备源码

  • [ ] (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使用

https://blog.csdn.net/bill611/article/details/77726429

原文地址:https://www.cnblogs.com/Ocean-Star/p/8920884.html

时间: 2024-11-13 09:22:50

5、ORTP库移植的相关文章

Cocos2d-x移植到WindowsPhone8移植问题-libcurl库移植问题

在Cocos2d-x 3.x最新版本中提供了Windows Phone 8平台移植libcurl库所需要的头文件和库文件.但要在Windows Phone 8平台成功移植libcurl库还是很不容易,需要费一些周折,我总结了如下几个步骤:配置头文件搜索路径配置链接环境添加动态链接库 1.配置头文件搜索路径整个步骤我们可以参考上一节介绍的rapidjson库移植.具体过程是选中HelloCppComponent工程,打开菜单"项目"→ "属性"弹出工程属性对话框,选择

VS2010使用oRtp库连接不到rtp_session_set_connected_mode

额,在VS2010里面调用oRtp库的时候,调用rtp_session_set_connected_mode的时候报错. 链接失败,无定义符号之类的.在源码里面找到关于这个函数的声明和定义,决定不适用这个函数了,直接使用里面实现的代码: void rtp_session_set_connected_mode(RtpSession *session, bool_t yesno){ session->use_connect=yesno; } 问题解决.

ORTP库API使用入门

转自:https://www.cnblogs.com/elisha-blogs/p/3963126.html ORTP库API使用入门 一.简介 ORTP是一个支持RTP以及RFC3550协议的库,有如下的特性: (1)使用C语言编写,可以工作于windows, Linux, 以及 Unix平台 (2)实现了RFC3550协议,提供简单易用的API.支持多种配置,RFC3551为默认的配置. (3)支持单线程下的多个RTP会话,支持自适应抖动处理. (4)基于GPL版权声明. ORTP可以在其官

Cocos2d-x移植到WindowsPhone8移植问题-libNetwork库移植问题

Cocos2d-x提供了libNetwork库的源代码,而且还提供了libNetwork库的源代码Visual Studio 2012工程文件libNetwork.vcxproj,这样就更方便移植了.提示 有的Cocos2d-x工程模板在解决方案中,已经有libNetwork库了,本节所介绍的过程就不需要了. 由于libNetwork库底层是依赖libcurl库,所以我们先要按照上一节介绍的步骤移植libcurl库,这个过程不在介绍.下面我们移植libNetwork库,具体步骤是:在解决方案中添

zabbix-数据库移植

作用:用户测试zabbix的数据存储功能 移植数据库 zabbix服务端 stop zabbix-server #停止zabbix服务,使不再产生数据 scp -r /var/lib/mysql/ [email protected]:/data/zabbix/  #移植数据库下文件到远程主机数据库下 数据库主机端 vim /etc/my.cnf datadir=/data/zabbix  #修改数据库存放地点 mkdir -p /data/zabbix rm -rf /data/zabbix #

FFMPEG 库移植到 VC 需要的步骤

在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步.(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http://ffmpeg.zeranoe.com/builds/). (1)像其他额外库一样,设置VC的Include路径为你c:\msys\local\include,设置VClib路径为次c:\msys\local\bin,增加操作系统的一个Path c:\msys\local\bin(这一步好像不是必

glog日志库移植Android平台

1.在linux平台下使用ndk交叉编译链编译glog生成libglog.a静态库. 2.将生成的库文件与头文件放到Android项目中,使用JNI方法调用. 3.编译遇到错误"stderr.stdout未定义",(此处查阅n多文档,貌似Android平台下将stderr.与stdout移除了改为了实际的方法),so 直接在调用的地方 1 #undef stderr; 2 FILE *stderr = &__sF[2]; 3 #undef stdout; 4 FILE *std

linux下使用SWIG将C/C++库移植到Java

系统:CentOS 6.6 步骤: 1.安装swig 直接 yum -y install swig即可 安装java和c++编译环境,略过 我直接 yum -y install java,发现系统已自带java 2.准备源文件和接口文件 在运行SWIG之前,首先要准备好C/C++程序的源文件(example.c),并编写接口文件(example.i).这里采用一个简单的例子,要封装的是一个叫做example的模块. 我们要导出Example.c文件中所有变量和函数中.如下所示. <span st

解决将龙邱oled库移植到野火工程里,oled汉字无法显示问题

第一,检查oled是否和单片机控制引脚正确相连. GND VCC CLK:时钟信号 miso RST: DC:DATE COMMAND/CONTROL CS:CHIP SELECT 第二,检查工程里是否有要显示的字的字库. 第三,如果程序编译正确,英文.字符等也显示正常,唯独中文汉字不能显示, 那么,检查文件编码,尤其是当从一个工程一直到另一个工程里, 在IAR编码很存在问题,界面中文编码显示正常不一定代码写进单片机里的汉字就正确,请看下面截图,注意区分编码不同. 错误编码 正确编码,从英文半角