SRT(Secure,Reliable,Transport)是Haivision公司開發的一套開源媒體傳輸協議,用於在不穩定的網路環境下,優化媒體數據的傳輸性能。 SRT的碼流加密基於開源庫openssl實現,採用了AES加密,秘鑰可以選擇128、192、256bit三種長度;而抗丟包特性基於自動重 ...
SRT(Secure,Reliable,Transport)是Haivision公司開發的一套開源媒體傳輸協議,用於在不穩定的網路環境下,優化媒體數據的傳輸性能。 SRT的碼流加密基於開源庫openssl實現,採用了AES加密,秘鑰可以選擇128、192、256bit三種長度;而抗丟包特性基於自動重傳演算法實現。 如果想要瞭解SRT更詳細的信息,除了訪問github倉庫(https://github.com/Haivision/srt)之外,還可以訪問其官網https://www.srtalliance.org/。
開源庫SRT編譯說明
我編譯的源碼下載自SRT的github倉庫(https://github.com/Haivision/srt),版本是1.3.2. SRT模塊交叉編譯之前,需要先configure,configure時必須的兩個參數分別是:“--prefix”和“--with-compiler-prefix”。 “--prefix”表示的是編譯完成之後,“make install”命令將編譯結果拷貝的目錄; “--with-compiler-prefix”則是編譯器的路徑。以tx1平臺為例,其配置命令是:./configure --prefix=/home/xxx/git_base/srt/release/tx1/ --with-compiler-prefix=/opt/nvidia/gcc-linaro-5.3.1-2016. 05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
configure之後,依次make;make install; 編譯結果就被拷貝到了“--prefix”所指定的目錄了。 需要註意的是: --有些比較舊的編譯器,可能還需要在configure時,加上選項“--disable-c++11” --有些編譯環境,沒有SRT依賴的openssl庫;編譯時會出錯,這時就需要先編譯openssl,並安裝到交叉編譯環境中
開源庫openssl編譯說明
openssl的編譯方法與SRT類似,我測試的源碼來自於openssl的官網(https://www.openssl.org/source/),版本是v1.1.1b。 交叉編譯前,也需要configure,必須的選項分別是“--prefix”、“CROSS_COMPILE”、“CC” 以hisiv500編譯器為例,configure的例子如下:./Configure linux-generic32 no-asm shared no-async --prefix=/home/xxx/git_base/openssl/release/hisiv500/ CROSS_COMPILE=/opt/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi- CC=gcc
需要註意的是:
--選項 “linux-aarch64”與“linux-generic32”分別代表64位ARM和32位處理器, 如果是其他類型的處理器,建議用./Configure --help來找一個對應的處理器
--選項“-no-asm”,表示編譯時,不用彙編加速
--選項“no-async”,表示編譯器不支持ucontext庫,一般的編譯環境都支持,除了部分海思
--編譯之後,還需要把編譯結果,拷貝到編譯環境的動態庫目錄,cp時註意加選項“-rdf”