一、ndk安装部署
1.1 安装
wget https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip
sudo vi /etc/profile
export NDK_HOME=/home/awa/android-ndk-r21e
export PATH=$PATH:$NDK_HOME
source /etc/profile
ndk-build -v
注释:也可以下载最新的r25b
1.2 注意点
- 第一次下载的最新版本的ndk,由于android-ndk-r25b-linux.zip没有platforms编译会造成失败(后发现可以拷贝低版本的过来)
二、srt编译
2.1 过程
- srt/scripts/build-android下 执行 build-android
- 参数./build-android -n /home/username/ndk -a 28 -t “arm64-v8a x86_64” -m
- 编译完成后,包含arm64-v8a和armeabi-v7a
- 同时里面包含了头文件等信息
2.2 注意点
- 如果报错没有configure文件
- 是因为 #!/usr/bin/tclsh 使用了tclsh
- apt install tclsh即可
三、srt库使用
3.1 拷贝到android studio出现的问题
- 编译不通过
- 缺少函数
- 缺少in6addr_any
3.2 解决办法
- 分别在win10和ubuntu20.04部署android studio,分别使用各个版本ndk编译。
- 在使用openssl情况下,动态库可以编译通过,但是执行时报错
- 在使用openssl情况下,静态库编译不通过,缺少in6addr_any,和一些标准输出,标准输入相关函数
- 在mbed情况下,使用静态库同样出现和openssl相同问题,但是使用动态库就OK了。可以执行。
四、基于android demo和srs实现srt协议推流直播
- 稍后分享下android demo
- srs部署开启srt功能
五、编译好的srt动态库和静态库地址
下载地址:连接