iOS 使用 FFmpeg
iOS 使用 FFmpeg
集成
- 下载FFmpeg For iOS编译脚本;
- 打开 terminal 执行
sh build-ffmpeg.sh
; - 步骤2执行完成后运行
sh build-ffmpeg.sh lipo
将.a
文件合并成一个; - 步骤3执行完成将
FFmpeg-iOS
文件夹拖到目标工程并添加libz.dylib
、libbz2.dylib
、libiconv.dylib
三个库,xcode7 及以上则是添加libz.tbd
、libbz2.tbd
、libiconv.tbd
,并添加框架VideoToolbox.framework
(此框架是 iOS8 新增的,用于硬解码) - 设置头文件路径
$(PROJECT_DIR)/$(PRODUCT_NAME)/FFmpeg-iOS/include
: - OC 工程在调用的时候直接
#include "avformat.h"
; - swift 工程创建桥接头文件,在头文件内添加
#include "avformat.h"
使用
通过以上我们得到一个集成了FFmpeg
的工程,接下来进行测试。为了方便,我们使用github
上一个基于FFmpeg
的框架 kxmovie。
kxmovie编译
- 终端运行:
git clone https://github.com/kolyvan/kxmovie
cd kxmovie
git submodule update --init
rake
- 将
kxmovie
目录下的kxmovie
文件夹拖到工程中 - 在桥接文件里添加要使用到的目标文件,如
#include "KxMovieViewController.h"
代码
vitamio 这里有一些视频链接供测试用。
按下按钮弹出视频窗口
@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了新的一个项目,叫Libav
。FFmpeg
更侧重底层的效率。(由于开发者大多是设备厂家的人希望自己的设备尽快的run起来,于是更偏向底层些),Libav
更侧重软件构架。(也是此原因分裂的,不满对软件框架的混乱,为了更好的代码结构,分裂出来)
iOS 使用 FFmpeg的更多相关文章
- iOS编译FFmpeg、kxmovie实现视频播放 (转载)
由于FFmpeg开源框架的功能非常强大,可以播放的视频种类很多,同时添加第三方库kxmovie,实现视频播放,真的是爽爆了,因此今天来说一下关于FFmpeg在iOS手机上的一些配置过程,配置工具,还有 ...
- 为iOS编译FFmpeg静态库
为iOS编译FFmpeg静态库 环境:OS X Yosemite (版本10.10.5) Xcode (Version 7.1.1 (7B1005)) 一.资料准备: (1)ffmpeg源 ...
- iOS使用ffmpeg播放rstp实时监控视频数据流
一.编译针对iOS平台的ffmpeg库(kxmovie) 最近有一个项目.须要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目 ...
- iOS开发ffmpeg SDK 编译和集成
FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.同时,FFmpeg是一套跨平台的方案,所以我们可以在iOS开发中使 ...
- iOS:FFmpeg视频播放和直播框架
视频直播和播放转码器框架 介绍: FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证. 它提供了录制.转换以及流化音视频的完整解决方案.它 ...
- IOS应用FFMPEG库
1.引用资源 build-ffmpeg ffmpeg库生成 -sh开源地址: https://gist.github.com/m1entus/6983547 iFrameExtractor ffmp ...
- iOS开发-FFmpeg深入分析
FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒体基础知识,否则其源代码会非常晦涩难懂.本文将从介绍一些基本的多媒体只是,主要是为研读ffmpeg源代码做准备,比如一 ...
- iOS FFmpeg 优秀博客(资源)集锦
iOS FFmpeg 优秀博客(资源)集锦 这篇博客没有我自己写的内容: 主要是对FFmpeg一些优秀博客的记录 随时更新 1>iOS编译FFmpeg,kxmovie实现视频播放 2>视音 ...
- 编译生成IOS开发使用的FFmpeg的过程
前言:本篇随笔纯属是参照<iOS 使用 FFmpeg>的过程,本人自己操作了一遍,但是本人记性不好,觉得这样的过程可以记录在博客中,以后需要可以快速回头翻阅细节.所以特地参考<iOS ...
随机推荐
- 《深度探索c++对象模型》chapter1关于对象对象模型
在c++中,有2种class data member:static和nostatic,以及3钟class member function:static,nostatic和virtual.已知下面这个c ...
- poj1849
不难发现每条边最多走两次,最少走一次也就是我们要在所有走两次的边中选两条从根出发没有公共边的路径使路径上的边少走一次显然我们找的是最长路径
- LoadRunner的场景设置
loadrunner场景设置的方法: 1.逐步增加用户数,分多次去运行场景.比如:第一次运行50并发,第二次运行100并发…… 2.针对同一个脚本设置多个组,使用组策略(点击Edit Schedule ...
- Eclipse添加快速查找Dao中方法所对应的Mybatis XML映射SQL的插件
Dao关联Mybatis快速查找的插件安装地址:http://dl.bintray.com/harawata/eclipse 安装步骤: ①Eclipse ==> Help ==> Ins ...
- vijosP1014 旅行商简化版
vijosP1014 旅行商简化版 链接:https://vijos.org/p/1014 [思路] 双线DP. 设ab,ab同时走.用d[i][j]表示ab所处结点i.j,且定义i>j,则有转 ...
- spring中解析xml
解析xml有SAX,Stax,dom等方式,那么spring中是如何解析xml文件的呢? Document doc = this.documentLoader.loadDocument( inputS ...
- Away3D 的实体收集器流程2
带着上次的疑问我们继续探讨Away3D 的渲染流程. 在Away3D中所有的显示对象都是继承Object3D 的我们先看看显示对象和继承关系. Object3D |---ObjectContainer ...
- winfrom 截屏、抓屏 分类: WinForm 2014-08-01 13:02 198人阅读 评论(0) 收藏
截取全屏代码: try { this.Hide(); Rectangle bounds = Screen.GetBounds(Screen.GetBounds(Point.Empty)); Bitma ...
- 手把手教学:详解HTML5移动开发框架PhoneJS
摘要:HTML/JavaScript的优势自不必说,但却也并非完美,相比之下,原生App占内存更少.响应更快.本文详解了HTML5移动开发框架PhoneJS的使用全过程,通过它,能够让Web应用在移动 ...
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
http://blog.csdn.net/shimiso/article/details/8816540 关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可 ...