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;