ijkplayer-iOS集成FFmpeg报错处理办法

455 阅读1分钟

1.C compiler test failed.

原因:compile-ffmpeg.sh all 命令找不到 Xcode
解决办法:

compile-ffmpeg.sh clean   #重置清理编译环境
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer
compile-ffmpeg.sh all

2./libavutil/arm/asm.S:50:9: error: unknown directive【常见问题】

 原因:编译armv7库失败,已经被苹果放弃。

2.1 修改 compile-ffmpeg.sh

找到下面的内容

compile-ffmpeg.sh FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64"

更改为

FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"

2.2 进入tools文件,修改 do-compile-ffmpeg.sh

找到下面的内容

elif [ "$FF_ARCH" = "armv7" ]; then
    FF_BUILD_NAME="ffmpeg-armv7"
    FF_BUILD_NAME_OPENSSL=openssl-armv7
    FF_XCRUN_OSVERSION="-miphoneos-version-min=6.0"
    FF_XCODE_BITCODE="-fembed-bitcode"
    FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM"
#    FFMPEG_CFG_CPU="--cpu=cortex-a8"
elif [ "$FF_ARCH" = "armv7s" ]; then

更改为

elif [ "$FF_ARCH" = "armv7" ]; then
    FF_BUILD_NAME="ffmpeg-armv7"
    FF_BUILD_NAME_OPENSSL=openssl-armv7
    FF_XCRUN_OSVERSION="-miphoneos-version-min=6.0"
    FF_XCODE_BITCODE="-fembed-bitcode"
#    FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM"
    FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-pic --disable-asm"
#    FFMPEG_CFG_CPU="--cpu=cortex-a8"
elif [ "$FF_ARCH" = "armv7s" ]; then

3. 重新执行清理命令

./compile-ffmpeg.sh clean

4. 重新执行安装命令

./compile-ffmpeg.sh all