http-flv 配置

  • 兼容有无.flv后缀模式,如http://live.pingos.io:8088/flv/ice 等价于 http://live.pingos.io:8088/flv/ice.flv
  • 动态挂载点模式,超简配置。

注意:
对于http-flv协议,有些播放器要求必须以.flv后缀结尾才能正常播放,所以PingOS服务器兼容了有无.flv后缀的两种模式。

配置

flv_live

Syntax: flv_live [rtmp service port] [app=bind rtmp application] [audio=0|1] [video=0|1]
Context: location

  • Desc

    http-flv需要在http模块的location里配置。

    • app参数:当location与application的名字不同时,需要其后跟 app=xxx 来把location与application绑定起来。如果location与application的名字相同,则无需app=xxx参数绑定。
    • audio参数:在flv header里添加音频标志。如果flv header中设置了音频标记,但是flv body中却没有传输音频流只有视频流,播放器可能会尝试等待过久的时间才会开始解码视频帧(首帧显示过慢)。
    • video参数:在flv heaer里添加video标志。
      必须显示配置
  • For example
      rtmp {
          server {
              listen 1935;
              application live0 {
                  live on;
              }
              application live1 {
                  live on;
              }
          }
      }
    
      http {
          server {
              listen 80;
              location flv0 {
                  flv_live 1935 app=live0;
              }
              location flv1 {
                  flv_live 1935 app=live1;
              }
              location live0 {
                  flv_live 1935;
              }
              location live1 {
                  flv_live 1935;
              }
          }
      }
    
测试
  1. live0
    • rtmp推流地址:rtmp://ip/live0/stream-name
    • http-flv播放地址:http://ip/live0/stream-namehttp://ip/flv0/stream-name
  2. live1
    • rtmp推流地址:rtmp://ip/live1/stream-name
    • http-flv播放地址:http://ip/live1/stream-namehttp://ip/flv1/stream-name

动态挂载点

在生产环境里,尤其是ToB的服务里,很可能需要非常多的application,比较笨的方法是我们在配置文件里一条条配置,这非常不利于管理和扩展。
下面展示如何通过通配符,自动生成application,并且通过http-flv url参数指定挂载点名称。

配置模板

```nginx
rtmp {
    server {
        listen 1935;
        application * {
            live on;
        }
    }
}

http {
    server {
        listen 80;
        location flv {
            flv_live 1935;
        }
    }
}
```

挂载点名称可以随意指定,此处依旧以live0、live1为例进行说明

  1. live0
    • rtmp推流地址:rtmp://ip/live0/stream-name
    • http-flv播放地址:http://ip/flv/stream-name?app=live0
  2. live1
    • rtmp推流地址:rtmp://ip/live1/stream-name
    • http-flv播放地址:http://ip/live1/stream-name?app=live1

给该项目点赞   关注我的 Github