美文网首页
iOS FFmpeg环境搭建

iOS FFmpeg环境搭建

作者: RichieQ | 来源:发表于2021-06-07 10:24 被阅读0次

一、背景

  移动端学习音视频开发,FFmpeg是必学的框架之一。FFmpeg有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。
  需求经常是多变的,单纯使用别人已编译好的静态库,正常是不能满足需求的,需要对FFmpeg源码做一些修改,才能满足项目需要。因此要学会FFmpeg的编译和使用

二、编译

相关资源下载链接:
https://pan.baidu.com/s/1IIuCfyAxNwpJC_MNBzgaZA 密码:sn3u

1、下载 gas-preprocessor

此文件是编译FFmpeg必备的脚本文件,使用如下命令将其拷贝进bin下
cp -f /xxx/gas-preprocessor.pl /usr/local/bin/

2、安装yasm

yasm是一个完全重写的NASM汇编并支持x86和AMD64指令
brew install yasm

3、安装nasm

brew install nasm

4、下载[x264-iOS编译脚本]

(https://github.com/kewlbear/x264-ios)及源码

  • 下载x264编译脚本解压后如下


    image.png
  • 下载最新版源码解压后如下


    image.png
  • 将源码文件夹改为x264并放至编译脚本文件夹x264-ios-master

    image.png
  • 编译
    1、编译所有架构 ./build-x264.sh
    2、编译指定架构 ./build-x264.sh [arm64/x86_64/armv7/armv7s]
    3、x264-iOS文件夹包含所有架构的包

编译错误解决方案

1、

image.png
安装nasm
brew install nasm
2、编译i386的时候提示 No working C compiler found错误,这是由于脚本里支持的ios版本过低导致,修改最低支持版本即可
image.png
5、 下载FFmpeg-iOS编译脚本源码

注意:在这里可以仅下载FFmpeg-iOS编译脚本,不用下载源码,执行脚本会自动下载源码,如果不想每次自动下载,可以手动下载源码,稍微修改下FFmpeg编译脚本即可。

  • 修改脚本(build-ffmpeg.sh文件)的内容

    image.png
  • 将x264编译好的文件夹(x264-iOS)重命名为fat-x264,并放在FFmpeg-iOS-build-script-master这个文件夹中


    image.png
  • 如果项目是不支持bitcode选项的话,需要修改build-ffmepg.sh

    image.png
  • 如果要使用avutil.h相关功能,需要更改脚本

注意: FFmpeg框架中的一个结构体命名为"AVMediaType"与苹果自带框架产生冲突,所以,我们必须修改编译脚本,使用"FFmpegAVMediaType"带替换"AVMediaType".这里需要在脚本文件中添加如下命令行,即将AVMediaType替换为FFmpegAVMediaType. 注意: $SOURCE为ffmpeg的根目录.
grep -rl -w AVMediaType ./$SOURCE | xargs sed -i .bak s@AVMediaType@FFmpegAVMediaType@g

三、使用

1、新建iOS工程

因为FFmpeg中涉及C,C++混编,需要将用到ffmpeg库的文件后缀名改为.mm,本文是将ViewController.m重命名为ViewController.mm

2、添加FFmpeg库
  • 将FFmpeg-iOS和fat-x264拖入项目中


    image.png
  • 添加系统依赖库


    image.png
  • bitcode设置为NO


    image.png
  • 在Build Setting中设置头文件与库的位置


    image.png

四、参考文章

借鉴小东邪的文章https://juejin.cn/post/6844903857097539591

相关文章

网友评论

      本文标题:iOS FFmpeg环境搭建

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