码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 使用 FFmpeg

时间:2016-04-16 18:42:25      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

iOS 使用 FFmpeg

字数486 阅读288 评论7 

集成

  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(此框架是 iOS8 新增的,用于硬解码)
    技术分享

    技术分享
  5. 设置头文件路径$(PROJECT_DIR)/$(PRODUCT_NAME)/FFmpeg-iOS/include
    技术分享
  6. OC 工程在调用的时候直接#include "avformat.h"
  7. swift 工程创建桥接头文件,在头文件内添加#include "avformat.h"
    技术分享

使用

通过以上我们得到一个集成了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文件夹拖到工程中
    技术分享

    技术分享
  6. 在桥接文件里添加要使用到的目标文件,如#include "KxMovieViewController.h"
    技术分享
代码

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);
     }
转至:http://www.jianshu.com/p/b72ae2446747
题外话

    有些人应该听过或用过Libav,从网上搜索到的资料:
    原来FFmpeg的一群开发者不满FFmpeg的项目管理方式,所以fork了新的一个项目,叫LibavFFmpeg更侧重底层的效率。(由于开发者大多是设备厂家的人希望自己的设备尽快的run起来,于是更偏向底层些),Libav更侧重软件构架。(也是此原因分裂的,不满对软件框架的混乱,为了更好的代码结构,分裂出来)

iOS 使用 FFmpeg

标签:

原文地址:http://www.cnblogs.com/haohao-developer/p/5398929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!