iOS: FFmpeg

yasm安装

#  curl http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz >yasm.tar.gz 现在的版本

tar xzvf yasm.tar.gz

cd yasm-1.3.0

./configure

make

sudo make install



  • 解决方案2

    • 进入下载后的yasm文件夹,通过编译安装命令yasm

        ./configure && make -j 4 && sudo make install
  • 解决方案3

    • 使用Homebrew包管理器,进行安装

        brew install yasm
  • 测试是否安装成功

      yasm --verision




现在视频直播非常的火,所以在视频直播开发中,使用的对视频进行遍解码的框架显得尤为重要了,其实,这种框架蛮多的,这次主要介绍一下FFmpeg视频播放器的集成和使用,FFmpeg是视频编解码的利器。


准备条件

  • 先下载文件:https://github.com/libav/gas-preprocessor

    复制 gas-preprocessor.pl 到 /usr/local/bin 下 (网上很多教程都让放在 /usr/bin 下,但是现在OS X的 usr/bin 目录不可写,所以放在 /usr/local/bin )

    修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl

    • 安装yasm

    具体步骤如下:

    1. 下载脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script

    2. 解压,找到文件 build-ffmpeg.sh

    解压后 cd 进目录 ,执行

    $ ./build-ffmpeg.sh

  • 编译支持arm64架构的静态库

    ./build-ffmpeg.sh arm64
  • 编译适用于armv7x86_64(64-bit simulator)的静态库

    ./build-ffmpeg.sh armv7 x86_64
  • 编译合并的版本

    ./build-ffmpeg.sh lipo


    3. 执行服本文件:./build-ffmpeg.sh, 由于本人没有事先安装Yasm 执行脚本文件会出错,

    如下:

    [js]  view plain  copy
    1. MAC:FFmpeg-iOS-build-script-master-2 jinsonglnan$ ./build-ffmpeg.sh   
    2. Yasm not found  
    3. Homebrew not found. Trying to install...  
    4. Whoops, the Homebrew installer has moved! Please instead run:  
    5. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  
    6. Also, please ask wherever you got this link from to update it to the above.  
    7. Trying to install Yasm...  
    8. ./build-ffmpeg.sh: line 67: brew: command not found  

    意思就是说,没有yasm, 看到提示执行 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装

    5.把ffmpeg-iOS文件加入到工程中

    6.添加一个头文件引用 #include "avformat.h"

    添加一个api语句:av_register_all();给一个类文件.m后缀改为.mm,开启混编模式。

    运行工程,如果没有报错,则表明编译成功

    7.其他注意细节 

    编译的时候报错: 'libavcodec/avcodec.h' file not found ,修改Header search paths 里的路径:$(PROJECT_DIR)/FFmpeg-iOS/include

    加入External libraries:

    [js]  view plain  copy
    1. libz.dylib  
    2. libbz2.dylib  
    3. libiconv.dylib  

    8.编译好,写了个demo:点此下载


5.在工程中导入其他库文件。

libz.tbd 、ibbz2.tbd 、 libiconv.tbd,在 3.0以后需要添加另外2个框架 VideoToolbox.framework 和 CoreMedia.framework 和AudioToolbox.framework

5.编译

因为这些库是C++,所以需要把一个文件后缀改为 .mm,这样Xcode就会自动打开C++混编,一般会把 AppDelegate.m 改为AppDelegate.mm

然后随便找个 文件,导入 avcodec.h

#include "avcodec.h"

- (void)viewDidLoad {
   [super viewDidLoad];    
   avcodec_register_all();
}

可以运行起来说明配置成功。










 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值