[Cmake-Android音视频]NDK-r14b编译ffmpeg3.4支持neon,硬解码

[Cmake-Android]音视频总结:

 

编译环境

  • Ubuntu16.04 x86_64
  • Ffmpeg3.4
  • ndk-r14b

编译前的准备

ubuntu16.04 64位

http://releases.ubuntu.com/16.04.3/

下载ndk

https://dl.google.com/android/ndk/android-ndk-r14b-linux-x86_64.tar.bz2

下载ffmpeg

http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2

 

查看ubuntu的版本是32位还是64位

uname -a

android-ndk需要和ubuntu版本的位数保持一致

安装make

apt-get install make

安装vim

apt-get install vim

编译步骤

1.创建目录

在ubuntu中/home下创建NDK文件夹,将下载好的android-ndk-r14b和ffmpeg3.4放到NDK文件夹

2.解压

解压android_ndk_r14b

tar -jxvf android-ndk-r14b-linux-x86_64.tar.bz2

解压ffmpeg3.4

tar -jxvf ffmpeg-3.4.tar.bz2

3.编写build_android.sh

在ffmpeg-3.4文件夹中创建build_android.sh文件

编写脚本,脚本如下,支持neon和硬解码

#!/bin/bash

NDK=/home/NDK/android-ndk-r14b
#anroid 5.0
PLATFORM=$NDK/platforms/android-21/arch-arm
#交叉编译工具链
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
#CPU架构
CPU=armv7-a

#输出路径
PREFIX=./android/$CPU

function buildFfmpeg
{
	./configure \
	--prefix=$PREFIX \
	--target-os=android \
	--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
	--arch=arm \
	--cpu=armv7-a \
	--sysroot=$PLATFORM \
	--extra-cflags="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp" \
	--cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
	--nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
	--enable-shared \
	--enable-runtime-cpudetect \
	--enable-gpl \
	--enable-small \
	--enable-cross-compile \
	--enable-asm \
	--enable-neon \
	--enable-jni \
	--enable-mediacodec \
	--enable-decoder=h264_mediacodec \
	--enable-hwaccel=h264_mediacodec \
	--disable-static \
	--disable-doc \
	--disable-ffmpeg \
	--disable-ffplay \
	--disable-ffprobe \
	--disable-ffserver\
	--disable-postproc \
	--disable-avdevice \
	--disable-symver \
	--disable-stripping 

	make -j16
	make install
}

buildFfmpeg

需要将NDK=/mnt/f/ubuntu-workspace/ff/android-ndk-r14b这句替换为你的NDKl路径,如不清楚,可以cd到ndk目录,然后使用pwd命令,即可显示出ndk的路径。

4.编译脚本

chmod +x build_android.sh 
./build_android.sh

5.查看头文件和库文件

成功编译完成后会在ffmpeg-3.4/android/文件夹中生成一个armv7-a文件夹,这个文件夹就是我们所需要的头文件和动态库。

 

遇到的问题:

因为我是在window中用编辑器创建的build_android.sh,所以遇到了下面这个问题

如果使用./build_android.sh报如下错误

-bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory

这是由于在window编辑build_android.sh的编码格式引起的。

可通过如下操作解决:

  • 查看该文件:vim build_android.sh
  • 查看该错误文件的格式(一般报错的文件格式是DOS):
:set ff
  • 修改该文件格式为UNIX:
:set ff=unix
  • 再保存
:wq

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MX Player Pro是欣赏电影的最佳方式。功能强大的视频 播放器, 具有先进的件加速和字幕支持。 a)件加速 - 借助新的H / W解码器,可以将件加速应用于更多视频。 b)多核解码 - MX Player是第一款支持多核解码的Android视频播放器。测试结果证明,双核设备的性能比单核设备高出70%。 c)键入缩放,缩放和平移 - 通过在屏幕上捏合和滑动轻松放大和缩小。还可以选择缩放和平移。 d)SUBTITLE GESTURES - 向前/向后滚动以移至下一个/上一个文本,向上/向下滚动以上下移动文本,放大/缩小以更改文本大小。 e)儿童锁 - 让您的孩子享受娱乐,而不必担心他们可以打电话或触摸其他应用程序。(需要插件) 您可能也喜欢:GetTube - YouTube Downloader&Player Final Mod APK 字幕格式: DVD,DVB,SSA / ASS字幕轨道。 具有完整样式的SubStation Alpha(.ssa / .ass)。 SAMI(.smi)支持ruby标记。 SubRip(.SRT) 成为MicroDVD(.SUB) VobSub的(.SUB / .IDX) SubViewer2.0(.SUB) MPL2(名为.mpl) PowerDivX(.psb) TMPlayer文件(.txt) 图文 PJS(.pjs) WebVTT插入(.vtt) MOD LITE INFO 优化的图形/ Zipalign; 已禁用/已删除不需要的权限+接收方和服务; Analytics / Crashlytics已停用; 删除了启动Google Consent; 语言:多语言。 COLOR MOD信息: 用彩色图标替换所有活动图标 最好在黑暗主题中使用所有活动按钮(设置/ 播放器 /导航/按钮✔) 触摸屏幕时触摸智能锁中的图标(图片)(触摸效果) 重命名为 MX Video 替换图标 应用优化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值