Yasea是一个100%纯Java写的,完全开源的安卓直播推流客户端。它使用MediaCodec系统接口对H.264和AAC进行硬编码,封装FLV格式,推送至RTMP服务器。延迟达到毫秒级别。
特性列表:
Android Min API 16 (Android 4.1 Jelly Bean)
H.264/AAC硬编码
RTMP推流,事件状态回调
手机横竖屏动态切换
前后摄像头热切换
推流过程随时录制MP4,支持暂停和恢复
下面是yasea-master的工程源码截图:
编译之后,生成apk,在android机器上即可安装运行。
在nginx服务器上安装rtmp直播模块:
1、下载nginx-rtmp-module模块
git clone https://github.com/arut/nginx-rtmp-module.git
如果git没有识别,通过下面命令安装git。
yum install -y git
2、下载nginx模块
假设你之前已经安装好了nginx,且安装目录是/usr/local/nginx。现在在别的目录(这里是/sg)下载一个同样版本的nginx,然后解压。
[root@localhost]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
[root@localhost]# tar -zxvf nginx-1.16.1.tar.gz
3、 进入到解压后的nginx的目录
./configure --prefix=/usr/local/nginx --add-module=/sg/nginx-rtmp-module --with-http_ssl_module
--prefix是nginx的安装目录(以前的),因为我们编译新的nginx最后要拷贝到这个目录。--add-module指定rtmp模块的路径
4、执行make命令
make
make编译之后的nginx二进制文件就在objs目录下,将它覆盖你原来的nginx执行文件。
cp /sg/nginx-1.16.1/objs/nginx /usr/local/nginx/
5、配置
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application hls {
live on;
#record all;
#record_path /home/live_record;
#record_max_size 200M;
hls on;
hls_path /root/lshTool/nginx-1.16.0/live/hls;
hls_fragment 2s;
#publish_notify on; #表示开启鉴权服务
#on_publish http://127.0.0.1:80/publish; #鉴权地址
}
}
}
6、再次启动nginx即可接受手机端的rtmp推流。
7、报错解决
执行添加rtmp模块的时候如果报./configure: error: SSL modules require the OpenSSL library.
执行以下命令然后继续添加rtmp模块即可
[root@localhost]# yum -y install openssl openssl-devel
./configure: error: C compiler cc is not found
执行以下命令然后继续添加rtmp模块即可
[root@localhost]# yum install gcc
[root@localhost]# gcc -v
运行效果:
在桌面端利用rtmp播放器播放直播流:
需要源码(网上也可也搜素下载)和指导的朋友可以加我QQ(395702361)。