[iOS]FFmpeg框架在iOS平台上的编译和使用

使用环境

  • Mac OS Yosemite 10.10.5

开发工具

  • Xcode 7.0
  • Terminal

需要的文件链接

编译适用于iOS平台的FFmpeg静态库

  • 打开终端Terminal进入下载后的gas-preprocessor文件夹

    • 将文件夹内的gas-preprocessor.pl文件拷贝到/usr/sbin/目录下
    • 修改/usr/sbin/gas-preprocessor.pl的文件权限为可执行权限
        chmod 777 /usr/sbin/gas-preprocessor.pl
  • 执行FFmpeg-iOS-build-script-master文件夹内的build-ffmpeg.sh
    • 编译所有的版本arm64armv7x86_64的静态库

      ./build-ffmpeg.sh
    • 编译支持arm64架构的静态库
      ./build-ffmpeg.sh arm64
    • 编译适用于armv7x86_64(64-bit simulator)的静态库
      ./build-ffmpeg.sh armv7 x86_64
    • 编译合并的版本
      ./build-ffmpeg.sh lipo

编译静态库遇到的问题

  • yasm没有安装的情况

    • 解决方案1

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

          ./configure && make -j 4 && sudo make install
    • 解决方案2
      • 使用Homebrew包管理器,进行安装

          brew install yasm
    • 测试是否安装成功
        yasm --verision
  • c test failed的情况
    • xcode环境安装过多,使用xcode-select选择默认的工具路径/Applications/Xcode-beta.app

        sudo xcode-select -s /Applications/Xcode-beta.app

使用编译完成的FFmpeg静态库

  • 编译成功后,即可将FFmpeg-iOS文件夹(包含include和lib)引入到Xcode内
  • 加入依赖库libz.lib
  • 加入依赖库libbz2.lib
  • 加入依赖库libiconv.lib
  • 如有编译错误,链接文件不存在
      修改Build Setting
      Header Search Paths = $(SRCROOT)/LOFFmpegSample/FFmpeg-iOS/include

使用框架kxmovie播放视频

    NSString *path = @"";
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];

    // increase buffering for .wmv, it solves problem with delaying audio frames
    if ([path.pathExtension isEqualToString:@"wmv"])
        parameters[KxMovieParameterMinBufferedDuration] = @(5.0);

    // disable deinterlacing for iPhone, because it‘s complex operation can cause stuttering
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
        parameters[KxMovieParameterDisableDeinterlacing] = @(YES);

    KxMovieViewController *vc = [KxMovieViewController movieViewControllerWithContentPath:path
                                                                               parameters:parameters];
    [self presentViewController:vc animated:YES completion:nil];

实例工程:
LOFFmpeg

时间: 2024-08-23 11:09:43

[iOS]FFmpeg框架在iOS平台上的编译和使用的相关文章

关于使用jqmobi前端框架在phonegap平台上开发时的日期时间选择控件

jqmobi(appframework)作为Intel的一款html5移动前端框架,以其自身轻量级和容易上手获得了很多移动HTML5开发者的喜爱,相对于jquerymobile,它可以说将jQuerymobile进行了重写,针对移动端做了很好的优化,(jQuerymobile太过于臃肿,实际在真机上效果较差),但是经过使用,发现jqmobi也有一些缺点,比如说bug较多,UI控件较少,插件较少,不能够满足大型应用开发需求.最不可接受的是它竟然没有提供日期和时间选择插件(日期时间选择功能很常用).

使用PostSharp在.NET平台上实现AOP

摘要 本文首先介绍AOP(面向方面编程)的相关概念及理论,然后介绍如何使用PostSharp框架在.NET平台上实现AOP,最后对PostSharp的机制及AOP的优劣进行一个简单的分析. AOP(Aspect-Oriented Programming) AOP的基本定义及作用 根据维基百科的定义,“AOP(Aspect-Oriented Programming)是一种将函数的辅助性功能与业务逻辑相分离的编程泛型(programming paradigm),其目的是将横切关注点(cross-cu

Go语言在国产CPU平台上应用前景的探索与思考

http://www.chinaaet.com/article/3000087559 0 引言 CPU是电子产品的核心,代表着信息产业的发展水平.CPU发展至今已经有四十多年的历史了,实际就是Intel公司的发展历史[1].Intel的CPU和其兼容产品占领了PC的大半江山.我国CPU战略已经发展十余年,部分领域完全具有核心技术,产业化取得积极进展,但是与国际主流厂商Intel等仍存在较大差距.国产CPU由于受多方因素制约,单核性能并不高,在2000年左右所有的微处理器厂商都转向了多核微处理器的

实战FFmpeg + OpenGLES--iOS平台上视频解码和播放

一个星期的努力终于搞定了视频的播放,利用FFmpeg解码视频,将解码的数据通过OpenGLES渲染播放.搞清楚了自己想知道的和完成了自己的学习计划,有点小兴奋.明天就是“五一”,放假三天,更开心啦. 本文实现视频文件的播放是在自己之前写的文章实战FFmpeg--iOS平台使用FFmpeg将视频文件转换为YUV文件 . 实战OpenGLES--iOS平台使用OpenGLES渲染YUV图片 的基础上改进合成来完成的.不多种解释,直接上代码,清晰明了. NSString *path = [[NSBun

iOS开发:在多平台、设备及64位架构上运行

最近在新工程上线是遇到很多适配的问题,尤其是旧工程64位设备的适配,现在整理一下. Base SDK vs. Deplyment Target 1.配置Base SDK设置 1)选择工程导航面板上的工程文件 2)编辑面板上搜索base sdk Base SDK设置引导编译器使用该版本的SDK编译和构建应用,也就是说,它会直接控制应用使用哪些API. 2.Deplyment Target运行应用需要的最低操作系统版本 支持多个SDK时的注意事项: 框架的可用性有时新的SDK会增加一个完整框架,较早

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,使用的是命令行,则不需要自己去编码来实现视频操作的流程.

使用Vitamio开发iOS平台上的万能播放器

迅速了解 Vitamio是干什么的?看官方怎么说: "Vitamio SDK for iOS是Yixia Ltd官方推出的 iOS 平台上使用的软件开发工具包(SDK),为iOS开发者提供简单.快捷的接口,帮助开发者实现 iOS 平台上的媒体播放应用." 说白了,就是可以帮助你便捷地开发自己的iOS播放器. 本文目标 从0开始建工程,使用VitamioSDK开发一个最简单的播放器:打开app之后,能看到一个播放按钮,点击按钮,就开始播放事先放在Documents目录下的视频文件,再按一

iOS运营级B2B服务平台App、自定义图标库、个人中心页面、识别身份证Demo、瀑布流等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... iOS可自定义图表库 - PNChart 开源一款曾是运营级的B2B服务平台APP<云采> 使用ffmpeg解码最简iOS播放器 注释得非常清楚的瀑布流,和自己的一些想法 iOS日志框架学习分享 在iOS App中录制MP3和AMR:ZWAudioRecordTool 一套应用于swift项目的空白页组件EmptyPage 2.0 扫雷简单实现 iOS优质博客 iOS

iOS: FFmpeg编译和使用 学习

ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大.目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快: 且网上的讲解不够详细,对于初次接触FFMPEG的新手(例如我)来说确实不太好使用.为了防止忘记,这里对iOS下使用FFMPEG做一个总结. 1. FFMPEG层次结构的简单理解 要使用FFMPEG,首先需要理解FFMPEG的代码结构.根据志哥的提示,ffmpeg的代码是包括两部分的,一部分是library,一部分是tool.api都是在l