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