FFmpeg

集成

  1. 下载FFmpeg For iOS编译脚本;
  2. 打开terminal 执行sh build-ffmpeg.sh;
  3. 步骤2执行完成后运行sh build-ffmpeg.sh lipo.a文件合并成一个;
  4. 步骤3执行完成将FFmpeg-iOS文件夹拖到目标工程并添加libz.dyliblibbz2.dyliblibiconv.dylib三个库,xcode7 及以上则是添加libz.tbdlibbz2.tbdlibiconv.tbd,并添加框架VideoToolbox.framework AudioToolbox.framework CoreGraphics.framework CoreMedia.framework(此框架是 iOS8 新增的,用于硬解码)
    808722-d3048bbc9202cb68.png

    808722-61bef0e3ffeb3dd7.png
  5. 设置头文件路径$(PROJECT_DIR)/$(PRODUCT_NAME)/FFmpeg-iOS/include:
    808722-1f5a99010d43fd8c.png
  6. OC 工程在调用的时候直接#include "avformat.h";
  7. swift 工程创建桥接头文件,在头文件内添加#import "avformat.h"


    808722-d3032eb0fb3f1740.png

使用

通过以上我们得到一个集成了FFmpeg
的工程,接下来进行测试。为了方便,我们使用github
上一个基于FFmpeg
的框架 kxmovie
kxmovie编译

  1. 终端运行:git clone https://github.com/kolyvan/kxmovie
  2. cd kxmovie
  3. git submodule update --init
  4. rake
  5. kxmovie目录下的kxmovie文件夹拖到工程中
    808722-d5d75e9202084717.png

    808722-b58708cc6e776405.png
  6. 在桥接文件里添加要使用到的目标文件,如#include "KxMovieViewController.h"
    808722-d3032eb0fb3f1740.png

代码
vitamio 这里有一些视频链接供测试用。

  1. 按下按钮弹出视频窗口
@IBAction func playVedio(sender: AnyObject) {

     let paths = ["http://live.3gv.ifeng.com/zixun.m3u8",
                  "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"]

     guard let vedioVc = KxMovieViewController.movieViewControllerWithContentPath(paths[1], parameters: nil) as? UIViewController else {
         print("err")
         return;
     }

     self.presentViewController(vedioVc, animated: true, completion: nil);
 }

推荐阅读更多精彩内容

  • 由于FFmpeg开源框架的功能非常强大,可以播放的视频种类很多,同时添加第三方库kxmovie,实现视频播放,真的...
    我在鄱阳湖边阅读 543评论 0 2
  • 配置支持 h264 编解码 下载 h264 源码和对应的编译脚本; 将解压后的 h264 源码文件夹改名成 x26...
    牵线小丑阅读 9,369评论 8 18
  • 一. 安装FFMpeg 1.在安装FFmpeg前可以需要先安装Brew, 在终端上输入:ruby -e "$(cu...
    Hardy_Hu阅读 1,401评论 5 10
  • 编译IOS ffmpeg库 准备条件 先下载文件:https://github.com/libav/gas-pre...
    三生石畔阅读 3,776评论 5 13
  • 这是听万维钢精英日课后的理解。 名字的由来来自一部叫《窈窕淑女》电影,是由萧伯纳的戏剧《卖花女》改编而成。故事讲的...
    当妈姐阅读 493评论 4 6