Android FFMPEG

(二)FFmpeg 简介及iOS端交叉编译

2019-08-12  本文已影响30人  sweetpf

FFmpeg,作为全世界音视频开发者都要掌握的神器,移动端学习音视频开发,FFmpeg可以说是必学的框架,FFmpeg在linux平台下开发,但它同样也可以在其他操作系统环境中编译运行,包括Windows、Mac OS X等。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,它包括了目前领先的音/视频编码库libavcodec。

FFmpeg强大的能力

FFmpeg有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。

安装方式

可以通过如下两种方式安装FFmpeg

如果仅仅是想简单直接使用FFmpeg可以下载一个稳定版本的静态库, 建议用第一种方式,如果需要在iOS项目中自定义使用FFmpeg,以及修改一些FFmpeg中的源码以适应项目,使用第二种方式。

必备知识

ffmpeg的常用库
Left Aligned Center Aligned
ffmpeg 一个命令行工具,用来对视频文件转换格式,也支持对电视卡即时编码
ffserver 一个HTTP多媒体即时广播流服务器,支持时光平移
ffplay 一个简单的播放器,基于SDL与FFmpeg库
libavcodec 包含全部FFmpeg音频/视频编解码库
libavformat 包含demuxers和muxer库
libavutil 包含一些工具库
libpostproc 对于视频做前处理的库
libavutil 包含一些工具库
libswscale 对于视频作缩放的库

编译FFmpeg

注意: 在这里可以仅下载FFmpeg-iOS编译脚本,不用下载源码,执行脚本会自动下载源码,如果不想每次自动下载,可以手动下载源码,稍微修改下FFmpeg编译脚本即可.这里不做过多说明.

你可以自己安装,也可以完全不管,在编译脚本里面有对yasm和gas-preprocessor的支持判断,没有该环境会自动下载并配置。

使用方法:

Use build-ffmpeg-tvos.sh for tvOS.

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时额外需要的依赖库:

编译

按照实际需要修改配置。支持的版本越多,项目的安装包将越大。

Tips:
FFmpeg 提供有自己的编解码库,封装了codec层,但是有一些codec是具备自己的License,FFmpeg不会默认集成,例如libx264、FDK_AAC、LAME等,但是FFmpeg就像一个平台,可以将其他的第三方codec以插件的形式添加进来,然后为开发者提供统一的接口。

如有需要集成libx264的同学单独Q我,就没传到git上。

iOS项目集成FFmpeg

$(SRCROOT)/$(PRODUCT_NAME)/FFmpeg-iOS/include,(请根据自己实际路径更改)

参考:

使用FFmpeg

正如开篇就提到的,强大的FFmpeg提供了视频采集功能、视频格式转换、视频抓图、给视频加水印等。同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。

下一章,我将从FFmpeg的使用开始讲起,包括API调用和Tool调用。


如果喜欢,请帮忙点赞。支持转载,转载请附原文链接。

上一篇下一篇

猜你喜欢

热点阅读