写在前面

啊这,折腾这个的原因是因为有很多手机的直播平台不提供rtmp地址,这意味着基本和obs等工具告别了。我的思路是把电脑的屏幕投到手机上,这很简单,但是这仍然和obs沾不到边,直到我看见一个obs的插件——虚拟摄像头(OBSVirtualCam),把OBS输出源作为一个摄像头,手机上看电脑上的摄像头就可以了(我用的向日葵),但是这个方法延迟极其感人,码率。。。。基本没有。这个方法废弃。
明确一下目标:我希望obs推流的画面和声音能在手机上显示,且延迟不能太高,这就有了局域网推流的方案。

1.NGINX部分

配置rtmp

首先需要带有rtmp模块的Nginx分支,链接附上↓

nginx1.7.11.3Gryphon

如果你的环境稍复杂,且已经有一个在使用的nginx实例,那可以自行添加rtmp模块,这里推荐十三月大佬的文章↓

http://auan.cn/server/1716.html

本文在windows环境下操作.

安装好nginx后,打开配置文件,这里为**/conf/nginx-win.conf**,我们需要修改两处地方:

1.在第18行后添加:

1
2
3
4
5
6
7
8
9
10
11
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
allow play all;
}
}
}

其中listen 1935为rtmp监听的端口,可自定义。

2.在第76行”server_name”后添加:

1
2
3
4
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

启动nginx

在目录里使用:

1
nginx.exe -c conf/nginx-win.conf

来启动nginx并指定配置文件.

为了方便在桌面上就能打开nginx,可以写个批处理,这里是例子:

1
2
3
4
5
6
7
8
9
10
chcp 65001
@echo 启动nginx [live推流端口1935]

d:
::进入D盘
cd nginx1.7.11.3
::进入Nginx所在目录
Timeout /T 10
nginx.exe -c conf/nginx-win.conf
::启动Nginx并指定配置文件

至此,nginx部分告一段落。

2.OBS部分

进obs设置→推流(stream)
如图:
obs设置
其中,服务器的写法为

1
rtmp://本机ip:上文设置监听的端口/live

(写127.0.0.1也没啥毛病),密钥自定义。

保存之后就可以点击OBS的推流了。

3.拉流部分(VLC)

流推好了,我们需要一个接收端,这里推荐VLC
VLC支持绝大部分平台,这里以windows为例。
VLC1
VLC2

这里rmtp的接收地址写法:

1
rtmp://推流的PC地址:上文设置的监听端口/live/上文自定义的密钥

效果图

效果

参考文献

https://blog.csdn.net/qq_21529143/article/details/98639407

http://auan.cn/server/1716.html