嵌入式平台:RK3308
交叉编译工具:aarch64-linux-gnu-gcc
下载 x264:git clone VideoLAN / x264
配置,编译
./configure --prefix=/home/wpupup/arm-lib/x264 --enable-shared --enable-static --host=arm-linux --cross-prefix=aarch64-linux-gnu- --disable-opencl --enable-pic --disable-asm
然后make、makeinstall:
make install后,会在预设的文件夹下面生成库文件
编译ffmpeg,配置configure,添加x264的路径:
./configure
--prefix=/home/wpupup/arm-lib/ffmpeg
--enable-filters
--enable-asm
--enable-ffmpeg
--enable-ffplay
--enable-ffprobe
--enable-doc
--enable-cross-compile
--cross-prefix=aarch64-linux-gnu-
--arch=aarch64
--target-os=linux
--host-os=linux
--enable-gpl
--enable-version3
--enable-small
--enable-shared
--enable-static
--enable-encoder=rawvideo
--enable-encoder=mpeg2video
--enable-encoder=mp2
--enable-encoder=libx264
--enable-libx264
--enable-muxer=adts
--enable-muxer=mpegts
--enable-muxer=mpeg2video
--enable-muxer=rtsp
--enable-muxer=hls
--enable-muxer=h264
--enable-muxer=rtp
--enable-muxer=avi
--enable-muxer=flv
--enable-muxer=mp4
--enable-demuxer=mpegts
--enable-demuxer=rtsp
--enable-demuxer=hls
--enable-demuxer=h264
--enable-demuxer=rtp
--enable-demuxer=flv
--enable-muxer=mp4
--enable-demuxer=mpegts
--enable-demuxer=rtsp
--enable-demuxer=hls
--enable-demuxer=h264
--enable-demuxer=rtp
--enable-demuxer=flv
--enable-demuxer=avi
--enable-demuxer=mpegps
--enable-demuxer=mpegtsraw
--enable-demuxer=mpegvideo
--enable-parser=aac
--enable-parser=h264
--enable-parser=mpeg4video
--enable-parser=mpegvideo
--enable-parser=mpegaudio
--enable-bsf=h264_mp4toannexb
--enable-protocol=http
--enable-protocol=rtp
--enable-protocol=rtmpts
--enable-protocol=https
--enable-protocol=hls
--enable-protocol=file
--enable-protocol=data
--enable-gray
--enable-safe-bitstream-reader
--enable-swscale
--enable-swscale-alpha
--enable-filter=scale
--extra-cflags="-I/home/wpupup/arm-lib/x264/include"
--extra-ldflags="-L/home/wpupup/arm-lib/x264/lib"
然后 make make install ,在预设的路径下,会生成如下图所示的库文件
最后做个简单的测试:
#include<libavutil/opt.h>
#include<libavcodec/avcodec.h>
#include<libavutil/common.h>
#include<libavutil/imgutils.h>
#include<libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
void main()
{
avcodec_register_all();
}
更完整的configure