OBS+nginx_stmp+VLC搭建直播平台及相关bug

OBS+nginx_stmp+VLC搭建直播平台

      • 直播过程
      • 搭建过程
          • 1. 下载组件
          • 2. 安装nginx服务器
          • 3. 配置nginx服务器
          • 3. 测试本地IP地址是否可以访问
          • 4. 测试1935端口是否开放
          • 5. OBS推流
          • 5. VLC拉流

直播过程

OBS+nginx_stmp+VLC搭建直播平台及相关bug_第1张图片

搭建过程

1. 下载组件

从官网分别下载OBS Studio, nginx_stmp(支持STMP的nginx), VLC播放器,有人已经总结了链接:

链接: https://pan.baidu.com/s/1lN1ps0ZhCb-1A56ycNR88g
密码: 2t88

2. 安装nginx服务器

在cmd下打开nginx.exe,执行一下命令

cd nginx-1.7.11.3-Gryphon //进入nginx的目录
nginx.exe -c conf\nginx-win-rtmp.conf //运行rtmp配置文件

在浏览器中输入"localhost:80",如果出现"Welcome to nginx"则配置成功
OBS+nginx_stmp+VLC搭建直播平台及相关bug_第2张图片

注意:nginx.exe -c conf\nginx-win-rtmp.conf 报错:nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)
原因: 是因为nginx的路径中有中文字,改成英文即可

nginx的打开与关闭

  • nginx 启动
  • nginx -s quit 退出(重新加载,建议先退出,后启动)
  • nginx -s stop 停止
  • nginx -s reload 重新加载(每次修改配置之后都需要重新加载,如果报错,则先退出,在启动)
  • netstat -ltn 查看全部进程号(linux)
  • ps -ef | grep nginx 查看进程命令(linux)
  • kill -9 进程号 杀死进程(linux)
  • tasklist 查看全部的进程号
  • tasklist | findstr 进程 查看指定应用的进程号
  • netstat -ano | findstr 端口号 查看占用端口的进程
  • taskkill /f /pid 进程号 杀死指定进程

linux(ubuntu16.04测试通过)下进行nginx安装与配置链接1, 链接2
由于nginx默认打开一次,重复启动会报错,而且很难理解的错误,所以需要查找进程,杀死后在重新启动.

3. 配置nginx服务器
vi .nginx-1.7.11.3-Gryphon/conf/nginx-org.conf

在文件最后面添加如下代码:

rtmp{
    server{
        # rtmp协议的端口号为1935,可以通过telnet 127.0.0.1 193测试1935端口是否在监听状态
        listen 1935; 
        # 每次传输的数据量,b
        chunk_size 4000;
        # 直播应用
        application live{
            # 直播开启
            live on;
        }
    }
}

在cmd中重新加载nginx

nginx -s reload
3. 测试本地IP地址是否可以访问

因为nginx服务器配置的推流和拉流的IP地址都是本地IP地址,可能存在由于防火墙问题,WLAN无法访问,执行以下命令:

# 获取本机的IP地址
ipconfig
# 测试IP地址是否可以连通
ping (本机的ipv4地址)

如果本地IP地址无法ping通,则可以通过关闭防火墙的方式进行处理.

4. 测试1935端口是否开放

因为nginx服务器配置的推流和拉流端口都是1935端口(TCP端口),所以需要测试端口是否开放,

A: 在cmd下执行以下命令:

# 查看本机已经开通的全部端口
netstat -na
# 查看特定端口是否开放
telnet (本机的ipv4地址) 1935
  • 如果直接跳转到另一个界面(界面为黑屏),则端口开放;
  • 如果出现"无法打开到主机的连接.在端口 1935:连接失败",则端口未开放;
  • 如果出现Telnet不是内部或者外部命令,这是因为Windows系统没有打开telnet功能,具体打开操作详见telnet功能开放(由于系统的版本更新问题,我测试的时候界面已经不一样了,但是基本操作一样,仔细找一下.)

B: 如果端口打开失败,则根据Windows10如何开放1935端口博客进行打开(测试通过)。

5. OBS推流
  1. 打开OBS,然后点击右下角的"设置"按钮,再点击"推流"按钮,界面如下:
    OBS+nginx_stmp+VLC搭建直播平台及相关bug_第3张图片
  • url=rtmp://IP地址/live url中的IP地址为nginx服务器的ip地址,"live"为nginx服务器配置文件中配置的应用名称
  • 流名称是自定义的,可以没有,如有设置了,例如test,则拉流时的完整url为 rtmp://IP地址/live/test
  1. 其他配置可以自行配置,延后确定之后退出,点击右下角的"开始推流"按钮:
    OBS+nginx_stmp+VLC搭建直播平台及相关bug_第4张图片
  2. 开始推流和结束推流是同一个按钮,如果结束,可以直接点击结束推流,直接结束.
5. VLC拉流

点击媒体中的 流—>网络—>填写IP(IP与推流的时候一致)—>最后点击播放

如果推流的时候填写了流名称,拉流的时候一定要填写完整.

OBS+nginx_stmp+VLC搭建直播平台及相关bug_第5张图片

如果有任何问题,欢迎留言.

你可能感兴趣的:(Media,Streaming)