博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FFmpeg Android 学习(一):Android 如何调用 FFMPEG 编辑音视频
阅读量:5788 次
发布时间:2019-06-18

本文共 895 字,大约阅读时间需要 2 分钟。

一、概述

在Android开发中,我们对一些音视频的处理比较无力,特别是编辑音视频这部分。而且在Android上对视频编辑方面,几乎没有任何API做支持,MediaCodec(硬编码)也没有做支持。那怎么办呢?在中我们知道ffmpeg命令行能够编辑音视频。感觉对于编辑音视频这方面的需求貌似只能使用FFMPEG来实现了(肯定还有别的办法,但是FFMPEG绝对是最普遍的解决方案)。然而在Android上使用FFMPEG也不是一件容易的事情,比较正统的办法就是使用NDK来变异,但是NDK编译的成本实在是太高,而且开发难度极大。本文提供了一个比较靠谱的方法来实现在Android上使用FFMPEG编辑音视频。

二、NDK编译

虽然使用NDK编译是难度极高的方案,但是得说明一下NDK编译FFMPEG才是最合适与优秀的解决方案。

介绍下NDK编译FFMPEG所需要具备的要求:

  • C语言
  • 熟练地使用NDK
  • 了解FFMPEG源码,至少源码中的API得熟悉
  • 音视频知识

有了这些技术知识,那么你就能可以开始尝试用NDK编译FFMPEG了。

三、使用开源项目(WritingMinds/ffmpeg-android-java)

首先上链接

具体的使用方法在GitHub上已经有比较详细的介绍了,不作过多赘述了。

在自己项目中使用只要在gradle中引用如下类库即可。

compile 'com.writingminds:FFmpegAndroid:0.3.2'

下面主要介绍下该种方法的优缺点。

优点:

  1. 开发成本低,快速
  2. 学习成本低,只要掌握FFMPEG的命令调用即可
  3. 对一些简单的编辑操作,性能上没有太大额外的消耗

缺点:

  1. 支持库容量大,导致APK变大(可能要30M左右)
  2. 没法像NDK一样在源码层就组装成需求所需要的功能,而导致性能的额外消耗
  3. 不够灵活,可能会出现意想不到的错误。
  4. 开源库的维护不确定性

四、总结

对于在Android上使用FFMPEG的问题上,首先推荐使用NDK编译的方法。在时间不允许的情况下,可以使用开源库,当然必须忍受APK包变大这个问题。各位可以权衡自己的需求来做出选择。

转载地址:http://htmyx.baihongyu.com/

你可能感兴趣的文章
Python_Mix*random模块,time模块,sys模块,os模块
查看>>
iframe刷新问题
查看>>
数据解码互联网行业职位
查看>>
我所见的讲的最容易理解,逻辑最强的五层网络模型,来自大神阮一峰
查看>>
vue-cli项目打包需要修改的路径问题
查看>>
js实现复选框的操作-------Day41
查看>>
数据结构化与保存
查看>>
[SpringBoot] - 配置文件的多种形式及优先级
查看>>
chrome浏览器开发者工具之同步修改至本地
查看>>
debian7 + wheezy + chromium + flashplayer
查看>>
AOP
查看>>
进阶开发——文档,缓存,ip限速
查看>>
vue中子组件需调用父组件通过异步获取的数据
查看>>
uva 11468 - Substring(AC自己主动机+概率)
查看>>
Mysql 数据备份与恢复,用户创建,授权
查看>>
沉思录
查看>>
Angular.js中的$injector服务
查看>>
构建之法读书笔记01
查看>>
linux - lsof 命令最佳实践
查看>>
kafka性能测试
查看>>