zoukankan      html  css  js  c++  java
  • 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:winshareHI3518EV200ortp-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

  • 相关阅读:
    PHP 5.5.0 Alpha5 发布
    Ubuntu Touch 只是另一个 Android 皮肤?
    MariaDB 10 已经为动态列提供文档说明
    Percona Toolkit 2.1.9 发布,MySQL 管理工具
    Oracle Linux 6.4 发布
    Ruby 2.0.0 首个稳定版本(p0)发布
    Apache Pig 0.11.0 发布,大规模数据分析
    Node.js 0.8.21 稳定版发布
    红薯 MySQL 5.5 和 5.6 默认参数值的差异
    Django 1.5 正式版发布,支持 Python 3
  • 原文地址:https://www.cnblogs.com/Ocean-Star/p/8920884.html
Copyright © 2011-2022 走看看