5、ORTP庫移植
阿新 • • 發佈:2018-06-03
工作目錄 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庫移植