核心配置

rtmp

Syntax: rtmp { ... }
Context: root

  • Desc

    包含所有RTMP设置的配置块。
    必须配置

  • For example

      rtmp {
          ...
      }
    

server

Syntax: server { ... }
Context: rtmp

  • Desc

    声明rtmp的一个server实例
    必须配置

  • For example

      rtmp {
          server {
              ...
          }
      }
    

listen

Syntax: listen (addr[:port]|port|unix:path) [bind] [ipv6only=on|off] [so_keepalive=on|off|keepidle:keepintvl:keepcnt|proxy_protocol]
Context: server

  • Desc

    添加rtmp监听端口,监听端口类型,是否启用ipv6,以及是否打开socket的keepalive选项。
    默认:1935

  • For example

      rtmp {
          server {
              listen 1935;
              ...
          }
      }
    

application

Syntax: application name { ... }
Context: server

  • Desc

    创建一个挂载点,有点类似http配置中的location所起的作用,支持通配符*
    必须配置

  • For example

    • 自适配挂载点配置
        rtmp {
            server {
                listen 1935;
                application * {
                    ...
                }
            }
        }
      
    • 固定挂载点配置

        rtmp {
            server {
                listen 1935;
                application live {
                    ...
                }
            }
        }
      

server_name

Syntax: server_name value
Context: server

  • Desc

    为了实现VHOST功能,作用同http的server_name,允许不同域名使用不同配置.
    默认值:空

  • For example
      rtmp {
          server {
              listen 1935;
              server_name live1.pingos.io; # 替换成你的域名或IP
              application * {
              }
          }
          server {
              listen 1935;
              server_name live2.pingos.io; # 替换成你的域名或IP
              application * {
              }
          }
      }
    

serverid

Syntax: serverid value
Context: server

  • Desc

    该配置起到绑定不同域名的作用,当使用不同的域名(server_name)访问同一个server区块下的服务时需要使用此配置。 如果你使用的拉流域名和推流域名不同,则需要在server中配置serverid。
    默认值:default

  • For example
      rtmp {
          server {
              listen 1935;
              server_name live1.pingos.io; # 替换成你的域名或IP
              server_name live2.pingos.io; # 替换成你的域名或IP
              serverid server1;            # serverid必须全局唯一
              application * {
                  ...
              }
          }
          server {
              listen 1935;
              server_name live3.pingos.io; # 替换成你的域名或IP
              server_name live4.pingos.io; # 替换成你的域名或IP
              serverid server2;            # serverid必须全局唯一
              application * {
                  ...
              }
          }
      }
    

timeout

Syntax: timeout value
Context: rtmp, server

  • Desc

    他主要作用于socket的write操作,用于控制write超时的时间。如果你想快速断开socket连接,可以使用保活工具,比如 KeepAlive或RTMP ping。
    默认:1分钟

  • For example

      timeout 60s;
    

ping

Syntax: ping value
Context: rtmp, server

  • Desc

    RTMP ping 消息的发送间隔。0 代表 关闭ping功能。RTMP ping协议的功能是用来检查连接是否正常。
    服务器将一个特殊的数据包发送给远端并且接收一个远端回复的数据包。
    如果ping消息被发出去之后,服务器没有在ping_timeout规定的时间内收到回复,则断开这路连接。
    ping的默认值:1分钟
    ping_timeout的默认值:30秒

  • For example

      ping 3m;
      ping_timeout 30s;
    

ping_timeout

Syntax: ping_timeout value
Context: rtmp, server

  • Desc

    请参考上面ping的配置。
    ping的默认值:1分钟
    ping_timeout的默认值:30秒

  • For example

      ping 3m;
      ping_timeout 30s;
    

max_streams

Syntax: max_streams value
Context: rtmp, server

  • Desc

    连接复用,设置同一条RTMP连接内容最多可传输的数据通道,不同的通道用来传输音频、视频、控制信令等等。
    默认值:32

  • For example

      max_streams 32;
    

ack_window

Syntax: ack_window value
Context: rtmp, server

  • Desc

    设置RTMP确认窗口大小。接收后足量字节数之后向远端发送应答包。
    默认值:5000000

  • For example

      ack_window 5000000;
    

chunk_size

Syntax: chunk_size value
Context: rtmp, server

  • Desc

    用于设置流多路复用的最chunk大小。默认是4096。这个值越大CPU开销越低,并且不能小于128。

  • For example

      chunk_size 4096;
    

max_message

Syntax: max_message value
Context: rtmp, server

  • Desc

    服务器允许的RTMP消息最大size。如果你希望传输非常大码率和高清的视频流,那么就要合理地提高这个配置。
    默认值:1MB

  • For example

      max_message 1M;
    

merge_frame

Syntax: merge_frame value Context: rtmp, server, application

  • Desc

    单次发送的最大帧数(无需修改此配置)
    默认值:32

  • For example
      merge_frame 32;
    

out_queue

Syntax: out_queue value Context: rtmp, server

  • Desc

    发送缓冲区已经gop缓存中允许缓存的最大帧数(包括视频和音频),正常情况下不必要修改,如果你想缓存更多数据则要增大该值。
    默认值:2048

  • For example
      out_queue 2048
    

out_cork

Syntax: out_cork value Context: rtmp, server

  • Desc

    直播过程中发送缓冲区中帧数到达该值后就开始丢帧,优先丢B帧、P帧,不建议修改此值。
    默认值:out_queue/8

  • For example
      out_cork 256;
    

hevc_codecid

Syntax: hevc_codecid value Context: rtmp, server, application

  • Desc

    由于adobe已经停止升级rtmp和flv协议,所以原生的rtmp和flv是没有支持h265标准的,此配置是对rtmp和flv进行扩展,将编码id 12设置为h265编码,从而使服务器支持h265编码。
    默认值:12

  • For example
      hevc_codecid  12;
    

给该项目点赞   关注我的 Github