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