FFMPEG android 多CPU架构快速编译方案

前面文章我们已经构架了ffmpeg在android下的编译方案,本文介绍一下ffmpeg视频开发中多CPU架构编译的一些注意事项和应用开发的一些注意事项。

在android下,通常有arm,armv7,armv8a,x86等架构。尤其中间两种在嵌入式中用得越来越多。要想编译进去,需要注意以下几点:

1. NDK的编译版本至少要大于等于r10,建议使用r10e. 这是因为在早期的版本中,并不支持64位CPU架构。

2. 在编译ffmpeg的时候,需要设置pkgconfig的支持,具体请参考我的编译脚本

3. 在编译下x264的时候,如果使用了armv8a 64 系统需要对neno和asm支持,这是因为在新的架构中做了大量的优化,不然configure可能无法通过,同时需要注意编译器链接的位置和库安装的目录保持一致。

贴上支持多架构的编译主脚本,其他脚本请访问我的github获取

https://github.com/Car-eye-team/Car-eye-FFMPEG

#!/bin/bash
. abi_settings.sh $1 $2 $3

pushd ffmpeg
make clean

./configure \
--cross-prefix="$CROSS_PREFIX" \
--sysroot="$NDK_SYSROOT" \
--enable-libfreetype \
--disable-avdevice \
--enable-small \
--disable-vda \
--disable-iconv \
--disable-outdevs \
--enable-pic \
--enable-libx264 \
--enable-neon \
--enable-yasm \
--enable-gpl \
--disable-debug \
--disable-ffserver \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-symver \
--disable-doc \
--enable-static \
--disable-shared \
--enable-postproc \
--target-os=android \
--arch="$NDK_ABI" \
--enable-cross-compile \
--pkg-config="${2}/ffmpeg-pkg-config" \
--prefix="${2}/build/${1}" \
--extra-cflags="-I${TOOLCHAIN_PREFIX}/include -I${TOOLCHAIN_PREFIX}/include/freetype2 " \
--extra-ldflags="-L${TOOLCHAIN_PREFIX}/lib  " \
--extra-libs="-lpng " \
--extra-cxxflags="$CXX_FLAGS" || exit 1
make  && make install && make clean || exit 1
popd

有关详细的ffmpeg音视频开发SDK的源码,请参考我前面文章



FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)


FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

car-eye开源官方网址:www.car-eye.cn   

car-eye 流媒体平台网址:www.liveoss.com    

car-eye 技术官方邮箱: [email protected]    
car-eye技术交流QQ群: 590411159     

FFMPEG android 多CPU架构快速编译方案_第1张图片

CopyRight©  car-eye 开源团队 2018






FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

你可能感兴趣的:(流媒体,car-eye,流媒体)