-
从https://github.com/FFmpeg/FFmpeg/releases 下载你需要的版本;
-
因为ffmpeg编译选项较多,为了更方便的了解有哪些选项,可将编译选项写入到一个文本文件configure_help.txt中,执行:
./configure --help > configure_help.txt
打开configure_help.txt,结果如下:会对支持的各个选项进行简单的介绍说明
3. 根据自己的实际需要,添加某些选项,这里只加了些必要的选项,放在了build.sh脚本里,如下,执行此脚本:
./configure \
--prefix="/home/kanggo/hisi/prefix" \
--enable-shared \
--enable-cross-compile \
--target-os=linux \
--arch=arm \
--cc=/opt/hisi-linux/x86-arm/arm-hisiv600-linux/bin/arm-hisiv600-linux-gnueabi-gcc \
--cxx=/opt/hisi-linux/x86-arm/arm-hisiv600-linux/bin/arm-hisiv600-linux-gnueabi-g++ \
--enable-gpl \
--extra-libs=-ldl \
--extra-cflags="-fPIC" \
--extra-ldflags=-Wl,-Bsymbolic \
--extra-libs="-lpthread -lm"
然后在依次执行:
make -j4
make install
出现错误:
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:
首先:export PATH=/opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin:$PATH
make STRIP=arm-hisiv600-linux-strip -j4
make STRIP=arm-hisiv600-linux-strip install
- 执行完后会在你指定的xxxx目录下生成bin, include, lib, share四个目录,其中bin目录下会包含2个可执行文件ffmpeg和ffprobe,执行此两个文件需要LD_LIBRARY_PATH指向动态库;include目录下包含8个ffmpeg模块的头文件;lib目录下包含生成的动态库和静态库;share目录包含了一些examples等文件;
- 将bin目录和lib下的动态库拷贝到海思板子上同一个目录下验证,执行结果如下,说明编译成功:
注意:如果出现“ln: failed to create symbolic link ‘libavutil.so’: Operation not supported”错误,请参考:添加链接描述
将ffmpeg源程序放入到ubuntu内部编译