交叉编译ffmpeg 3.0

前言

ffmpeg库是一个非常强大的音视频编解码库,像一些视频的转换,剪切,合并,提取音轨,添加滤镜等都可以很方便的实现。目前在安卓平台很流行的一些短视频应用,直播应用中也有相关的使用。

编译

我整理了一些编译的shell脚本,都放在了github,其中可能有些库,您不需要,您可以自行修改编译脚本来满足您项目的需要。
https://github.com/shutup/ffmpeg4android
alone文件夹中是可以单独编译一些库脚本
one文件夹下是一个调用的合集
使用脚本前,注意修改一下脚本中的一些文件路径。

注意

  1. 在android5.0的系统中,谷歌系统对于NDK开发中,使用一些native 可执行程序有了新的要求,要求程序支持PIE,也就是位置无关的可执行程序。这要求我们在编译使用在5.0系统中的native程序时,添加一些额外的编译参数,而且似乎这种模式不是向下兼容的,因此我们需要编译两种native程序,然后在JAVA代码中判断当前手机的系统版本,然后分别调用不同的可执行程序。

使用

在安卓平台一般是JNI的调用,涉及到NDK开发。

  1. 我们可以使用ffmpeg库提供的函数,自己写实现功能的代码,这种方式定制化程度高,效果也会好,当然对开发人员的要求也就高。传统的方式。
  2. ffmpeg库自带了一个命令行程序ffmpeg,这个程序基本上包含了ffmpeg库的所有功能,一些操作都可以通过不同的命令行参数实现。比较取巧的方式。关于这种方式的使用,我写了一个简单的demo,可以剪切和合并视频。
    https://github.com/shutup/android-ffmpeg-java-demo
    另外demo中使用了guardianproject的ffmpeg java wrapper
    https://github.com/guardianproject/android-ffmpeg-java

你可能感兴趣的:(交叉编译ffmpeg 3.0)