Yocto ffmpeg 编译

it2023-05-05  69

1. 下载FFMPEG     http://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2

2. 解压ffmpeg-4.2.2.tar.bz2

   $ tar xvjf ffmpeg-4.2.2.tar.bz2

3. 安装yocto工具链

$ mkdir -p ffmpeg-4.2.2/tool_chains $ ./oecore-x86_64-aarch64-toolchain-nodistro.0.sh -yd /worktemp/ffmpeg-4.2.2/tool_chains

4. 添加编译脚本

#!/bin/bash set -e TOP_DIR=${PWD} PREFIX=$TOP_DIR/out/ source $TOP_DIR/tool_chains/environment-setup-aarch64-poky-linux GENERAL_64BIT="\ --enable-cross-compile \ --extra-libs="-lgcc" \ --arch=aarch64 \ --cpu=cortex-a53 --cc=${CC} \ --cross-prefix=aarch64-poky-linux- \ --nm=aarch64-poky-linux-nm" GENERAL_32BIT="\ --enable-cross-compile \ --extra-libs="-lgcc" \ --arch=arm \ --cc=arm-linux-gnueabi-gcc \ --cross-prefix=arm-linux-gnueabi- \ --nm=arm-linux-gnueabi-nm" MODULES="\ --disable-avdevice \ --disable-filters \ --disable-programs \ --disable-network \ --disable-avfilter \ --disable-postproc \ --disable-encoders \ --disable-protocols \ --disable-hwaccels \ --disable-doc" VIDEO_DECODERS="\ --enable-decoder=h264 \ --enable-decoder=mpeg4 \ --enable-decoder=mpeg2video \ --enable-decoder=mjpeg \ --enable-decoder=mjpegb" AUDIO_DECODERS="\ --enable-decoder=aac \ --enable-decoder=aac_latm \ --enable-decoder=atrac3 \ --enable-decoder=atrac3p \ --enable-decoder=mp3 \ --enable-decoder=pcm_s16le \ --enable-decoder=pcm_s8" DEMUXERS="\ --enable-demuxer=h264 \ --enable-demuxer=m4v \ --enable-demuxer=mpegvideo \ --enable-demuxer=mpegps \ --enable-demuxer=mp3 \ --enable-demuxer=avi \ --enable-demuxer=aac \ --enable-demuxer=pmp \ --enable-demuxer=oma \ --enable-demuxer=pcm_s16le \ --enable-demuxer=pcm_s8 \ --enable-demuxer=wav" VIDEO_ENCODERS="\ --enable-encoder=huffyuv \ --enable-encoder=ffv1 \ --enable-encoder=mjpeg" AUDIO_ENCODERS="\ --enable-encoder=pcm_s16le" MUXERS="\ --enable-muxer=avi" PARSERS="\ --enable-parser=h264 \ --enable-parser=mpeg4video \ --enable-parser=mpegaudio \ --enable-parser=mpegvideo \ --enable-parser=aac \ --enable-parser=aac_latm" function build_ARM64 { ./configure --target-os=linux \ --prefix=${PREFIX} \ ${GENERAL_64BIT} \ --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 " \ --disable-shared \ --enable-static \ --enable-zlib \ --disable-everything \ ${MODULES} \ ${VIDEO_DECODERS} \ ${AUDIO_DECODERS} \ ${VIDEO_ENCODERS} \ ${AUDIO_ENCODERS} \ ${DEMUXERS} \ ${MUXERS} \ ${PARSERS} make clean make install } build_ARM64 echo Linux ARM builds finished

5. 修改 ffmpeg-4.2.2/tool_chains/environment-setup-aarch64-poky-linux [ffmpeg configure 兼容性]

    CC/CXX/CPP 拿掉-mcpu=cortex-a53+crypto -mtune=cortex-a53

#export CC="aarch64-poky-linux-gcc -mcpu=cortex-a53+crypto -mtune=cortex-a53 --sysroot=$SDKTARGETSYSROOT" #export CXX="aarch64-poky-linux-g++ -mcpu=cortex-a53+crypto -mtune=cortex-a53 --sysroot=$SDKTARGETSYSROOT" #export CPP="aarch64-poky-linux-gcc -E -mcpu=cortex-a53+crypto -mtune=cortex-a53 --sysroot=$SDKTARGETSYSROOT" export CC="aarch64-poky-linux-gcc --sysroot=$SDKTARGETSYSROOT" export CXX="aarch64-poky-linux-g++ --sysroot=$SDKTARGETSYSROOT" export CPP="aarch64-poky-linux-gcc --sysroot=$SDKTARGETSYSROOT"

6. 执行编译脚本:

  $ ./build.sh

如有发现configure 提示错误,可以查看 ffbuild/config.log文件定位问题.

---------------------------------------------------------------------------------------------- EX: //测试 ./configure --disable-shared --enable-static --disable-x86asm --prefix=/work1/liaocy/ffmpeg-4.2.2/out

最新回复(0)