AndroidFFmpeg

2023-10-31

https://github.com/appunite/AndroidFFmpeg.git

本地路径:这个比较全,四种播放方式都有,问题流媒体播放无控制,太快太慢都报错。



/lbg/android/ffmpeg/AndroidFFmpeg

https://github.com/appunite/AndroidFFmpeg

在jni目录下面有子模块:


sudo apt-get install autoconf libtool make autoconf-archive automake pkg-config
git submodule init
git submodule update

问题:子模块太多,下载不完
git clone https://github.com/appunite/AndroidFFmpeg.git AndroidFFmpeg
cd AndroidFFmpeg
git submodule init
git submodule sync #if you are updating source code
git submodule update
cd library-jni
cd jni
download libyuv and configure libs

./fetch.sh
build external libraries Download r8e ndk: https://dl.google.com/android/ndk/android-ndk-r8e-darwin-x86_64.tar.bz2 or https://dl.google.com/android/ndk/android-ndk-r8e-linux-x86_64.tar.bz2

Now it should also support r10e

export ANDROID_NDK_HOME=/your/path/to/android-ndk
build ffmpeg库: /lbg/android/ffmpeg/AndroidFFmpeg/library-jni/jni
build_android.sh中直接增加也可以:
set -x
export ANDROID_NDK_HOME=/lbg/android/android-ndk-r8e
sudo ./build_android.sh
make sure that files library-jni/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build ndk jni library (in library-jni directory)

export PATH="${PATH}:${ANDROID_NDK_HOME}"
source /etc/profile
ndk-build          #只能用r8版本,12版本报错。
 异常:
 Cannot find module with tag 'cpufeatures' in import path

make sure that files library-jni/libs/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build your project

./gradlew build
More codecs

If you need more codecs:

edit build_android.sh
add more codecs in ffmpeg configuration section
remove old ffmpeg-build directory by

rm -r ffmpeg-build
build ffmpeg end supporting libraries

./build_android.sh
During this process make sure that ffmpeg configuration goes without error.

After build make sure that files FFmpegLibrary/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build your ndk library

ndk-build
另一种编译方法:
http://blog.csdn.net/huangqbio2/article/details/24413629

git clone https://review.appunite.com/androidffmpeg AndroidFFmpeg
cd AndroidFFmpeg

git submodule init
git submodule sync #if you are updating source code
git submodule update
cd FFmpegLibrary
cd jni
download libyuv

# I hate svn too :)

svn checkout http://libyuv.googlecode.com/svn/trunk/libyuv


setup freetype environemtn
cd freetype
./autogen.sh
cd ..

setup fribidi environemtn
cd fribidi
autoreconf -ivf
cd ..

setup libogg environemtn——我自己走的
cd libogg
autoreconf -ivf
cd ..

setup libass environemtn
cd libass
autoreconf -ivf
cd ..
setup vo-aacenc environment
cd vo-aacenc
autoreconf
cd ..

setup vo-amrwbenc environment
cd vo-amrwbenc
autoreconf
cd ..

build external libraries
export NDK=/your/path/to/android-ndk
./build_android.sh

make sure that files
FFmpegLibrary/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so
was created, otherwise you are in truble
build ndk jni library
ndk-build

make sure that files FFmpegLibrary/libs/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build your project

android update lib-project -p FFmpegLibrary

android update project -p FFmpegExample

cd FFmpegExample

ant debug

ant installd


or create new projects from FFmpegLibrary and FFmpegExample source directories in your eclipse.

Run FFmpegExample as your android project.

If you have adt >= 20.0 you can click right mouse button on project
and FFmpegLibrary project and "Android->Add native support".

## More codecs

If you need more codecs:

- edit build_android.sh

- add more codecs in ffmpeg configuration section

- remove old ffmpeg-build directory by


rm -r ffmpeg-build

- build ffmpeg end supporting libraries
./build_android.sh

During this process make sure that ffmpeg configuration goes without error.

After build make sure that files
FFmpegLibrary/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so
was created, otherwise you are in truble

- build your ndk library


ndk-build

- refresh your FFmpegLibrary project in eclipse!!!!

- build your FFmpegExample project


## Credits

Library made by Jacek Marchwicki from Appunite.com

- Thanks to Martin Böhme for writing tutorial: http://www.inb.uni-luebeck.de/~boehme/libavcodec_update.html

- Thanks to Stephen Dranger for writing tutorial: http://dranger.com/ffmpeg/

- Thanks to Liu Feipeng for writing blog: http://www.roman10.net/how-to-port-ffmpeg-the-program-to-androidideas-and-thoughts/

- Thanks to ffmpeg team for writing cool stuff http://ffmpeg.org

- Thanks to Alvaro for writing blog: http://odroid.foros-phpbb.com/t338-ffmpeg-compiled-with-android-ndk

- Thanks to android-fplayer for sample code: http://code.google.com/p/android-fplayer/

- Thanks to best-video-player for sample code: http://code.google.com/p/best-video-player/

- Thanks to Robin Watts for his work in yuv2rgb converter http://wss.co.uk/pinknoise/yuv2rgb/

- Thanks to Mohamed Naufal (https://github.com/hexene) and Martin
Storsjö (https://github.com/mstorsjo) for theirs work on sample code for
 stagefright/openmax integration layer.

- Thanks www.fourcc.org for theirs http://www.fourcc.org/yuv.php page

- Thanks to Cedric Fungfor his blog bost: http://vec.io/posts/use-android-hardware-decoder-with-omxcodec-in-ndk

- Thanks Google/Google chrome/Chromium teams for libyuv library https://code.google.com/p/libyuv/

- Thanks to Picker Wengs for this slides about android multimedia stack
http://www.slideshare.net/pickerweng/android-multimedia-framework    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AndroidFFmpeg 的相关文章

  • Vue使用v-for遍历map

    功能 遍历数据库中按钮的图片和名字 当页面打开时 触发查询事件 以下图形式显示出来 前端代码 遍历存在数据库中的按钮名称和图片名称 其中按钮的click事件名称和按钮图片名称相同

随机推荐

  • 【Linux】Linux是如何诞生的?

    本文主要讲述Linux的诞生背景以及一些小故事 其中 还清晰地讲述了Unix BSD GUN GPL等名词的含义及来源 Table of Contents Unix C语言 BSD GUN GPL Linux Linux的内核发展 注意 本
  • 无法打开程序因为msvcp140.dll丢失,msvcp140.dll丢失的解决方法

    前几天看到有小伙伴再问什么是msvcp140 dll文件 相信很多人都不知道这是什么吧 如果电脑msvcp140 dll文件丢失的话会怎么样呢 丢失了应该如何找回呢 其实这些都是一些比较常见的电脑知识 我们是需要去了解一下的 废话不多说 下
  • DearMob iPhone Manager for Mac(iPhone手机数据加密传输软件)

    DearMob iPhone Manager 是Mac平台上一款功能强大的iPhone数据传输工具 无需iTunes即可完成数据传输 DearMob iPhone Manager Mac版能够为您进行影片 音乐 照片 通讯录等内容进行传输或
  • PyTorch实现ResNet18

    ResNet 18结构 基本结点 代码实现 import torch import torch nn as nn from torch nn import functional as F class RestNetBasicBlock nn
  • 【Qt】QString转char*

    2023年8月18日 周五上午 QString Qstr 巨龙之路 char Cstr Qstr toUtf8 data
  • VIPCODE:机器人编程的好处与坏处

    机器人编程的好处与坏处 对于家长们来说 孩子的学习一直都是他们十分关心和重视的一个事情 家长在培养孩子的学习方面也是非常的认真耐心的 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于机器人编程的好处与坏处其实并不是很清楚
  • css 盒模型

    css 盒模型 html元素可以看成一个盒子 包括 边框 编剧 填充和实际内容 盒子模型 Box Model Margin 外边距 清除边框区域 Margin没有背景颜色 它是完全透明的 Border 边框 边框周围的填充和内容 Paddi
  • Caffe源码中math_functions文件分析

    Caffe源码 caffe version 09868ac date 2015 08 15 中有一些重要文件 这里介绍下math functions文件 1 include文件 1
  • 将单链表记录的数据写入到文本文件中

    C语言单链表详解 附加强练习 mc10141222的博客 CSDN博客 继上一个讲单链表的文章 我们只需要在那个基础上再加一点代码便能将所记录的学生数据写入到我们所要写入的文本文件中 这涉及到文件的读写 因此练习一下这个也能顺便帮我们更好地
  • SpringCloud基本原理及应用(一)

    1 springcloud简介 主要提供了微服务开发所需的配置管理 服务发现 断路器 智能路由 微代理 控制总线 全局锁 决策竞选 分布式会话和集群状态管理等组件 可以跟spring boot框架一起使用 会让你开发微服务架构的云服务非常好
  • C语言算法基础——二叉树的实现

    文章目录 前言 一 实现二叉树的基本思想 二 二叉树的代码 1 二叉树的结构体 2 二叉树的初始化 3 二叉树的创建 4 前中后序遍历 5 求树的深度 6 二叉树的翻转 7 主函数测试 8 结果展示 总结 前言 1 二叉树 Binary t
  • Maven篇:搭建私有仓库之Nexus

    环境准备 linux版本 CentOS Linux release 7 9 1804 JDK版本 jdk 8u191 linux i586 Maven版本 apache maven 3 6 3 Nexus版本 nexus 3 53 0 01
  • java四种权限修饰符

    访问权限修饰符 public 意为公开的 访问权限最高 可以跨包访问 protect 意为受保护的 权限次之 可以在同包和子 父类中访问 default 意为默认的 一般不写 权限次之 可以在同包中访问 private 意为私有的 权限最低
  • 自动化测试优势&劣势

    目录 一 自动化测试概述 二 自动化测试优势 劣势 优势 劣势 三 自动化测试常用工具 代码级别 接口 协议级别 界面级别 一 自动化测试概述 软件自动化测试是相对手工测试而存在的 由测试人员根据测试用例中描述的规程一步步执行测试 得到实际
  • 创建chrome右键菜单划词搜索扩展

    转载请注明出处 http blog csdn net zhymax article details 8552830 上网时经常在多个搜索引擎间切换 但使用chrome自带的搜索引擎切换比较麻烦 换一个引擎就需要设置一次配置 因此也在chro
  • Working routine【Codeforces 706 E】【二维链表】

    Codeforces Round 367 Div 2 E 可以说是一道模拟题了 写了有些时候 可能是太菜了吧 题意 给出一个原始矩阵 之后有Q次操作 我们将两个矩阵交换位置 题目中保证两个矩阵不相交 给出的是两个矩阵的左上方的端点 以及它们
  • 机器学习sklearn-特征工程

    数据挖掘的5大流程 1 获取数据 2 数据预处理 3 特征工程 将原始数据转换为更能代表预测模型的潜在问题的特征的过程 可以通过挑选最相关的特征 提取特征以及创建特征来是想 4建模 测试模型并预测结果 5 上线模型 特征工程 sklearn
  • Qt也有垃圾回收(通过QScopedPointer实现),下决心在项目里使用QScopedPointer,省了太多事情了,而且更安全!!...

    也谈Qt的垃圾回收 前几天在做代码审核的时候 Kai Uwe Broulik建议使用QScopedPointer来替代手工内存管理 使用后发觉确实节约了不少代码量 我的CHERRY可以延长寿命了 但是通过简单地阅读代码 发现和Python等
  • Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)

    备注 2023 7 4修改 如果是ros空间 可以在工作空间中使用单独cv bridge的方式 比较简单 是我目前常用的方式 放在文章最后 由于ROS Melodic自带的是Opencv3 2 0 而我自己下载的是opencv3 4 5 所
  • AndroidFFmpeg

    https github com appunite AndroidFFmpeg git 本地路径 这个比较全 四种播放方式都有 问题流媒体播放无控制 太快太慢都报错 lbg android ffmpeg AndroidFFmpeg http