1. 程式人生 > >5、ORTP庫移植

5、ORTP庫移植

工作目錄 man RM inux 交叉 libtool hub ptp XP

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使用

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

5、ORTP庫移植