iOS 中集成 FFmpeg

本文详细介绍了如何在iOS项目中集成FFmpeg,包括编译FFmpeg、导入项目、使用FFmpeg命令行功能以及在iOS开发中的具体应用。内容涵盖了编译脚本、添加依赖库、命令行工具的使用以及在App中调用命令行转换视频等操作。

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

ffmpeg的代码是包括两部分的,一部分是library,一部分是tool。api都是在library里面,如果直接调api来操作视频的话,就需要写c或者c++了。另一部分是tool,使用的是命令行,则不需要自己去编码来实现视频操作的流程。

从编译FFmpeg ——> 到使用FFmpeg ——> 注意事项

1、编译FFmpeg

  1. 编译FFmpeg所需的脚本文件gas-preprocessor

  • 下载之后,将 gas-preprocessor.pl 文件复制到 /usr/sbin/ 目录下,如果该目录无法修改,那么可将文件复制到 /usr/local/bin/ 目录下。

  • 为 gas-preprocessor.pl 文件开启可执行权限,在终端中进行如下命令:

chmod 777 /usr/sbin/gas-preprocessor.pl
或者
chmod 777 /usr/local/bin/gas-preprocessor.pl
  1. yasm 1.2.0 yasm 是一个完全重写的 NASM 汇编。它支持x86和AMD64指令集。 可以使用homebrew来安装,如果没有install yasm,在执行./build-ffmpeg.sh命令的时候,会自动检测并安装。

brew install yasm
  1. 编译脚本

    FFmpeg-iOS-build-script

    在这个文件中,我们可以对要进行编译的FFmpeg进行一系列的设置。

    FFmpeg-iOS-build-script

  • 设置FFmpeg的版本

FF_VERSION="4.0.3"
  • 设置所要支持的架构

ARCHS="arm64 armv7 x86_64 i386"
  • 设置所需要的FFmpeg功能配置

禁用一些不必要的功能,可以有效地减小最终库文件的大小
CONFIGURE_FLAGS="--enable-cross-compile --disable-debug --disable-programs \
                 --disable-doc --enable-pic"
其中 --disable-cross-compile 禁止交叉编译
其中 --enable-cross-compile 支持交叉编译
  • 进入脚本所在文件夹目录,执行脚本

./build-ffmpeg.sh

执行结果

执行结果

2、将FFmpeg导入到项目中

将FFmpeg-iOS添加到项目中

FFmpeg-iOS lib文件

  • 添加依赖库

libz.tbd libbz2.tbd libiconv.tbd AudioToolbox.framework CoreMedia.framework VideoToolbox.framework

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发

【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值