使用OBS和MonaServer搭建本地直播服务
OBS之前已经说过,不知道的请看:使用OBS录制游戏视频。
上次是使用OBS录制游戏视频,保存为文件,这只是OBS的功能之一,别忘了OBS的B可是“Broadcaster”的缩写,重点是直播!
废话不多说,想要直播,首先要满足以下前提条件:
- 上传带宽2M以上,由于国内宽带上下行不对等,这可能至少需要12M的宽带才行
- 有外网IP,这个怎么看呢?只需要百度“IP”,然后对比自己拨号分配来的IP,看是否相同,相同就是有外网IP。如果拨号返回的IP是“10.x.x.x”这样的,很不幸,这是内网IP
- 如果使用路由器,路由器需要支持端口映射或DMZ主机,当然也需要自己会设置
满足条件了吗?满足就继续往下看~
- 开始之前,你还需要另一个软件:MonaServer,这个软件用作服务器,来接收OBS的串流数据
- 解压上一步下载的MonaServer,直接双击运行“MonaServer.exe”,不需要任何设置即可
- 打开OBS,打开设定
- 切换到“编码”,根据自己的上传带宽调整最大比特率,通常设置为1000以上
- 切换到“广播设定”,模式选择“直播流”,串流服务选择“custom”,FMS URL填入“rtmp://127.0.0.1:1935”
- OBS保存设置,在主界面中添加需要的视频来源,编辑好场景,预览无误后,点击“开始串流”
- 等几秒,看到OBS主界面右下角变为绿色,同时显示“xx kb/s”(xx不为0),串流成功
这只是搭建好了串流服务器,怎么让别人看到直播呢?
有两种方法:
- 使用支持RTMP协议的播放器,如PotPlayer、MPC-HC、VLC等,直接打开链接“rtmp://<你的IP>:1935/”(最后的斜杠最好带上,某些播放器可能需要)
- 搭建一个HTTP网页服务,使用网页在线观看
第一种方法没技术含量,这里说说第二种方法。
MonaServer本身已经自带了HTTP服务,只需要把网页文件放入“www”目录下即可,可以随意找一个支持rtmp协议的网页播放器。
我用的是“video.js”,这是个开源的HTML5播放器。
从video.js官网下载最新版,解压到MonaServer的www目录下。
修改demo.html:
<video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="1000" height="640" data-setup="{}"> <source src="rtmp://127.0.0.1:1935/" type="rtmp/mp4" /> <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p> </video>
即把video标签中多余的source全部删除,只写入一个rtmp地址。
浏览器访问“http://127.0.0.1/demo.html”,如果不出意外,就能正常看到直播了。
如果自己本地测试全部OK,但是别人无法打开,可能是运营商把部分端口封了,比如80端口肯定是封掉的,需要在端口映射时映射到其他端口,比如18080什么的。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
video-js-7.3.0不支持rtmp格式媒体文件?
新版貌似需要加载插件?官网有文档
这个demo.html在哪啊我没找到,而且下载最新版是在哪里下啊库
这是2015年的文章,部分内容可能已经失效,仅供参考。
而且MonaServer已经多年没有更新,建议使用其他软件代替,比如:SRS。