ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大。目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快; 且网上的讲解不够详细,对于初次接触FFMPEG的新手(例如我)来说确实不太好使用。为了防止忘记,这里对iOS下使用FFMPEG做一个总结。

1. FFMPEG层次结构的简单理解

要使用FFMPEG,首先需要理解FFMPEG的代码结构。根据志哥的提示,ffmpeg的代码是包括两部分的,一部分是library,一部分是tool。api都是在library里面,如果直接调api来操作视频的话,就需要写c或者c++了。另一部分是tool,使用的是命令行,则不需要自己去编码来实现视频操作的流程。实际上tool只不过把命令行转换为api的操作而已。

2. 预热-在mac os下使用ffmpeg

在mac os下使用ffmpeg比较简单,可以直接使用命令行来操作。首先安装ffmpeg,这里默认系统已经安装好brew,只需要在终端上输入:

brew install ffmpeg

等待安装结束即可。

安装结束后,尝试以下命令:

ffmpeg -i input.mp4 output.avi

如果能顺利转换,表明安装成功

3. 编译能在iOS下使用的FFMPEG library库

这一步是编译1所说的library,编译好之后可以调用FFMPEG的api。网上有一些方法,但都要自己手动编译,稍显复杂而且比较陈旧。按照app store的需求,编译出来的包还必须支持arm64。我在万能的github中找到一个能够"一键编译"的脚本,地址如下:

https://github.com/kewlbear/FFmpeg-iOS-build-script

而且写这个脚本的歪果仁挺好人,更新很及时,已经更新到了最新的2.5.3版本。下载下来,只有一个build-ffmpeg.sh脚本文件。在终端中转至脚本的目录,执行命令:

./build-ffmpeg.sh

脚本则会自动从github中把ffmpeg源码下到本地并开始编译。

最新文章

  1. 1Z0-053 争议题目解析697
  2. Oracle 正则表达式函数-REGEXP_LIKE 使用例子
  3. ios 开发小技巧一
  4. CSS居中的方法整合--水平居中
  5. 从零开始定义自己的JavaScript框架(一)
  6. C#常用的关键字
  7. boostrap按钮
  8. 让你不再纠结GitHub:Git起步
  9. 淘宝API调用 申请 获取session key
  10. [AOP系列]Autofac+Castle实现AOP事务
  11. 高度-宽度关系,同一div、不同div高度与宽度关系控制函数
  12. 在windows环境下安装redis和phpredis的扩展
  13. 关于h5绘制canvas生成图片的注意点!
  14. Java【第八篇】面向对象之高级类特性
  15. 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
  16. Perl数组和hash相关函数
  17. 19.翻译系列:EF 6中定义自定义的约定【EF 6 Code-First约定】
  18. 写给java程序员的c++与java实现的一些重要细微差别-附完整版pdf学习手册
  19. Node.js使用MySQL的连接池
  20. layui框架使用总结

热门文章

  1. 字符在内存中最终的表示形式是什么?是某种字符编码还是码位(Code Point)?
  2. servlet中service() doGet() doPost() 方法
  3. decimal与 float的区别
  4. UML类图(三)-------实例
  5. sorket is closed
  6. Rainmeter如何打开控制面板的小程序
  7. 移动端rem设置,自动更改html<font-size>
  8. php实现pdf导出和打印功能。
  9. 图片上传-本地图片转base64+ie8支持+本地预览支持
  10. Shiro-Session