Firefly1126中RTMP推流庫安裝配置
阿新 • • 發佈:2022-04-14
Firefly1126中RTMP推流庫安裝配置
1,搭建rtmp客戶端,首先下載librtmp原始碼在Ubuntu上準備編譯,執行下面的命令下載,因為librtmp庫使用openssl,zib,因此這兩者也要一起下載
下載openssl1.0.2s.tar.gz
https://www.openssl.org/source/old/1.0.2/
下載zlib1.2.11.tar.gz
下載librtmp
git clone https://github.com/Bingnan/rtmpdump-2.4.git
2,解壓zlib與openssl
tar -zxvf openssl-1.0.2s.tar.gz tar -zxvf zlib-1.2.11.tar.gz
3,交叉編譯openssl
輸入配置命令
setarch i386 ./config no-asm shared --prefix=/home/kxq/Desktop/librtmp
setarch i386宣告生成32位CPU,64位不需要這個指令
share 宣告生成動態庫
no-asm 指在交叉編譯過程中不使用匯編加速,因為open-ssl的彙編程式碼對arm不支援
之後修改生成的makefile
將62行,69,70,72修改為
CC= arm-linux-gnueabihf-gcc AR= arm-linux-gnueabihf-ar $(ARFLAGS) r RANLIB= arm-linux-gnueabihf-ranlib NM= arm-linux-gnueabihf-nm
之後執行make,makeinstall安裝
4,交叉編譯zlib
與openssl相似,首先進行配置,進入zlib的目錄,開啟終端,輸入以下命令
./configure --prefix=/home/kxq/Desktop/librtmp
之後修改makefile中的19,30,31,39,41,修改為
CC=arm-linux-gnueabihf-gcc LDSHARED=arm-linux-gnueabihf-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map CPP=arm-linux-gnueabihf-gcc -E AR=arm-linux-gnueabihf-ar RANLIB=arm-linux-gnueabihf-gcc-ranlib
之後make , make install 即可以安裝到桌面下的librtmp資料夾
5,交叉編譯rtmpdump-2.4
進入檔案根目錄,修改其中的makefile,在CC=$(CROSS_COMPILE)gcc之前加入以下語句
CROSS_COMPILE = /home/kxq/Desktop/rv1126_rv1109_linux_release_20210306/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
XCFLAGS = -I/home/kxq/Desktop/librtmp/include/
XLDFLAGS = -L/home/kxq/Desktop/librtmp/lib/
其中,XCFLAGS和XLDFLAGS分別為openssl和zlib的標頭檔案與庫檔案目錄
之後進入librtmp資料夾中,修改makefile
第3行改為
prefix=/home/kxq/Desktop/armrtmp
是rtmp庫的安裝目錄,之後在CC=$(CROSS_COMPILE)gcc之前加入以下語句
CROSS_COMPILE = /home/kxq/Desktop/rv1126_rv1109_linux_release_20210306/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
XCFLAGS = -I/home/kxq/Desktop/librtmp/include/
XLDFLAGS = -L/home/kxq/Desktop/librtmp/lib/
之後在librtmp資料夾目錄的終端下執行make,make install命令