Android移植srs流媒体服务器
在ubuntu下编译通过,具体步骤如下:
1、配置交叉编译环境
网上百度搜索下载arm-2009q3.tar.gz安装包,解压到/user/local/arm,在/etc/profile中添加如下配置。
执行source /etc/profile
2、github下载srs源码。
git clone https://gitee.com/winlinvip/srs.oschina.git srs && cd srs/trunk && git remote set-url origin https://github.com/ossrs/srs.git && git pull
3、修改trunk/auto/options.sh。
修改前:
SRS_CROSS_BUILD=YES
SRS_TOOL_CC=gcc
SRS_TOOL_CXX=-g++
SRS_TOOL_AR=ar
SRS_TOOL_LD=ld
SRS_TOOL_RANDLIB=randlib
SRS_EXTRA_FLAGS=
修改后:
SRS_CROSS_BUILD=YES
SRS_TOOL_CC=arm-none-linux-gnueabi-gcc
SRS_TOOL_CXX=arm-none-linux-gnueabi-g++
SRS_TOOL_AR=arm-none-linux-gnueabi-ar
SRS_TOOL_LD=arm-none-linux-gnueabi-ld
SRS_TOOL_RANDLIB=arm-none-linux-gnueabi-randlib
SRS_EXTRA_FLAGS=
4、修改trunk/research/librtmp/Makefile
查找GCC = gcc修改为GCC = arm-none-linux-gnueabi-gcc
查找ifeq ($(GCC), arm-linux-gnueabi-gcc)修改为ifeq ($(GCC), arm-none-linux-gnueabi-gcc)
5、进入trunk目录,开始编译
cd trunk;
./configure --static;
make;
编译完成后在objs目录下会生成srs文件,大小约为12M.
6、建立srs.conf文件,内容如下:
listen 1935;
max_connections 1000;
srs_log_tank file;
pid /data/srs/srs.pid;
srs_log_file /data/srs/srs.log;
http_api {
enabled on;
listen 1985;
}
http_server {
enabled on;
listen 8080;
dir /data/srs/html;
}
stats {
network 0;
disk sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
}
7.将srs文件push到Android目录/system/bin/下,将srs.conf文件push到Android目录/data/srs/下。[NOTE:Android系统若不是eng环境,可能需要配置selinux权限,具体配置方法本文不再讨论,若有时间再从新写一篇文章讲述。]
8.adb shell连接进入Android shell,执行srs -c /data/srs/srs.conf。运行netstat -ntlp,若看到如下图所示端口,表明运行成功
9.测试结果
推流视频到建立的服务器
ffmpeg -i test.mp4 -f flv rtmp://192.1688.1.109/live/test
播放视频
ffplay rtmp://192.1688.1.109/live/test
效果如下:
10,github地址:https://github.com/flycnzebra/srs3.0-android