海思3559AV100芯片内部提供了编码和解码的功能,但是没有提供RTSP和RTMP等流媒体接入的功能。一般在使用的时候,引入ffmpeg或者live555作为拉流推流工具,送到3559A内部进行MPP编解码,绑定VPSS等功能做进一步处理。本文记录了如何在3559A上配置带有x264库的ffmpeg。
这里我把所有的环境安装在/home/xxx/work目录下
git clone https://code.videolan.org/videolan/x264 //下载x264 cd x264使用下面的代码进行x264环境配置,其中prefix设置安装目录,未定义时默认安装在/usr/local下
CC=aarch64-himix100-linux-gcc ./configure --prefix=/home/xxx/work/x264/build --enable-shared --host=arm-linux --cross-prefix=aarch64-himix100-linux- --disable-asm make -j16 sudo make install成功后会在/home/xxx/work/x264/build看到生成的文件,如图所示,如果是加锁状态,使用chmod命令增加权限。
ffmpeg可以去官网下载源码,这里我使用的是4.0.6的版本 ffmpeg源码传送门:http://www.ffmpeg.org/download.html 下载后解压,重命名为ffmpeg-4.0.6-arm-x264(因为在系统中需要配置不同环境下的ffmpeg,故分别命名为不同的名称,这里我第一个是x86端的,第二个是arm端的,第三个是arm端带有x264的)
使用下面的代码进行ffmpeg环境配置,其中prefix设置安装目录,未定义时默认安装在/usr/local下
./configure \ --prefix=/home/xxx/work/ffmpeg-4.0.6-arm-x264/build \ --disable-static \ --enable-shared \ --disable-debug \ --disable-asm \ --disable-ffplay \ --disable-ffprobe \ --enable-small \ --disable-doc \ --enable-demuxer=rtsp \ --enable-parser=h264 \ --enable-cross-compile \ --enable-libx264 \ --enable-nonfree \ --enable-gpl \ --arch=aarch64 \ --target-os=linux \ --cross-prefix=aarch64-himix100-linux- \ --extra-cflags=-I/home/xxx/work/x264/build/include \ --extra-ldflags=-L/home/xxx/work/x264/build/lib cd ffbuild gedit config.mak编辑config.mak文件,将标有黄色对应的行数的代码改为如图所示
make -j16 sudo make install成功后会在/home/xxx/work/ffmpeg-4.0.6-arm-x264/build看到生成的文件,如图所示,如果是加锁状态,使用chmod命令增加权限。 如图所示,即编译成功可以使用。