Native开发工具之交叉编译移植(五)

本文详细介绍了如何在 Linux 环境下使用 NDK 对 FFmpeg 进行交叉编译,包括 FFmpeg 的基本概念、编译步骤、与 LIBX264 和 FACC 的联合编译,以及在 arm 平台上移植时遇到的问题和解决方案。通过此教程,读者可以掌握 FFmpeg 配置、编译和移植到 ARM 设备的核心技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680
本文将通过以下三个部分来介绍交叉编译移植

  • FFmpeg 编译
  • FFmpeg+LIBX264+FACC交叉编译 实现264流录制AVI文件
  • 移植FFmpeg在arm交叉编译时遇到的问题

一、FFmpeg 编译

FFmpeg 是什么?

FFmpeg 全称(First Forward MPEG),是一款领先的开源多媒体框架,采用 LGPL 或 GPL 许可证,除了具有音视频编解码功能外,还有视频格式转换、视频抓图、视频水印、推流等功能。 FFmpeg 在 Linux 平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括 Windows 、Mac OS X 等。

FFmpeg的官方网站是:http://ffmpeg.org/

3239933-2ffeea2a8d919a25.jpg

Windows 平台下,编译好的可用版本一般有三个: Static ,Shared ,Dev 。Static 里面有 3 个应用程序:ffmpeg.exe ,ffplay.exe ,ffprobe.exe ,动态链接库都被编译在 exe 文件中,每个 exe 的体积都很大,可直接运行,如播放一段视频,命令行下执行:ffmpeg video.mp4。Shared 里面除了 3 个应用程序:ffmpeg.exe ,ffplay.exe ,ffprobe.exe 之外,还有一些动态链接库,如 avcodec-54.dll 之类的,Shared 里面的 exe 体积较小。Dev 版本主要用于开发的,里面包含了一些库文件 xxx.lib 和文件 xxx.h 。

3239933-c211e8b2dde071b3.png

Linux 平台下,本文选择的版本是 2.6.9 ,地址:http://ffmpeg.org/olddownload.html

编译 FFmpeg

搭建 Linux 开发环境,安装 Ubuntu 虚拟机或者电脑装成双系统,或者购买一个低配的阿里云主机,文件传输工具推荐 FileZilla 或 XFTP 。

Linux 环境下配置 NDK

首先下载 Linux 环境下的 NDK (注意科学上网),如 android-ndk-r11c-linux-x86_64.bin
执行如下命令进行解压缩:
./android-ndk-r11c-linux-x86_64.bin
配置环境变量,首先编辑 .bashrc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值