文档章节

在 iOS上 编译 FFmpeg

asjoker
 asjoker
发布于 2016/02/14 15:53
字数 494
阅读 447
收藏 1

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

 

 准备条件

  1. 安装 yasm。 解压后

     cd yasm-1.2.0

     ./configure

     make

     make install

  2. 到https://github.com/libav/gas-preprocessor下载 gas-preprocessor.pl 文件,

    复制gas-preprocessor.pl到/usr/bin下,

    修改文件权限 chmod 777 /usr/local/bin/gas-preprocessor.pl


开始搭建

  1. 下载脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script

  2. 解压,找到文件 build-ffmpeg.sh

  3. 执行服本文件:./build-ffmpeg.sh, 由于本人没有事先安装Yasm

    脚本则会自动从github中把ffmpeg源码下到本地并开始编译。 编译结束后,文件目录如下:

  4. 编译完成后,终端进入FFmpeg-iOS-build-script目录,然后输入./build-ffmpeg.sh lipo,这个命令是将.a文件合并成一个

  5. 把ffmpeg-iOS文件加入到工程中

  6. libz.dylib libbz2.dylib libiconv.dylib是必须要导入的

     

运行编译

  1. 编译报 include“libavformat/avformat.h” file not found 错误。在Build Settings中找到Search Paths,设置Header Search Pahts 和 Library Search Paths。修改Header search paths 里的路径:$(PROJECT_DIR)/FFmpeg-iOS/include

  2. Directly in the engineering of "TARGETS" - > "BuildSettings" - > "Other Linker Flags" click on the "+" to add a "- liconv" item, if you have any questions, welcome to leave a message

    Undefined symbols for architecture i386:
      "_iconv", referenced from:
          _avcodec_decode_subtitle2 in libavcodec.a(utils.o)
      "_iconv_close", referenced from:
          _avcodec_open2 in libavcodec.a(utils.o)
          _avcodec_decode_subtitle2 in libavcodec.a(utils.o)
      "_iconv_open", referenced from:
          _avcodec_open2 in libavcodec.a(utils.o)
          _avcodec_decode_subtitle2 in libavcodec.a(utils.o)
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

-----------------我是分割线----------------------

-- 2016 09 19 编辑

安装yasm出现问题,首先到官网下载 (我下载的 yasm-1.3.0.tar.gz)解压后,cd 到目录执行:

1. cd ...

2. ./configure

3. make

4. sudo make install(我原来执行的make install 总是不成功)

© 著作权归作者所有

共有 人打赏支持
asjoker
粉丝 10
博文 108
码字总数 79411
作品 0
东城
程序员
(iOS) FFmpeg iOS 上的安装(可以指定任意版本) 一

一、准备部分 1、去FFmpeg官网下载所需要的版本的源码:官网源码下载地址 2、安装Homebrew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...

wf990051004
04/26
0
0
GitHub上最火的74个Android开源项目(三)

GitHub上最火的40个Android开源项目(一) GitHub上最火的40个Android开源项目(二) GitHub上最火的74个Android开源项目(三) GitHub上最火的40个iOS开源项目(一) GitHub上最火的40个iOS...

LiSteven
2014/05/11
0
1
基于nodejs的http实时视频流尝试记录

公司的流媒体系统出来的码流都是传统的rtp承载、rtsp控制的标准流媒体,在3GPP环境下是没问题,可是PC上和易信、微信上就没法看了,负责推广的大姐建议改成不要控件在电脑上能播的方式,遂进...

jianyu_21
2014/06/13
0
1
Android开发小记:编译ijkplayer以支持更多视频格式

前言 ijkplayer大法好,感谢B站大佬。ijkplayer基于FFmpeg开发,适配Android/iOS平台。FFmpeg在开发界简直是神一般存在的项目,全平台全格式音视频编解码支持。像前段时间“杀程序员祭天”的...

MichaelX
07/16
0
0
ijkPlayer编译、打包、多格式及Https支持

编译环境 macOS + Xcode,文末有我打包好的文件,需要请自行下载 准备工作 获取 ijkPlayer 源码 桌面新建一个文件夹 ijkplayer,位置自行决定,我这里文件放到桌面了 打开终端、依次输入以下...

草帽小子的九喇嘛
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

InvalidKeyException: Illegal key size

Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 解决方案:去官方下载JCE无限制权限策略文件。 jdk 5: http://www.oracle.com/technetwork/j......

自由的开源
9分钟前
0
0
JAVA秒杀实现以及优化原理

秒杀与其他业务最大的区别在于:秒杀的瞬间, (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分...

小贱是个程序员
13分钟前
1
0
Spring Aop之Advisor解析

在上文Spring Aop之Target Source详解中,我们讲解了Spring是如何通过封装Target Source来达到对最终获取的目标bean进行封装的目的。其中我们讲解到,Spring Aop对目标bean进行代理是通过Ann...

爱宝贝丶
16分钟前
0
0
Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
40分钟前
2
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部