iOS 使用 FFmpeg

iOS 使用 FFmpeg

字数486 阅读288 评论7 喜欢5

集成

  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更侧重软件构架。(也是此原因分裂的,不满对软件框架的混乱,为了更好的代码结构,分裂出来)

时间: 2024-10-30 04:38:33

iOS 使用 FFmpeg的相关文章

iOS基于ffmpeg做出的视频直播 (一)

现在非常流行直播,相信很多人都跟我一样十分好奇这个技术是如何实现的,正好最近在做一个ffmpeg的项目,发现这个工具很容易就可以做直播,下面来给大家分享下技术要点: 首先你得编译出ffmpeg运行所需的静态库,这个百度一下有很多内容,这里我就不多说了,建议可以用Github上的一个开源脚本来编译,简单粗暴有效率. 地址:GitHub - kewlbear/FFmpeg-iOS-build-script: Shell scripts to build FFmpeg for iOS and tvOS

iOS 利用FFmpeg 开发音视频流(二)

原文地址: iOS配置FFmpeg框架(原创) 脚本文件下载地址 https://github.com/kewlbear/FFmpeg-iOS-build-script. 上述博文中是直接下载脚本文件,运行脚本文件后会在本地下载FFmpeg源码并进行编译.

iOS使用ffmpeg播放rstp实时监控视频数据流

一.编译针对iOS平台的ffmpeg库(kxmovie) 最近有一个项目.须要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目已经整合了ffmpeg和简单的播放器,详细能够參考kxmovie主页:https://github.com/kolyvan/kxmovie 编译kxmovie非常easy,已经支持iOS 6.1 和 armv7s,一次成功.编译过程没出现什么问题: git clone git://github.co

iOS基于FFmpeg之配置FFmpeg框架(二)

本文出自:这里 摘自http://blog.sina.com.cn/s/blog_47522f7f0102vbwp.html,按步骤实践可行.感谢! 1. FFMPEG层次结构的简单理解 要使用FFMPEG,首先需要理解FFMPEG的代码结构.根据志哥的提示,ffmpeg的代码是包括两部分的,一部分是library,一部分是tool.api都是在library里面,如果直接调api来操作视频的话,就需要写c或者c++了.另一部分是tool,使用的是命令行,则不需要自己去编码来实现视频操作的流程.

iOS基于Ffmpeg资料(四)

一.编译针对iOS平台的ffmpeg库(kxmovie) 近期有一个项目,需要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目已经整合了ffmpeg和简单的播放器,具体可以参考kxmovie主页:https://github.com/kolyvan/kxmovie 编译kxmovie很简单,已经支持iOS 6.1 和 armv7s,一次成功,编译过程没出现什么问题: git clone git://github.com/k

iOS开发ffmpeg SDK 编译和集成

FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.同时,FFmpeg是一套跨平台的方案,所以我们可以在iOS开发中使用它来进行一些视频与GIF的开发. 接下来,我们从编译FFmpeg开始,到使用FFmpeg,再到使用中的一些注意事项进行总结. 一.编译FFMpeg 在这个过程中,我们需要以下几个资源: 1.gas-preprocessor 2.yasm 3.FFmpeg-iOS-build-script 1.ga

iOS平台基于ffmpeg的视频直播技术揭秘

现在非常流行直播,相信很多人都跟我一样十分好奇这个技术是如何实现的,正好最近在做一个ffmpeg的项目,发现这个工具很容易就可以做直播,下面来给大家分享下技术要点: 首先你得编译出ffmpeg运行所需的静态库,这个百度一下有很多内容,这里我就不多说了,建议可以用Github上的一个开源脚本来编译,简单粗暴有效率. 地址:GitHub - kewlbear/FFmpeg-iOS-build-script: Shell scripts to build FFmpeg for iOS and tvOS

最简单的基于FFmpeg的移动端样例:IOS HelloWorld

===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:Android HelloWorld 最简单的基于FFmpeg的移动端样例:Android 视频解码器 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版 最简单的基于FFmpeg的移动端样例:Android 推流器 最简单的基于FFmpeg的移动端样例:Android 视频转

最简单的基于FFmpeg的移动端样例:IOS 推流器

===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:Android HelloWorld 最简单的基于FFmpeg的移动端样例:Android 视频解码器 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版 最简单的基于FFmpeg的移动端样例:Android 推流器 最简单的基于FFmpeg的移动端样例:Android 视频转