FFmpeg安卓平台编译

383 阅读1分钟

1.FFmpeg

1.简介

FFmpeg是一个开源免费跨平台的音视频流方案,采用LGPL或GPL许可证。提供了音视频的录制、转换、编码、解析以及流化音视频的完整解决方案。它包含了非常多的工具库。

libavcodec:处理原始音视频流的解码。

libavformat:处理解析视频文件并将包含在其中的流分离出来。

libavutil:处理音视频相关的工具。

libavdevice:处理音视频输入输出设备相关。

libavfilter:处理音视频滤镜。

libswscale:处理视频格式转换与大小缩放、色彩转换。

libswresample:处理音视频重采样。

libpostproc:处理后期音视频效果。

2.编译FFmpeg

1.资源准备
FFMpeg

下载链接:ffmpeg.org/download.ht…

下载选项:

image-20220718145142198.png

NDK

image-20220718145555788.png

image-20220718151545889.png

编译脚本
#!/bin/bash
set -x
CPU=armv7-a
API=21
OUTPUT=/Users/dz0400149/ffmpeg/$CPU
TOOLCHAIN=/Users/dz0400149/Library/Android/sdk/ndk/21.1.6352462/toolchains/llvm/prebuilt/darwin-x86_64
SYSROOT=$TOOLCHAIN/sysroot
./configure \
--disable-yasm \
--enable-version3 \
--prefix=$OUTPUT \
--enable-gpl \
--enable-neon \
--disable-static \
--enable-shared \
--disable-doc \
--disable-small \
--disable-programs \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--arch=arm \
--cpu=$CPU  \
--enable-cross-compile \
--sysroot=$SYSROOT \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- 
--cross_prefix_clang=$TOOLCHAIN/bin/armv7a-linux-androideabi$API- \
--target-os=android \
--extra-cflags="-fpic" \

编译成功之后文件目录如下

image-20220718172700163.png \