You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

124 lines
6.7 KiB

server:
port: 8081
spring:
application:
name: inspect-nvr
profiles:
active: dev
redis:
host: localhost
port: 6379
password:
# MySQL业务库:dynamic-datasource 使用Druid作为连接池
datasource:
dynamic:
primary: master
strict: true
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: "jdbc:mysql://192.168.1.116:4406/inspect_shaoxing_260511?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true"
username: root
password: atia2018
druid:
initial-size: 1
min-idle: 1
max-active: 10
max-wait: 60000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
filters: stat,wall,slf4j
mybatis:
mapper-locations: classpath*:mapper/**/*.xml
configuration:
map-underscore-to-camel-case: true
mode:
retryTimes: 5
delayTime: 5000
retryMode: 0
# Browser playback service settings. NVR devices and cameras are read only from the business database.
hik:
playback:
hls:
idle-session-millis: ${HIK_NVR_HLS_IDLE_SESSION_MILLIS:120000}
startup-timeout-millis: ${HIK_NVR_HLS_STARTUP_TIMEOUT_MILLIS:30000}
no-data-timeout-millis: ${HIK_NVR_HLS_NO_DATA_TIMEOUT_MILLIS:20000}
max-concurrent-sessions: ${HIK_NVR_HLS_MAX_SESSIONS:1}
# 服务端调用 ZLMediaKit API 确认流是否已注册;密钥为空时实时预览会直接返回配置错误。
api-base-url: "${ZLM_API_BASE_URL:http://127.0.0.1:18081}"
api-secret: "${ZLM_API_SECRET:}"
# 实时预览:FFmpeg 拉取 NVR 的 RTSP 子码流并推送到 ZLMediaKit。
live:
# 单路实时流从启动到明确成功或失败的总时限(毫秒);后台任务仍按此时限继续尝试。
startup-timeout-millis: ${HIK_NVR_LIVE_STARTUP_TIMEOUT_MILLIS:10000}
# 首次起流时阻塞等待并直接返回播放结果的最长时间(毫秒)。
# 页面只给起流请求 8 秒,超过就弹“系统接口请求超时”,因此这里必须明显小于 8 秒;
# 超时后返回 STARTING,后台继续起流,播放地址仍随响应返回。
response-wait-millis: ${HIK_NVR_LIVE_RESPONSE_WAIT_MILLIS:6000}
# 同一台 NVR 相邻 RTSP 握手的最小间隔(毫秒),避免设备瞬时并发 SETUP 被拒。
start-spacing-millis: ${HIK_NVR_LIVE_START_SPACING_MILLIS:600}
# 每台 NVR 等待起流的最大任务数,不含正在执行的任务。
max-start-queue-size: ${HIK_NVR_LIVE_MAX_START_QUEUE_SIZE:8}
# 同一台 NVR 允许同时进行的起流任务数。握手间隔仍由 start-spacing-millis 保证,
# 本项只让“等待设备出流”的几路重叠,用于缩短一次打开多画面时最后一路的等待时间;
# 远程高延迟设备可适当调大,出现起流被拒时调回 1。
max-concurrent-starts-per-nvr: ${HIK_NVR_LIVE_MAX_CONCURRENT_STARTS_PER_NVR:2}
# 单次 ZLMediaKit API 连接和读取超时(毫秒)。
zlm-api-timeout-millis: ${HIK_NVR_LIVE_ZLM_API_TIMEOUT_MILLIS:300}
# 设备端在 SETUP 阶段拒绝建立实时流时允许的退避重试次数。
max-attempts: ${HIK_NVR_LIVE_MAX_ATTEMPTS:3}
# 重试前等待设备释放上一次 RTSP 会话的时间(毫秒),按尝试序号线性递增。
retry-release-wait-millis: ${HIK_NVR_LIVE_RETRY_RELEASE_WAIT_MILLIS:1500}
retry-release-wait-max-millis: ${HIK_NVR_LIVE_RETRY_RELEASE_WAIT_MAX_MILLIS:5000}
# 停流时等待 FFmpeg 优雅退出(发送 RTSP TEARDOWN)的最长时间(毫秒)。
stop-grace-millis: ${HIK_NVR_LIVE_STOP_GRACE_MILLIS:2000}
# 单个取流设备允许同时播放的实时流上限,0 表示不限制;请按设备远程预览预算调整。
# 统计粒度是"实际拉取的设备":直连摄像机时为相机 IP,经转发时为 NVR/CVR IP。
max-sessions-per-nvr: ${HIK_NVR_LIVE_MAX_SESSIONS_PER_NVR:8}
# 长时间无人观看(ZLMediaKit 观众数为 0)时回收实时流,避免浏览器异常退出后占住 NVR 会话。
idle-reap-enabled: ${HIK_NVR_LIVE_IDLE_REAP_ENABLED:true}
idle-reader-timeout-millis: ${HIK_NVR_LIVE_IDLE_READER_TIMEOUT_MILLIS:600000}
# 空闲回收扫描间隔(毫秒)。
idle-reap-interval-millis: ${HIK_NVR_LIVE_IDLE_REAP_INTERVAL_MILLIS:60000}
# 实时预览是否优先直连摄像机取流:CVR(中心存储)等设备的远程转发额度很小,
# 直连摄像机可绕开该瓶颈;地址缺失、端口不可达或鉴权失败时自动回退 NVR。
prefer-camera-direct: ${HIK_NVR_LIVE_PREFER_CAMERA_DIRECT:true}
# 直连摄像机使用的 RTSP 端口。
camera-rtsp-port: ${HIK_NVR_LIVE_CAMERA_RTSP_PORT:554}
# 直连摄像机的账号密码;留空表示沿用所属 NVR 在数据库中的凭据。
camera-username: "${HIK_NVR_LIVE_CAMERA_USERNAME:}"
camera-password: "${HIK_NVR_LIVE_CAMERA_PASSWORD:}"
# 直连摄像机 RTSP 端口连通性探测超时(毫秒)。
camera-probe-timeout-millis: ${HIK_NVR_LIVE_CAMERA_PROBE_TIMEOUT_MILLIS:500}
# 台账 basedata_eqpbook_channel.channel_type=ir(红外热成像)对应的相机内通道号。
# 台账里 vl=可见光、ir=热成像,是镜头类型的权威来源;默认 ir 用相机通道 2,
# 即 1=可见光、2=热成像。现场若两个镜头画面互换,只改这里即可整体反转。
ir-camera-channel: ${HIK_NVR_LIVE_IR_CAMERA_CHANNEL:2}
# 同一 IP 多通道相机(双光谱等)的相机内通道分配顺序:asc / desc。
# 只在台账 channel_type 与平台通道名都判断不出镜头类型时才生效。
camera-channel-order: ${HIK_NVR_LIVE_CAMERA_CHANNEL_ORDER:asc}
clip:
# 一分钟录像先由SDK下载到临时目录,再由FFmpeg统一封装为MP4。
ffmpeg-path: ${FFMPEG_PATH:C:/tools/ffmpeg/bin/ffmpeg.exe}
download-timeout-millis: ${HIK_NVR_CLIP_DOWNLOAD_TIMEOUT_MILLIS:120000}
poll-interval-millis: ${HIK_NVR_CLIP_POLL_INTERVAL_MILLIS:250}
ffmpeg-timeout-millis: ${HIK_NVR_CLIP_FFMPEG_TIMEOUT_MILLIS:60000}
# 云台控制锁:/device/ptzcontrol 请求体携带 username 时按 cameraCode 抢占控制锁,
# 角色由 ExtRoleService 解析(外部接口开关/地址见 sys_config,等级映射见 sys_dict_data 的 ptz_role_level);
# 同 username 续期、更高等级(roleLevel 数值更小)可抢占、同级先到先得;
# 不携带 username 的调用(北向上位平台)不受锁约束。
permission:
enabled: ${PERMISSION_ENABLED:true}
lock-ttl-seconds: ${PERMISSION_LOCK_TTL_SECONDS:300}