iOS 使用FFmpeg
原文:http://www.jianshu.com/p/ec432a8f5729
如何在iOS上集成 FFmpeg,来,博主带大家往坑里走了。
我们此次入坑需要的工具:
1、gas-preprocessor
2、yasm 1.2.0
3、FFmpeg-iOS-build-script(ps:这个脚本真是业界良心呀,帮我们省下了不少心。)
好了,刀已经有了,但是怎么优雅的使用出招式呢?慢慢来,博主力求详细的为大家分解每个步骤。
1、下载gas-preprocessor。
那么 gas-preprocessor 是什么呢?
gas-preprocessor 其实就是我们要编译 FFmpeg 的所需脚本文件。
1)我们将其解压后,发现内部只有简单的 4 个文件,如下图:
不难发现其中的 gas-preprocessor.pl,没错,这就是我们要找的刀了,恭喜,你获取了小木剑一把,继续往坑里走少年。
2)继续将 gas-preprocessor.pl 文件复制到 /usr/sbin/ 目录下(ps:应该会有很多小伙伴发现这个目录是根本没法修改的,那么这种情况下,小伙伴们可以将文件复制到 /usr/local/bin/ 目录下),然后为文件开启可执行权限,打开终端并输入以下命令行:
chmod 777 /usr/sbin/gas-preprocessor.pl
或
chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装 yasm
yasm 又是什么呢?
Yasm是一个完全重写的 NASM 汇编。目前,它支持x86和AMD64指令集,接受NASM和气体汇编语法,
产出二进制,ELF32 , ELF64 , COFF , Mach - O的( 32和64 ),RDOFF2 ,的Win32和Win64对象的格式,
并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。
1)下载 yasm
上一篇文章博文带大家下载了一个好东西 homebrew,既然是优雅的编译,我们就用最像程序员的东西,命令行了,打开终端,输入如下:
brew install yasm
2)检测是否已安装 yasm
brew install yasm
如果你成功安装了 yasm,输出如下图:
好了,你获得了隔壁老王内裤一条。额。。让我们继续前进。
3、编译 FFmpeg-iOS-build-script,得到我们需要的 iOS 能用的 ffmpeg 库
这个脚本有神马用呢?
不难看出,这个脚本是转为 iOS 编译出可用的 ffmpeg 的库,这个业界良心,我们称之为`神的内裤`。。。
好吧,不搞笑,有了这个脚本,我们根本就不用下载 ffmpeg 了,脚本会帮我们下载好最新版本的 ffmpeg,
并打包成一个 iOS 可用的 ffmpeg 库提供给我们了,当然,前提是你必须要跟着博主一步一步入坑才行喔。
1)进入我们的 gitHub 网站,把 FFmpeg-iOS-build-script 下载好压缩包。
2)编译脚本,打包出我们需要的 iOS 的 ffmpeg 库
解压 FFmpeg-iOS-build-script 得到的文件如下:
我们目标不是开发 tvos 吧。。那么我们的目标脚本就只剩下 build-ffmpeg.sh 了。打开终端,进入解压后的 FFmpeg-iOS-build-script 文件夹,命令行如下:
cd 小伙伴们的FFmpeg-iOS-build-script文件夹路径
执行 build-ffmpeg.sh 脚本:
./build-ffmpeg.sh
当然,官方是有说明的:
To build everything:./build-ffmpeg.sh
To build arm64 libraries:
./build-ffmpeg.sh arm64
To build fat libraries for armv7 and x86_64 (64-bit simulator):
./build-ffmpeg.sh armv7 x86_64
To build fat libraries from separately built thin libraries:
./build-ffmpeg.sh lipo
好了,执行完命令行后,终端就会拿着这条内裤,在啪啪啪了(编译)。。。这段时间里,你可以去喝杯咖啡慢慢等待,最后得到的文件如下:
小伙伴们不难看到,FFmpeg-iOS 就是我们所需要的文件夹了,看到内部的各种 .a 文件,也就是我们熟悉的静态库了。
4、集成FFmpeg 库开发工程当中
1)把 FFmpeg-iOS 直接复制到你的工程目录下
2)把 FFmpeg-iOS 从你的工程目录下拖到工程当中,最后得到的结果如下图:
3)编译一下,你会发下有错误,哈哈,原因是你没有链接编译文件
好,我们进入 Build Setting ,修改 header search Path 链接到工程的 include 文件当中 操作如下:
OK,我们可以在工程当中引入 #import "avformat.h" 文件了,编译 Success
编译的时候,我就发现,有点问题,很多报错,原因是要导入一些系统框架:
iOS 使用FFmpeg相关推荐
- iOS开发 iOS集成FFmpeg及视频格式转码
点击下载 Demo 一.FFmpeg简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方 ...
- iOS编译FFmpeg、kxmovie实现视频播放
由于FFmpeg开源框架的功能非常强大,可以播放的视频种类很多,同时添加第三方库kxmovie,实现视频播放,真的是爽爆了,因此今天来说一下关于FFmpeg在iOS手机上的一些配置过程,配置工具,还有 ...
- iphone ios编译ffmpeg
1.mov格式解析 http://blog.csdn.net/sunshine1314/article/details/2547275 2.mov解析的开源工程:bento4和ffmpeg,其中ben ...
- ios 编译ffmpeg 支持 x264 fdk-aac openssl 并裁剪库大小
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2018-10-11更新 android平台编译 右转 新的报错信息 ./lib ...
- IOS 编译ffmpeg For SDK6.1,模拟器、armv7、armv7s均可使用
最近在研究IOS视频播放器,需要使用到ffmpeg4ios,所以整理编译过程. 需要使用到Git,Linux Shell脚本执行install-ffmpeg.sh即可. 下述Linux Shell脚本 ...
- iOS 使用FFmpeg实现视频H264编码
本文借鉴:https://www.jianshu.com/p/70b0af4d0ec7 以及 https://www.jianshu.com/p/31d1ca4999c6 ffmpeg 相关命令行 ...
- iOS之ffmpeg开发音视频编解码概要、SDL
官网:http://ffmpeg.org/documentation.html http://ffmpeg.org/ffmpeg.html 简介:https://blog.csdn.net/qq_36 ...
- IOS 基于ffmpeg VR播放器
使用场景 支持rtsp,rtmp等的实时流播放的全景播放器 开源的全景播放器HTY360Player有一个问题就是用的是系统的播放器,所以无法支持rtsp或rtmp协议,所以解码部分使用Kxmovie ...
- 最简单的基于FFmpeg的移动端样例:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
最新文章
- 计算机程序c复杂,《计算机程序设计(C语言)》见面课答案
- BZOJ.3277.串(广义后缀自动机)
- SpringBoot使用Redis和MyBatis完成缓存数据的增删改查
- 关于ReetrantLock
- 尝试:Script Lab,快速 O365 开发工具//SL01)
- bzoj 1934 最小割
- 高级短链接工具+汉化版语言包premium-url-shortener-v5.9.8完美修复开心版QW提示跳转
- 概率论概念及机器学习中样本相似性度量之马氏距离
- 2021 年 GitHub 最佳开源软件榜单
- Android 持续集成基础教程
- STM32F103ZET6【标准库函数开发】-----TM1638模块驱动4位8段共阴极数码管
- 周志华《机器学习》中的西瓜数据集
- 利用计算机为祖国做贡献的人,李晓维:祖国,我把科研事业献给您
- matlab绘制三维图形,Matlab 应用之绘制三维图形(基础篇)(组图)
- 产品生命周期管理PLM技术研究
- linux高级格式化磁盘,linux下格式化磁盘及分区
- 【JavaScript】实现微信发消息-解决方案
- vConsole:H5控制台调试工具
- ATK-HC05蓝牙模块的详细说明
- 【无敌浪子】python爬取足球赛事数据
热门文章
- VoIP五个不为人知的秘密
- 18大产业的产业链全景图!(高清大图)
- backbone, AngularJS, EmberJS 简单比较
- soyun是php么,40个迹象表明你还是PHP菜鸟
- java反射作用与意义
- 平流式沉淀池表面负荷怎么计算_竖流式与辐流式沉淀池
- 归档日志存在arch_还在用ELK? 是时候了解一下轻量化日志服务Loki了
- php点广告送积分,PHP猜一猜奇偶商城积分促销模式
- 计算机网络的发展英文,计算机网络英文方向论文选题 计算机网络英文论文题目哪个好...
- java jtable 单元格合并_java 表格JTable中怎么样合并单元格