网站首页 > 技术教程 正文
编译环境
- mac系统版本:10.13.6
- NDK版本: r16b版本
- ffmpeg版本:4.0.2
- 对应自己的系统选择ndk
选择自己系统对应的ndk
环境变量配置
命令行中配置:
- 输入 vim ~/.bash_profile 或者 open ~/.bash_profile
- 加入
// /Users/shitou/Downloads/android-ndk-r16b 换成你自己的r16b的路径
// 命令行进入r16b的文件夹,输入pwd,复制路径
export NDK_HOME=/Users/shitou/Downloads/android-ndk-r16b
export PATH=$PATH:$NDK_HOME/
- 等等还有第三步呢,输入 source ~/.bash_profile 使环境生效
编译脚本
强调下 下面的脚本是没有开启neon跟硬解码的
- 创建一个文件比如 ffmpeg-build.sh, 复制粘贴下面的内容
记得修改自己的 ndk路径 , 编译之后输入的目录
#!/bin/bash
ADDI_CFLAGS="-marm"
API=27
PLATFORM=arm-linux-androideabi
CPU=armv7-a
NDK=/Users/shitou/Documents/android-ndk-r16b # 修改自己本地的ndk路径
SYSROOT=$NDK/platforms/android-$API/arch-arm/
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORM
TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
OUTPUT=/Users/cvte/Documents/share #自己指定一个输出目录
function build_one
{
./configure \
--prefix=$OUTPUT \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
--extra-ldflags="-marm" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
echo "开始编译ffmpeg..."
build_one
echo "完成编译..."
把ffmpeg-build.sh放入ffmpeg4.0.2文件夹中
- 加入脚本文件
- 修改编译脚本的权限 比如ffmpeg-build.sh
// 命令行进入ffmpeg4.0.2文件夹
chmod 777 ffmpeg-build.sh
执行./ffmpeg-build.sh
相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~
编译完成之后会出现:
- 编译成功会出现
目录所在地:
编译之后的文件夹
好了,到这里应该大家都编译成功了吧.
接下来我们应该是讲怎么导入生成的这些文件进入Android studio,不过先不急,让我们
先说说4.x.x跟之前3.x.x的区别,不然等下你用之前的代码第一句就有问题,哈哈~~,先听我唠叨唠叨.
我们可能看之前的博客,第一句代码就是
//注册所有封装器 -- 4.x以上废弃
av_register_all();
结果发现
attribute_deprecated
void av_register_all(void);
与此同时,解码器的注册函数也废弃掉了
//注册所有的解码器 -- 4.x以上废弃
avcodec_register_all();
所有说4.x的版本版本跟3.x还有一些不同的,
这些注册函数都不需要我们手动调用了,组件可以直接用
但是我们怎么查找哪些方法有被废弃,或者被替代呢?
在我们从官网下载下来的ffmpeg4.0.2文件夹中,找到doc文件夹,里面有个APIchanges的文件,用编辑器打开,我们就能发现在这个版本里面的api变更.
ctrl+F查找对应的api
现在我们就能对比跟之前的版本,哪些api有变化了.
接下来进入Android studio集成ffmpeg的部分.
原文 FFMpeg系列一:Mac上FFMpeg4.0.2编译 - 掘金
猜你喜欢
- 2024-11-06 Qt音视频开发9-ffmpeg录像存储(nba比赛录像回放)
- 2024-11-06 音视频开源基础 - ffmpeg命令(ffmpeg音频处理)
- 2024-11-06 ffmpeg常用命令行集锦(ffmpeg 命令大全)
- 2024-11-06 音视频开发7. ffmpeg 几个重要结构体
- 2024-11-06 超详细的手把手下载安装FFmpeg整个过程,你学会了吗?
- 2024-11-06 FFmpeg硬解码(ffmpeg硬解码和直接使用cuda的区别)
- 2024-11-06 mPEG-Lys(MAL)-DBCO,甲氧基PEG赖氨酸马来酰亚胺二苯并环辛炔
- 2024-11-06 音视频流媒体高级开发(FFmpeg6.0/WebRTC/RTMP/RTSP/编码解码)
- 2024-11-06 FFmpeg在windows的安装、合并、切片、.m4s、.m3u8处理
- 2024-11-06 完美解决Linux环境编译ffmpeg库(linux编译环境配置)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)