1、下载源码
从https://github.com/FFmpeg/FFmpeg/releases 下载需要的版本;此处下载的是FFmpeg-n4.2.3;
2、配置选项
可将编译选项写入到一个文本文件configure_help.txt中以查看编译选项,执行:./configure --help > configure_help.txt
在build.sh脚本中添加编译选项:
./configure
--prefix="/home/tianyu/share/ffmpeg
--enable-shared
--enable-cross-compile
--target-os=linux
--arch=aarch64
--cc=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc
--cxx=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++
--enable-gpl
--extra-libs=-ldl
--extra-cflags="-fPIC"
--extra-ldflags=-Wl,-Bsymbolic
--extra-libs="-lpthread -lm"
3、编译
make -j4
//-j [N], --jobs[=N] 同时允许 N 个任务;无参数表明允许无限个任务。make 命令参数
出现错误:
STRIP ffprobe strip: Unable to recognise the format of the input file `ffprobe_g' Makefile:104: recipe for target 'ffprobe' failed make: *** [ffprobe] Error 1 make: *** Waiting for unfinished jobs....
指定strip:
make STRIP=aarch64-himix100-linux-strip -j4
make STRIP=aarch64-himix100-linux-strip install
4、生成的相关文件在之前指定的目录下
执行完后会在指定目录下生成bin, include, lib, share四个目录,其中bin目录下会包含2个可执行文件ffmpeg和ffprobe,
执行此两个文件需要LD_LIBRARY_PATH指向动态库;include目录下包含8个ffmpeg模块的头文件;lib目录下包含生成的动态库和静态库;share目录包含了一些examples等文件;