1. 程式人生 > 其它 >Firefly1126中RTMP推流庫安裝配置

Firefly1126中RTMP推流庫安裝配置

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

https://www.zlib.net/

下載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命令