win10 wsl 编译 android 上运行的 带rtmp模块 nginx

1. win10 wsl adb

下载ndk15c

sudo vi /etc/profile

export PATH="$ANDROID_NDK:$PATH"

source /etc/profile

 

# 安装android-tools

sudo apt install adb

 

# 默认安装位置为 /usr/lib/android-sdk/platform-tools/

 

# 下载最新版

wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip

 

实际看windows android studio platform-tools 版本 r29.0.5

实际下载地址

wget https://dl.google.com/android/repository/platform-tools_r29.0.5-linux.zip

 

# 解压缩

unzip ./platform-tools-latest-linux.zip

 

# 替换

sudo cp -r platform-tools /usr/lib/android-sdk/platform-tools

 

adb version

Android Debug Bridge version 1.0.41

Version 29.0.5-5949299

参考  《Win10+WSL开发踩坑记录》

 

 

2. nginx 编译 

直接参考下面文章 按最后的文件列表下载文件放在一个目录

https://zhangtom.com/2017/07/11/交叉编译带RTMP模块的Nginx到Android/

2.1 运行
# 第一个句点不能省略,用于保留脚本之间的环境变量
. ./make_openssl.sh

2.2 修改make_nginx.sh

注掉make_nginx.sh 里 ./configure 及其以下命令行

 

运行 . ./make_nginx.sh

编辑auto/cc/name文件,将21行的“exit 1”注释掉(令测试程序不会报错)。

编译错误:

src/os/unix/ngx_files.c:885:21: error: unused variable 'fs' [-Werror=unused-variable]

struct statvfs fs;

解决src/os/unix/ngx_files.c加

#include

加入变量

CROSS_COMPILE_GCC=/home/sheng/ndk/android-ndk-r15c/toolchains/arm-

linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc

RTMP_MODULE_DIR=/home/sheng/nginx-with-rtmp/nginx-rtmp-module

按下面一条条运行

./configure \
--crossbuild=android-arm \
--prefix=/sdcard/nginx \
--with-http_ssl_module \
--with-openssl=$OPENSSL_DIR \
--without-http_gzip_module \
--without-pcre \
--without-http_rewrite_module \
--without-http_proxy_module \
--without-http_userid_module \
--without-http_upstream_zone_module \
--without-stream_upstream_zone_module \
--add-module=$RTMP_MODULE_DIR \
--with-cc=$CROSS_COMPILE_GCC \
--with-cc-opt="--sysroot=$ANDROID_SYSROOT -Wno-sign-compare -pie -fPIE" \
--with-ld-opt="--sysroot=$ANDROID_SYSROOT -pie -fPIE"

make -j8
sudo make install -j8

 

编译好修改下面

vi nginx/conf/nginx.conf

 

rtmp {

17 server {

18 listen 1935;

19 application myapp {

20 live on;

21 drop_idle_publisher 5s;

22 }

23 }

24 }

 

42 #gzip on;

43

44 server {

45 listen 8081;

46 server_name localhost;

 

 

85 #location ~ /\.ht {

86 # deny all;

87 #}

88

89 location /stat {

90 rtmp_stat all;

91 rtmp_stat_stylesheet stat.xsl;

92 }

93 location /stat.xsl {

94 root /sdcard/nginx-rtmp-module/;

95 }

96 location /control {

97 rtmp_control all;

98 }

99 location /rtmp-publisher {

100 root /sdcard/nginx-rtmp-module/test;

101 }

102 location / {

103 root /sdcard/nginx-rtmp-module/test/www;

104 }

105 }

52 location /netold {
53 root html;
54 index index.html index.htm;
55 }

 

改权限

sudo chmod 777 /sdcard/nginx/sbin/nginx

 

把编译好修改好文件拷到手机

 

adb push -r /sdcard/nginx /sdcard

adb push nginx-rtmp-module /sdcard/nginx-rtmp-module

 

手机里shell运行

adb shell

cp /sdcard/nginx/sbin/nginx /data/local/tmp/nginx/sbin

 

运行nginx

./data/local/tmp/nginx/sbin/nginx

访问网页成功

http://192.168.123.20:8081

http://192.168.123.20:8081/stat

 

关闭nginx

./nginx -s stop

参考《交叉编译带RTMP模块的Nginx到Android》

https://zhangtom.com/2017/07/11/交叉编译带RTMP模块的Nginx到Android/

 

 

 

你可能感兴趣的:(win10 wsl 编译 android 上运行的 带rtmp模块 nginx)