iOS FFmpeg集成

作者: __zimu | 来源:发表于2016-05-09 14:23 被阅读989次

FFmpeg标准库

概念:

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

功能:

多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能视频格式转换视频抓图给视频加水印等。

1. 视频采集功能:

ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。

2. 视频格式转换功能:

ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mod等),例如可以将摄录下的视频avi等转成视频网站所采用的flv格式。

3. 视频截图功能:

对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提倡抓gif文件;因为抓出的gif文件大而播放不流畅。

4. 给视频加水印功能:

使用ffmpeg视频添加水印(logo)。

项目组成:

  • libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;
  • libavcodec:用于各种类型声音/图像编解码;
  • libavutil:包含一些公共的工具函数;
  • libswscale:用于视频场景比例缩放、色彩映射转换;
  • libpostproc:用于后期效果处理;
  • ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;
  • ffsever:一个 HTTP 多媒体即时广播串流服务器;
  • ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示

集成

1. 前期准备

  1. 下载脚本:https://github.com/libav/gas-preprocessor
  2. 复制gas-preprocessor.pl到/usr/sbin下,(这里需要完全关闭苹果的SIP安全功能, 具体请参考这篇文章
  3. 终端下修改文件权限, 指令: chmod 777 /usr/sbin/gas-preprocessor.pl
  4. 安装yasm, 指令如下:
* curl http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz >yasm.tar.gz
* tar xzvf yasm.tar.gz
* cd yasm-1.2.0
* ./configure
* make
* sudo make install

2. 下载ffmpeg

  1. 下载脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script
  2. 解压,找到文件 build-ffmpeg.sh
  3. 编译完成后,终端进入FFmpeg-iOS-build-script目录,然后终端输入 ./build-ffmpeg.sh lipo,这个命令是将.a文件合并成一个

3. 集成

  1. 把ffmpeg-iOS文件加入到工程中, 引入头文件 #include "avformat.h", 执行方法 av_register_all(), 并修改任一文件名由.m 变为 .mm
  1. :
    编译的时候报错: libavcodec/avcodec.h' file not found ,修改Header search paths 里的路径:$(PROJECT_DIR)/FFmpeg-iOS/include
    添加额外的库引用:
    libz.tbd
    libbz2.tbd

libiconv.tbd

  1. 编译, 通过.

使用

由于我也是刚开始研究这个库, 所以这篇文章暂时不涉及到具体怎么使用, 下一篇文应该会讲怎么使用.

相关文章

  • 记一次FFmpeg的编译过程的坑

    参考文章:iOS开发 - 超详细集成 FFmpeg 步骤 iOS集成FFmpeg及视频格式转码 以...

  • FFmpeg学习

    https://github.com/NK-iOS/FFMpeg_iOS iOS开发 - 超详细集成 FFmpeg...

  • iOS 集成FFmpeg与使用

    iOS基于FFmpeg 4.1 的命令编译 1、iOS集成FFmpeg 下载脚本FFmpeg脚本地址 这里目前使用...

  • IOS FFmpeg H.264解码

    1.**本地集成FFmpeg ** (引用) iOS集成FFmpeg及视频格式转码 2.pod集成(省事,但是有些...

  • FFmpeg

    集成 下载FFmpeg For iOS编译脚本; 打开terminal 执行sh build-ffmpeg.sh;...

  • FFmpeg iOS 集成过程

    记录最新FFmpeg-ios集成过程,方便查看。 FFmpeg 官网 : http://ffmpeg.org/do...

  • FFmpeg集成

    一、选用FFmpeg编译脚本 集成FFmpeg初学者使用的脚本是FFmpeg-iOS-build-script[h...

  • FFmpeg for iOS-Swift集成

    FFmpeg for iOS-Swift集成 Mac安装ffmpeg 注意: Mac OS高版本需关闭sip然后执...

  • iOS项目中编译和集成FFmpeg

    一、iOS项目中编译和集成FFmpeg 二、Operation not permitted 三、xcode-sel...

  • iOS集成 FFmpeg

    一.先安装 yasm 1.先去http://yasm.tortall.net/Download.html 看 ya...

网友评论

  • 书写传奇:yasm 按照你的指令安装不了, 怎么回事
    陈_某_某:可以用 Homebrew
  • 301c784ee140:你好,关于第三步集成,我用xcode7.2编译不通过。
    我另外添加
    #import <AVFoundation/AVFoundation.h>
    #import <CoreMedia/CoreMedia.h>
    头文件,
    和VideoToolbox.framework,
    编译通过。我用的FFmpeg版本是3.1.1
  • c100c9150c96:小伙子,把我招过去吧!我要跟着你干!
  • 歌飘渺:小伙子,50K来不来
    __zimu:@歌飘渺 来!

本文标题:iOS FFmpeg集成

本文链接:https://www.haomeiwen.com/subject/crrerttx.html