美文网首页软件开发
FFmpeg for iOS 3.4 编译与集成

FFmpeg for iOS 3.4 编译与集成

作者: Goning | 来源:发表于2018-04-23 13:45 被阅读554次

    FFmpeg是一套开源的多媒体处理方案,可以应用于流媒体或直播中,能够实现音视频的编解码以及其他音视频处理等,非常强大。这里简单介绍iOS平台的FFmpeg静态库的编译与集成。

    1.下载编译脚本

    点击此链接,进入github下载编译脚本:GitHub - kewlbear/FFmpeg-iOS-build-script: Shell scripts to build FFmpeg for iOS and tvOS
    下载完成并解压后得到:

    FFmpeg的编译脚本目录

    2.运行编译脚本

    打开终端,进入文件目录,运行命令行./build-ffmpeg.sh

    编译过程中可能会遇到的错误:
    1、报错yasm没有安装,按提示操作安装
    2、报错"xcrun -sdk iphoneos clang is unable to create an executable file.",运行命令行sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/后重新编译
    3、报错"src/libavutil/arm/asm.S:50:9: error: unknown directive .arch armv7-a",将编译脚本build-ffmpeg.sh中ARCHS="arm64 armv7 x86_64 i386"armv7去掉后重新编译

    编译会花费一段时间,如果终端没有报错并显示如下,说明编译成功:

    编译完成

    这个时候目录下会生成编译后的静态库及源码,如下图:

    编译完成后的目录

    其中,FFmpeg-iOS即是我们需要用到的framework


    3.集成FFmpeg-iOS

    将整个FFmpeg-iOS文件夹拖入工程中,并引入相关的头文件,例如:
    #import "libavcodec/avcodec.h",如果报错'libavcodec/avcodec.h' file not found

    'libavcodec/avcodec.h' file not found

    解决方法如下:
    在工程的Build Settings中搜索search,找到Header Search PathsLibrary Search Paths,将Library Search Paths中的ffmpeg的lib路径$(PROJECT_DIR)/FFmpegTest/FFmpeg-iOS/lib复制粘贴到Library Search Paths中,并将lib改为include

    添加头文件的声明

    如果还出现了链接报错clang: error: linker command failed with exit code 1 (use -v to see invocation),可能是因为缺少系统库,需要#import <VideoToolbox/VideoToolbox.h>,并且需要在工程Build Phases中的Link Binary With Libraries中Add items:libz.1.2.5.tbdlibbz2.1.0.tbdlibiconv.2.4.0.tbd,成功编译。

    相关文章

      网友评论

        本文标题:FFmpeg for iOS 3.4 编译与集成

        本文链接:https://www.haomeiwen.com/subject/pmmklftx.html