博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[iOS]FFmpeg框架在iOS平台上的编译和使用
阅读量:6008 次
发布时间:2019-06-20

本文共 1742 字,大约阅读时间需要 5 分钟。

使用环境

  • 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];

实例工程:

转载于:https://www.cnblogs.com/Ghosgt/p/7090170.html

你可能感兴趣的文章
内存池技术畅想
查看>>
计算机网络笔试面试常考考点
查看>>
MySQL Binlog的介绍
查看>>
[c++] 用宏定义一个函数
查看>>
微软语音输入法的图标隐藏了在怎么显示出来
查看>>
安装express
查看>>
创建服务类PO
查看>>
使用 Windows PowerShell 连接到 Lync Online
查看>>
Python生成列表
查看>>
青春期企业如何突围(转)
查看>>
Eclipse添加maven之后报错 Eclipse is running in a JRE, but a JDK is required 解决方法
查看>>
log4net详解(转载)
查看>>
三种状态
查看>>
LinqToSql(一)
查看>>
[LeetCode] Balanced Binary Tree 深度搜索
查看>>
java学习-几种常用数据库的JDBCURL
查看>>
视频播放器边下边播(保存到沙盒,显示进度)
查看>>
小程序-简易教程
查看>>
附加作业
查看>>
hdu 1116 并查集和欧拉路径
查看>>