github.com/cnotch/ipchub@v1.1.0/docs/config.md (about) 1 ## 1. 配置文件(config.json) 2 属性 | 说明 | 示例 3 -|-|- 4 listen | 侦听地址,":1554" | 默认:":1554" | 5 auth | 访问流媒体时,是否启用身份和权限验证 |默认:false | 6 cache_gop | 是否缓存GOP,缓存GOP会提高打开速度|默认:false | 7 hlsfragment | hls 分段大小(单位秒)| 默认:10 | 8 hlspath | hls临时文件存储目录,不设置则在内存存储|默认:空字串,使用内存文件 | 9 profile | 是否启动在线诊断|默认:false | 10 tls | 安全连接配置 |如果需要http范围,设置该配置向 | 11 routetable | 路由表提供者 | 默认:json provider| 12 users | 用户提供者 |默认:json provider| 13 log | 日志配置 | | 14 15 ### 1.1 tls 配置 16 属性 | 说明 | 示例 17 -|-|- 18 listen | 安全连接侦听地址 |默认":443" | 19 cert | 证书内容或文件 | | 20 key | 私钥内容或文件 | | 21 22 ### 1.2 routetable 配置 23 属性 | 说明 | 示例 24 -|-|- 25 provider | 路由表提供者名称 |默认"json" | 26 config | 提供者配置 | | 27 config.xxx | 提供者所需的配置名称和值 | | 28 29 目前支持 json 和 memory 提供者,以json为例: 30 ``` json 31 "routetable":{ 32 "provider":"json", 33 "config":{ 34 "file":"./cfg/routetable.json" 35 } 36 } 37 ``` 38 需要其他路由表提供者,需自行开发。 39 40 ### 1.3 users 配置 41 属性 | 说明 | 示例 42 -|-|- 43 provider | 用户安全提供者名称 |默认"json" | 44 config | 提供者配置 | | 45 config.xxx | 提供者所需的配置名称和值 | | 46 47 目前支持 json 和 memory 提供者,以json为例: 48 ``` json 49 "users":{ 50 "provider":"json", 51 "config":{ 52 "file":"./cfg/users.json" 53 } 54 } 55 ``` 56 需要其他用户安全提供者,需自行开发。 57 58 ### 1.4 完整配置文件示例 59 ``` json 60 { 61 "listen": ":1554", 62 "auth": false, 63 "cache_gop": true, 64 "hlspath":"./", 65 "hlsfragment":10, 66 "profile": false, 67 "routetable":{ 68 "provider":"json", 69 "config":{ 70 "file":"./cfg/routetable.json" 71 } 72 }, 73 "users":{ 74 "provider":"json", 75 "config":{ 76 "file":"./cfg/users.json" 77 } 78 }, 79 "log": { 80 "level": "debug", 81 "tofile": false, 82 "filename": "./logs/ipchub.log", 83 "maxsize": 20, 84 "maxdays": 7, 85 "maxbackups": 14, 86 "compress": false 87 } 88 } 89 ``` 90 ## 2. 路由表配置文件 91 默认位置在可执行文件同目录,默认名称:routetable.json。 92 93 属性 | 说明 | 示例 94 -|-|- 95 pattern | 本地路径模式字串 | 当以'/'结尾,表示一个以pattern开头的请求都路由到下面的url | 96 url | 路由的目标地址,用户名和密码可以直接写在url中 | rtsp://admin:admin@localhost/live2 | 97 keepalive | 是否保持连接;如果没有消费者是否继续保持连接,如果为false在5分钟后自动断开 | false/true | 98 99 ### 2.1 pattern 100 模式字串有两种形式: 101 + 精确形式 102 + 目录形式 103 104 目录形式以'/'字符结束,表示以此pattern开始的流路径都将路由到它对应的url。它适合于多层组织结构的路由导航。 105 ### 2.2 完整实例: 106 ``` json 107 [ 108 { 109 "pattern": "/entrance/A1", 110 "url": "rtsp://admin:admin@localhost:5540/live2", 111 "keepalive": true 112 }, 113 { 114 "pattern": "/hr/", 115 "url": "rtsp://admin:admin@localhost:8540/video", 116 "keepalive": false 117 } 118 ] 119 ``` 120 121 122 访问流媒体描述 123 + rtsp://localhost:1554/entrance/A1 124 125 将路由到 rtsp://admin:admin@localhost:5540/live2 126 + rtsp://localhost:1554/hr/door 127 128 将路由到 rtsp://admin:admin@localhost:8540/video/door 129 130 ## 3. 用户配置文件 131 默认位置在可执行文件同目录,默认名称:users.json。 132 133 属性 | 说明 | 示例 134 -|-|- 135 name | 用户名 | admin | 136 password | 密码 | | 137 admin | 是否是管理员 | false/true | 138 push | 推送权限 | /rooms/+/entrace | 139 pull | 拉取权限 | * | 140 141 ### 4.1 完整示例: 142 ``` json 143 [ 144 { 145 "name":"admin", 146 "password":"admin", 147 "admin":true, 148 "push":"*", 149 "pull":"*" 150 }, 151 { 152 "name":"user1", 153 "password":"user1", 154 "push":"/rooms/+/entrance", 155 "pull":"/test/*;/rooms/*" 156 } 157 ] 158 ``` 159 160 ### 3.2 权限配置格式说明 161 + `*` 0-n 段通配 162 + `+` 表示可以一个路径端通配 163 164 可以通过分号设置多个 165 #### 3.2.1 例子1 166 当权限设置为 /a 167 + 路径 /a 通过授权 168 + 路径 /a/b 不通过授权 169 170 #### 3.2.2 例子2 171 当权限设置为 /a/* 172 + 路径 /a 通过授权 173 + 路径 /a/b, /a/c, /a/b/c 都通过授权 174 175 #### 3.2.3 例子3 176 当权限设置为 /a/+/c/* 177 + 路径 a/b/c, a/d/c, a/b/c/d, a/b/c/d/e 都通过授权 178 + 路径 a/c 不通过授权