Commit 3c8507daeedc535eef622e43b450d497a767f187
1 parent
fe09511a
增加hookip设置, 是否开启自动配置设置
Showing
3 changed files
with
66 additions
and
25 deletions
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
| ... | ... | @@ -36,6 +36,9 @@ public class ZLMRunner implements CommandLineRunner { |
| 36 | 36 | @Value("${media.wanIp}") |
| 37 | 37 | private String mediaWanIp; |
| 38 | 38 | |
| 39 | + @Value("${media.hookIp}") | |
| 40 | + private String mediaHookIp; | |
| 41 | + | |
| 39 | 42 | @Value("${media.port}") |
| 40 | 43 | private int mediaPort; |
| 41 | 44 | |
| ... | ... | @@ -51,6 +54,9 @@ public class ZLMRunner implements CommandLineRunner { |
| 51 | 54 | @Value("${server.port}") |
| 52 | 55 | private String serverPort; |
| 53 | 56 | |
| 57 | + @Value("${media.autoConfig}") | |
| 58 | + private boolean autoConfig; | |
| 59 | + | |
| 54 | 60 | @Autowired |
| 55 | 61 | private ZLMRESTfulUtils zlmresTfulUtils; |
| 56 | 62 | |
| ... | ... | @@ -61,8 +67,7 @@ public class ZLMRunner implements CommandLineRunner { |
| 61 | 67 | MediaServerConfig mediaServerConfig = getMediaServerConfig(); |
| 62 | 68 | if (mediaServerConfig != null) { |
| 63 | 69 | logger.info("zlm接入成功..."); |
| 64 | - logger.info("设置zlm..."); | |
| 65 | - saveZLMConfig(); | |
| 70 | + if (autoConfig) saveZLMConfig(); | |
| 66 | 71 | mediaServerConfig = getMediaServerConfig(); |
| 67 | 72 | storager.updateMediaInfo(mediaServerConfig); |
| 68 | 73 | } |
| ... | ... | @@ -91,12 +96,15 @@ public class ZLMRunner implements CommandLineRunner { |
| 91 | 96 | } |
| 92 | 97 | |
| 93 | 98 | private void saveZLMConfig() { |
| 94 | - String hookIP = sipIP; | |
| 95 | - if (mediaIp.equals(sipIP)) { | |
| 96 | - hookIP = "127.0.0.1"; | |
| 99 | + logger.info("设置zlm..."); | |
| 100 | + if (StringUtils.isEmpty(mediaHookIp)) { | |
| 101 | + mediaHookIp = sipIP; | |
| 102 | + } | |
| 103 | + if (mediaIp.equals(mediaHookIp)) { | |
| 104 | + mediaHookIp = "127.0.0.1"; | |
| 97 | 105 | } |
| 98 | 106 | |
| 99 | - String hookPrex = String.format("http://%s:%s/index/hook", hookIP, serverPort); | |
| 107 | + String hookPrex = String.format("http://%s:%s/index/hook", mediaHookIp, serverPort); | |
| 100 | 108 | Map<String, Object> param = new HashMap<>(); |
| 101 | 109 | param.put("api.secret",mediaSecret); // -profile:v Baseline |
| 102 | 110 | param.put("ffmpeg.cmd","%s -fflags nobuffer -rtsp_transport tcp -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s"); | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
| ... | ... | @@ -93,6 +93,7 @@ public class PlayController { |
| 93 | 93 | lockFlag = false; |
| 94 | 94 | logger.info("流编码信息已获取"); |
| 95 | 95 | JSONArray tracks = mediaInfo.getJSONArray("tracks"); |
| 96 | + logger.info(tracks.toJSONString()); | |
| 96 | 97 | streamInfo.setTracks(tracks); |
| 97 | 98 | storager.startPlay(streamInfo); |
| 98 | 99 | } else { | ... | ... |
src/main/resources/application.yml
| 1 | 1 | spring: |
| 2 | + # [不需要改] | |
| 2 | 3 | application: |
| 3 | 4 | name: iot-vmp-vmanager |
| 4 | - # 影子数据存储方式,支持redis、jdbc,暂不支持mysql | |
| 5 | + # [不需要改] 影子数据存储方式,支持redis、jdbc,暂不支持mysql, | |
| 5 | 6 | database: redis |
| 6 | - # 通信方式,支持kafka、http | |
| 7 | + # [不需要改] 通信方式,支持kafka、http | |
| 7 | 8 | communicate: http |
| 9 | + # REDIS数据库配置 | |
| 8 | 10 | redis: |
| 9 | - # Redis服务器IP | |
| 10 | - host: 127.0.0.1 | |
| 11 | - #端口号 | |
| 11 | + # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 | |
| 12 | + host: 192.168.1.141 | |
| 13 | + # [必须修改] 端口号 | |
| 12 | 14 | port: 6379 |
| 15 | + # [可选] 数据库 DB | |
| 13 | 16 | database: 6 |
| 14 | - #访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 | |
| 15 | - password: | |
| 16 | - #超时时间 | |
| 17 | + # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 | |
| 18 | + password: 4767cb971b40a1300fa09b7f87b09d1c | |
| 19 | + # [可选] 超时时间 | |
| 17 | 20 | timeout: 10000 |
| 21 | + # [不可用] jdbc数据库配置, 暂不支持 | |
| 18 | 22 | datasource: |
| 19 | 23 | name: eiot |
| 20 | 24 | url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true |
| ... | ... | @@ -22,36 +26,62 @@ spring: |
| 22 | 26 | password: |
| 23 | 27 | type: com.alibaba.druid.pool.DruidDataSource |
| 24 | 28 | driver-class-name: com.mysql.jdbc.Driver |
| 29 | + | |
| 30 | +# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 | |
| 25 | 31 | server: |
| 26 | 32 | port: 18080 |
| 33 | + | |
| 34 | +# 作为28181服务器的配置 | |
| 27 | 35 | sip: |
| 28 | - ip: 192.168.1.44 | |
| 36 | + # [必须修改] 本机的IP, 必须是网卡上的IP | |
| 37 | + ip: 192.168.1.20 | |
| 38 | + # [可选] 28181服务监听的端口 | |
| 29 | 39 | port: 5060 |
| 30 | 40 | # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007) |
| 31 | 41 | # 后两位为行业编码,定义参照附录D.3 |
| 32 | 42 | # 3701020049标识山东济南历下区 信息行业接入 |
| 43 | + # [可选] | |
| 33 | 44 | domain: 3402000000 |
| 45 | + # [可选] | |
| 34 | 46 | id: 34020000002000000001 |
| 35 | - # 默认设备认证密码,后续扩展使用设备单独密码 | |
| 47 | + # [可选] 默认设备认证密码,后续扩展使用设备单独密码 | |
| 36 | 48 | password: 12345678 |
| 37 | 49 | |
| 38 | -auth: #32位小写md5加密(默认密码为admin) | |
| 50 | +# 登陆的用户名密码 | |
| 51 | +auth: | |
| 52 | + # [可选] 用户名 | |
| 39 | 53 | username: admin |
| 54 | + # [可选] 密码, 默认为admin | |
| 40 | 55 | password: 21232f297a57a5a743894a0e4a801fc3 |
| 41 | 56 | |
| 42 | -media: #zlm服务器的ip与http端口, 重点: 这是http端口 | |
| 43 | - ip: 192.168.1.44 | |
| 44 | - wanIp: | |
| 45 | - port: 80 | |
| 57 | +#zlm服务器配置 | |
| 58 | +media: | |
| 59 | + # [必须修改] zlm服务器的内网IP | |
| 60 | + ip: 127.0.0.1 | |
| 61 | + # [可选] zlm服务器的公网IP, 内网部署置空即可 | |
| 62 | + wanIp: 192.168.1.20 | |
| 63 | + # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip | |
| 64 | + hookIp: | |
| 65 | + # [必须修改] zlm服务器的http.port | |
| 66 | + port: 6080 | |
| 67 | + # [可选] 是否自动配置ZLM, 如果希望手动配置ZLM, 可以设为false, 不建议新接触的用户修改 | |
| 68 | + autoConfig: true | |
| 69 | + # [可选] zlm服务器的hook.admin_params=secret | |
| 46 | 70 | secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc |
| 71 | + # [可选] zlm服务器的general.streamNoneReaderDelayMS | |
| 47 | 72 | streamNoneReaderDelayMS: 600000 # 无人观看多久自动关闭流 |
| 48 | - # 关闭等待收到流编码信息后在返回, | |
| 73 | + # [可选] 关闭等待收到流编码信息后在返回, | |
| 49 | 74 | # 设为false可以获得更好的兼容性,保证返回后流就可以播放, |
| 50 | 75 | # 设为true可以快速打开播放窗口,可以获得更好的体验 |
| 51 | - closeWaitRTPInfo: true | |
| 52 | - rtp: # 启用udp多端口模式 | |
| 76 | + closeWaitRTPInfo: false | |
| 77 | + # 启用udp多端口模式, 详细解释参考: https://github.com/xia-chu/ZLMediaKit/wiki/GB28181%E6%8E%A8%E6%B5%81 下的高阶使用 | |
| 78 | + rtp: | |
| 79 | + # [可选] 是否启用udp多端口模式, 开启后会在udpPortRange范围内选择端口用于媒体流传输 | |
| 53 | 80 | enable: true |
| 81 | + # [可选] 在此范围内选择端口用于媒体流传输, 不只是udp, 使用TCP被动传输模式时,也是从这个范围内选择端口 | |
| 54 | 82 | udpPortRange: 30000,30500 # 端口范围 |
| 83 | + | |
| 84 | +# [可选] 日志配置, 一般不需要改 | |
| 55 | 85 | logging: |
| 56 | 86 | file: |
| 57 | 87 | name: logs/wvp.log |
| ... | ... | @@ -61,4 +91,6 @@ logging: |
| 61 | 91 | level: |
| 62 | 92 | com: |
| 63 | 93 | genersoft: |
| 64 | - iot: debug | |
| 65 | 94 | \ No newline at end of file |
| 95 | + iot: debug | |
| 96 | + | |
| 97 | + | ... | ... |