1.端口
listen 1935; 详细参考如下: listen:侦听端口 按空格分隔,每个侦听条目为 #例如192.168.1.100:1935 10.10.10.100:1935 #其中ip是可选的,默认为0.0.0.0,即1935等于0.0.0.0:1935 #默认:1935(RTMP端口)、1985(SRS API端口)、8080(http端口)
2.连接数
max_connections 1000; 详细参考如下: max_connections:最大连接数 #如果超过最大连接数,服务器将删除新连接。 #默认:1000
3.官方示例
daemon off; 详细参考如下: daemon off:示例,官方的例子,禁用
4.日志输出方式及路径
srs_log_tank file; 详细参考如下: srs_log_tank file:日志箱,类型为控制台(console)或文件(file)。 #如果是控制台,则将日志打印到控制台。 #如果是文件,则将日志写入文件。 如果写入到文件,则需要srs_log_file。 #默认:file srs_log_file ./objs/srs.log:日志文件保存的位置
5.API服务器
http_api { enabled on; listen 1985; } #提供API接口
详细参考:使用SRS的HTTP API获取数据
6.HTTP服务器
http_server { enabled on; listen 8080; dir ./objs/nginx/html; } #提供HTTP服务 详细参考如下: #是否启用HTTP流媒体服务 # default: off enabled on; # HTTP流侦听格式为 <[ip:]port> # 例如:192.168.1.100:8080 #其中ip是可选的,默认为0.0.0.0,即8080等于0.0.0.0:8080 # @备注,如果使用较低的端口(例如80),则用户必须以root用户身份启动srs # default: 8080 listen 8080; # http root的默认目录 # 默认: ./objs/nginx/html dir ./objs/nginx/html; #是否启用跨域请求 #适用于http静态服务器和流服务器,并适用于所有虚拟主机 # default: on crossdomain on;
7.系统统计
stats { network 0; disk sda sdb xvda xvdb; } 详细参考如下: #系统统计信息部分。 #主循环将检索系统统计信息, #例如cpu / mem / network / disk-io数据, #http api,例如/ api / v1 / summaries将显示这些数据。 #@remark心跳取决于网络, #例如,eth0可能是索引为0的设备。 统计信息{ #设备ip的索引。 #我们可能会检索多个网络设备。 #默认:0 网络0; #设备名称以统计磁盘iops。 #如果未配置,则忽略/ proc / diskstats的设备。 磁盘sda sdb xvda xvdb;
8.vhost
vhost __defaultVhost__ { } 详细参考如下: #虚拟主机列表,__defaultVhost__是默认虚拟主机 #例如,用户使用ip访问流:rtmp://192.168.1.2/live/livestream。 #无法识别所需的虚拟主机将使用默认vhost __defaultVhost__ {},如果vhost __defaultVhost__ {}不存在即报错 #虚拟主机作用域配置。 vhost scope.vhost.srs.com { #是否启用了虚拟主机。 #如果关闭,则所有请求访问均被拒绝。 #default: on enabled off; #是否启用虚拟主机的最小延迟模式。 #用于最小延迟模式: #1.禁用vhost的publish.mr。 #2.使用cond等待消费者队列超时。 #@请参阅https://github.com/ossrs/srs/issues/257 #default: off min_latency off; #是否启用TCP_NODELAY #如果启用,则通过setsockopt设置fd的nodelay #default: off tcp_nodelay off; #默认块大小为128,最大为65536, #某些客户端不支持更改块大小, #vhost块大小将覆盖全局值。 #default: global chunk size chunk_size 128; #输入ack的大小,0为未设置。 #通常,它是根据来自对等方的消息设置的, #但对于某些对等方(编码器),它从不发送消息,但使用不同的ack大小。 #我们可以在服务器端更改默认的ack大小,以发送确认消息, #或者发布一段时间后编码器可能被阻止。 #Default: 0 in_ack_size 0; #输出ack大小,0为未设置。 #用于通知对等方(玩家)向服务器发送确认信息。 #默认:2500000 out_ack_size 2500000; } #设置虚拟主机的块大小。 vhost chunksize.srs.com { #@see scope.vhost.srs.com chunk_size 128; } #虚拟主机已禁用。 虚拟主机已删除。srs.com{ #@see scope.vhost.srs.com enabled off; }
8.1.Cluster
cluster { mode local; origin_cluster on; coworkers 192.168.1.165:1985; } #群集模式,本地(local)或远程(remote) #本地:它是一个源服务器,服务流本身。 #远程:它是一个边缘服务器,获取或推送流到源服务器 # default: local #对于origin(mode local)集群,coworkers地址是其它源站服务器api地址加端口。 #例如:coworkers 127.0.0.1:1985 192.168.1.165:1985;
8.2.HLS
hls { enabled on; hls_fragment 10; hls_window 60; #hls_cleanup off; } 详细参考如下: #是否开启hls,默认:关闭 #ts单文件切割时长,默认:10s #指定m3u8中保存多少个切片,默认:60 #是否自动清理ts文件,默认:开
8.3.http-flv
http_remux { enabled on; #mount [vhost]/[app]/[stream].flv; } 详细参考如下: #每个vhost的http flv / aac / mp3实时流的vhost。 虚拟主机http.remux.srs.com { #http flv / mp3 / aac / ts流虚拟主机指定的配置 http_remux { #是否为vhost启用http实时流服务。 #default: off enabled on; #音频流的快速缓存(mp3 / aac), #缓存更多音频并在一段时间内发送给客户端,以使android(weixin)满意。 #@remark flv / ts流忽略它 #@备注0禁用HTTP音频流的快速缓存。 #default: 0 fast_cache 30; #用于rtmp的流挂载,以重新分配到实时流。 #典型安装到[vhost] / [app] / [stream] .flv #变量: #[vhost] http实时流的当前vhost。 #[app]当前用于http直播的应用。 #[stream] http实时流的当前流。 #@注释[vhost]是可选的,用于挂载到指定的vhost。 #扩展名: #.flv挂载http live flv流,使用默认的gop缓存。 #.ts mount http live ts流,使用默认的gop缓存。 #.mp3挂载http live mp3流,忽略所需的视频和音频mp3编解码器。 #.aac mount http live aac 流,忽略所需的视频和音频aac编解码器。 # 例如: #挂载到[vhost] / [app] / [stream] .flv #通过http://ossrs.net:8080/live/livestream.flv访问 #挂载到/[app]/[stream].flv #通过http://ossrs.net:8080/live/livestream.flv访问 #或通过http://192.168.1.173:8080/live/livestream.flv #挂载到[vhost] / [app] / [stream] .mp3 #通过http://ossrs.net:8080/live/livestream.mp3访问 #挂载到[vhost] / [app] / [stream] .aac #通过http://ossrs.net:8080/live/livestream.aac访问 #挂载到[vhost] / [app] / [stream] .ts #通过http://ossrs.net:8080/live/livestream.ts访问 #@remark http的端口由http_server部分指定。 #默认:[vhost] / [app] / [stream] .flv 挂载[vhost] / [app] / [stream] .flv; } }
8.4.RTMP流安全
security { enabled on; allow publish 127.0.0.1; allow play 172.20.3.63; allow play 192.168.1.166; allow play 192.168.1.167; } 详细参考如下: #允许或拒绝客户端的安全性。 vhost security.srs.com { #主机允许或拒绝客户端的安全性。 #@请参阅https://github.com/ossrs/srs/issues/211 security { #是否启用虚拟主机的安全性。 #default: off enabled on; #安全列表,每个项目的格式为: #allow|deny publish|play all| # 例如: # allow publish all; # deny publish all; # allow publish 127.0.0.1; # deny publish 127.0.0.1; # allow play all; # deny play all; # allow play 127.0.0.1; # deny play 127.0.0.1; #SRS一对一地应用以下简单策略: #1.如果禁用安全性,则全部允许。 #2.启用安全性后,默认为全部拒绝。 #3.如果匹配允许策略,则允许。 #4.如果匹配则拒绝策略。 allow play all; allow publish all; } }
8.5.流转发
forward { enabled on; destination 192.168.1.203:1935 192.168.1.204:1935; } # 转发发布流的vhost # 将流转发到其他服务器 # 是否启用转发 # default: off # 将所有发布流转发到指定的服务器 # 用于分割/转发当前流以供群集活动待机 # 主动为cdn构建高可用容错系统 # 格式: {ip}:{port} {ip_N}:{port_N}