libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。ffmpeg 中带有264的解码,没有编码,需要添加x264。
fdk_aac被许多人认为几乎是最好的aac编码器,音质顺序大概为libfdk_aac>libfaac>aac>libvo_aacenc。
librtmp用来接收、发布RTMP协议格式的数据。FFmpeg支持RTMP协议,将librtmp编译进去后支持协议RTMPE、RMTPTE、RTMPS。这里我直接使用FFmpeg自带的RTMP功能。
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
1、下载源码
1.1 libx264
下载地址:http://www.videolan.org/developers/x264.html 。我所使用版本为x264-snapshot-20171109-2245
1.2 fdk_aac
使用下面的命令进行下载:
$ wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
1.3 FFmpeg
下载地址:http://ffmpeg.org 。我所使用版本为ffmpeg-3.4。
2、编译安装
2.1 libx264
配置
./configure --prefix=/home/vmuser/wqj/ffmpge/libx264 --enable-static --disable-shared --host=arm-linux --cross-prefix=arm-hisiv100nptl-linux- --disable-asm
编译
执行make命令进行编译。
$ make
安装
执行make install命令安装到指定目录。
$ make install
· 将安装目录下的bin/、include/、lib/下所需要文件拷贝到开发板根目录下的对应位置。
2.2 fdk_aac
配置
运行autogen.sh生成configure文件
会出错:
解决:
sudo apt-get install aptitude
sudo aptitude install libtool
重新运行autogen.sh即可
配置configure,生成Makefile。
./configure --prefix=/home/vmuser/wqj/ffmpge/fdk_aac --host=arm-linux --cross-prefix=arm-hisiv100nptl-linux- --disable-shared
Make
Make install
· 将安装目录下的bin/、include/、lib/下所需要文件拷贝到开发板根目录下的对应位置。
2.3FFmpeg
配置
/home/vmuser/wqj/ffmpge/ffmpeg
./configure --prefix=/home/vmuser/wqj/ffmpge/ffmpeg --enable-cross-compile --cross-prefix=arm-hisiv100nptl-linux- --arch=arm --target-os=linux --enable-gpl --enable-nonfree --extra-cflags="-I/home/vmuser/wqj/ffmpge/fdk_aac/include/fdk-aac \ -I/home/vmuser/wqj/ffmpge/libx264/include --extra-ldflags="-L/home/vmuser/wqj/ffmpge/fdk_aac/lib" \ --enable-libfdk-aac --enable-libx264 --pkg-config-flags=--static \ --extra-libs="-ldl -fpic -shared -lSDL2" --enable-shared
./configure --enable-cross-compile --arch=arm --target-os=linux --enable-static --disable-shared --disable-yasm --enable-memalign-hack --enable-gpl --cc=arm-hisiv100nptl-linux-gcc --enable-libx264 --extra-cflags=-I/home/vmuser/wqj/ffmpge/libx264/include --extra-ldflags=-L/home/vmuser/wqj/ffmpge/libx264/lib --prefix=/home/vmuser/wqj/ffmpge/ffmpeg --extra-libs=-ldl