From 0b2f635176c71706d5dc33555497445367dc243b Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 09 四月 2024 10:30:00 +0800
Subject: [PATCH] 移除非主线内容

---
 /dev/null |   24 ------------------------
 1 files changed, 0 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/abl/ABLHttpHookListener.java
deleted file mode 100755
index 69e6d8c..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLHttpHookListener.java
+++ /dev/null
@@ -1,413 +0,0 @@
-package com.genersoft.iot.vmp.media.abl;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.conf.UserSetting;
-import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
-import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
-import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
-import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
-import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
-import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.media.abl.bean.hook.*;
-import com.genersoft.iot.vmp.media.abl.event.HookAblServerKeepaliveEvent;
-import com.genersoft.iot.vmp.media.abl.event.HookAblServerStartEvent;
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import com.genersoft.iot.vmp.media.bean.ResultForOnPublish;
-import com.genersoft.iot.vmp.media.event.hook.HookSubscribe;
-import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
-import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent;
-import com.genersoft.iot.vmp.media.event.media.MediaNotFoundEvent;
-import com.genersoft.iot.vmp.media.event.media.MediaRtpServerTimeoutEvent;
-import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.media.zlm.ZLMMediaListManager;
-import com.genersoft.iot.vmp.media.zlm.dto.hook.HookResult;
-import com.genersoft.iot.vmp.media.zlm.dto.hook.HookResultForOnPublish;
-import com.genersoft.iot.vmp.service.*;
-import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * ABL 鐨刪ook浜嬩欢鐩戝惉
- */
-@RestController
-@RequestMapping("/index/hook/abl")
-public class ABLHttpHookListener {
-
-    private final static Logger logger = LoggerFactory.getLogger(ABLHttpHookListener.class);
-
-    @Autowired
-    private ABLRESTfulUtils ablresTfulUtils;
-
-    @Autowired
-    private ISIPCommanderForPlatform commanderFroPlatform;
-
-    @Autowired
-    private AudioBroadcastManager audioBroadcastManager;
-
-    @Autowired
-    private IPlayService playService;
-
-    @Autowired
-    private IVideoManagerStorage storager;
-
-    @Autowired
-    private IRedisCatchStorage redisCatchStorage;
-
-    @Autowired
-    private IInviteStreamService inviteStreamService;
-
-    @Autowired
-    private IDeviceService deviceService;
-
-    @Autowired
-    private IMediaServerService mediaServerService;
-
-    @Autowired
-    private IStreamProxyService streamProxyService;
-
-    @Autowired
-    private DeferredResultHolder resultHolder;
-
-    @Autowired
-    private IMediaService mediaService;
-
-    @Autowired
-    private EventPublisher eventPublisher;
-
-    @Autowired
-    private ZLMMediaListManager zlmMediaListManager;
-
-    @Autowired
-    private HookSubscribe subscribe;
-
-    @Autowired
-    private UserSetting userSetting;
-
-    @Autowired
-    private IUserService userService;
-
-    @Autowired
-    private ICloudRecordService cloudRecordService;
-
-    @Autowired
-    private VideoStreamSessionManager sessionManager;
-
-    @Autowired
-    private SSRCFactory ssrcFactory;
-
-    @Qualifier("taskExecutor")
-    @Autowired
-    private ThreadPoolTaskExecutor taskExecutor;
-
-    @Autowired
-    private RedisTemplate<Object, Object> redisTemplate;
-
-    @Autowired
-    private ApplicationEventPublisher applicationEventPublisher;
-
-    /**
-     * 鏈嶅姟鍣ㄥ畾鏃朵笂鎶ユ椂闂达紝涓婃姤闂撮殧鍙厤缃紝榛樿10s涓婃姤涓�娆�
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_server_keepalive", produces = "application/json;charset=UTF-8")
-    public HookResult onServerKeepalive(@RequestBody OnServerKeepaliveABLHookParam param) {
-        try {
-            HookAblServerKeepaliveEvent event = new HookAblServerKeepaliveEvent(this);
-            MediaServer mediaServerItem = mediaServerService.getOne(param.getMediaServerId());
-            if (mediaServerItem != null) {
-                event.setMediaServerItem(mediaServerItem);
-                applicationEventPublisher.publishEvent(event);
-            }
-        }catch (Exception e) {
-            logger.info("[ZLM-HOOK-蹇冭烦] 鍙戦�侀�氱煡澶辫触 ", e);
-        }
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 鎾斁鍣ㄩ壌鏉冧簨浠讹紝rtsp/rtmp/http-flv/ws-flv/hls鐨勬挱鏀鹃兘灏嗚Е鍙戞閴存潈浜嬩欢銆�
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_play", produces = "application/json;charset=UTF-8")
-    public HookResult onPlay(@RequestBody OnPlayABLHookParam param) {
-
-        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-        if (mediaServer == null) {
-            return new HookResultForOnPublish(0, "success");
-        }
-
-        Map<String, String> paramMap = urlParamToMap(param.getParams());
-        // 瀵逛簬鎾斁娴佽繘琛岄壌鏉�
-        boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId"));
-        if (!authenticateResult) {
-            logger.info("[ABL HOOK] 鎾斁閴存潈 澶辫触锛歿}->{}", param.getMediaServerId(), param);
-            ablresTfulUtils.closeStreams(mediaServer, param.getApp(), param.getStream());
-
-        }
-        logger.info("[ABL HOOK] 鎾斁閴存潈鎴愬姛锛歿}->{}", param.getMediaServerId(), param);
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * rtsp/rtmp/rtp鎺ㄦ祦閴存潈浜嬩欢銆�
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_publish", produces = "application/json;charset=UTF-8")
-    public HookResult onPublish(@RequestBody OnPublishABLHookParam param) {
-
-
-        logger.info("[ABL HOOK]鎺ㄦ祦閴存潈锛歿}->{}", param.getMediaServerId(), param);
-        // TODO 鍔犲揩澶勭悊閫熷害
-
-        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-        if (mediaServer == null) {
-            return new HookResultForOnPublish(0, "success");
-        }
-
-        ResultForOnPublish resultForOnPublish = mediaService.authenticatePublish(mediaServer, param.getApp(), param.getStream(), param.getParams());
-        if (resultForOnPublish == null) {
-            logger.info("[ABL HOOK]鎺ㄦ祦閴存潈 鎷掔粷 鍝嶅簲锛歿}->{}", param.getMediaServerId(), param);
-            ablresTfulUtils.closeStreams(mediaServer, param.getApp(), param.getStream());
-        }
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 濡傛灉鏌愪竴涓爜娴佽繘琛孧P4褰曞儚锛坋nable_mp4=1锛夛紝浼氳Е鍙戝綍鍍忚繘搴﹂�氱煡浜嬩欢
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_record_progress", produces = "application/json;charset=UTF-8")
-    public HookResult onRecordProgress(@RequestBody OnRecordProgressABLHookParam param) {
-
-
-        logger.info("[ABL HOOK] 褰曞儚杩涘害閫氱煡锛歿}->{}/{}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream(), param.getCurrentFileDuration(), param.getTotalVideoDuration());
-
-        // TODO 杩欓噷鐢ㄦ潵鍋氬綍鍍忚繘搴�
-//        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-//        if (mediaServer == null) {
-//            return new HookResultForOnPublish(0, "success");
-//        }
-//
-//        ResultForOnPublish resultForOnPublish = mediaService.authenticatePublish(mediaServer, param.getApp(), param.getStream(), param.getParams());
-//        if (resultForOnPublish == null) {
-//            logger.info("[ABL HOOK]鎺ㄦ祦閴存潈 鎷掔粷 鍝嶅簲锛歿}->{}", param.getMediaServerId(), param);
-//            ablresTfulUtils.closeStreams(mediaServer, param.getApp(), param.getStream());
-//        }
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 褰撲唬鐞嗘媺娴併�佸浗鏍囨帴鍏ョ瓑绛� 鐮佹祦涓嶅埌杈炬椂浼氬彂鍑� 鐮佹祦涓嶅埌杈剧殑浜嬩欢閫氱煡
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_stream_not_arrive", produces = "application/json;charset=UTF-8")
-    public HookResult onStreamNotArrive(@RequestBody ABLHookParam param) {
-
-
-        logger.info("[ABL HOOK] 鐮佹祦涓嶅埌杈鹃�氱煡锛歿}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-        try {
-            if ("rtp".equals(param.getApp())) {
-                return HookResult.SUCCESS();
-            }
-            MediaRtpServerTimeoutEvent event = new MediaRtpServerTimeoutEvent(this);
-            MediaServer mediaServerItem = mediaServerService.getOne(param.getMediaServerId());
-            if (mediaServerItem != null) {
-                event.setMediaServer(mediaServerItem);
-                event.setApp("rtp");
-                applicationEventPublisher.publishEvent(event);
-            }
-        }catch (Exception e) {
-            logger.info("[ABL-HOOK-鐮佹祦涓嶅埌杈鹃�氱煡] 鍙戦�侀�氱煡澶辫触 ", e);
-        }
-
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 濡傛灉鏌愪竴涓爜娴佽繘琛孧P4褰曞儚锛坋nable_mp4=1锛夛紝褰撴煇涓狹P4鏂囦欢琚垹闄や細瑙﹀彂璇ヤ簨浠堕�氱煡
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_delete_record_mp4", produces = "application/json;charset=UTF-8")
-    public HookResult onDeleteRecordMp4(@RequestBody OnRecordMp4ABLHookParam param) {
-
-
-        logger.info("[ABL HOOK] MP4鏂囦欢琚垹闄ら�氱煡锛歿}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-
-
-        return HookResult.SUCCESS();
-    }
-
-
-    /**
-     * rtsp/rtmp娴佹敞鍐屾垨娉ㄩ攢鏃惰Е鍙戞浜嬩欢锛涙浜嬩欢瀵瑰洖澶嶄笉鏁忔劅銆�
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_stream_arrive", produces = "application/json;charset=UTF-8")
-    public HookResult onStreamArrive(@RequestBody OnStreamArriveABLHookParam param) {
-
-        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-        if (mediaServer == null) {
-            return HookResult.SUCCESS();
-        }
-
-        logger.info("[ABL HOOK] 鐮佹祦鍒拌揪, {}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-        MediaArrivalEvent mediaArrivalEvent = MediaArrivalEvent.getInstance(this, param, mediaServer);
-        applicationEventPublisher.publishEvent(mediaArrivalEvent);
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 娴佹棤浜鸿鐪嬫椂浜嬩欢锛岀敤鎴峰彲浠ラ�氳繃姝や簨浠堕�夋嫨鏄惁鍏抽棴鏃犱汉鐪嬬殑娴併��
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_stream_none_reader", produces = "application/json;charset=UTF-8")
-    public JSONObject onStreamNoneReader(@RequestBody ABLHookParam param) {
-
-        logger.info("[ZLM HOOK]娴佹棤浜鸿鐪嬶細{}->{}/{}", param.getMediaServerId(),
-                param.getApp(), param.getStream());
-        JSONObject ret = new JSONObject();
-
-        boolean close = mediaService.closeStreamOnNoneReader(param.getMediaServerId(), param.getApp(), param.getStream(), null);
-        ret.put("code", close);
-        return ret;
-    }
-
-    /**
-     * 褰撴挱鏀句竴涓猽rl锛屽鏋滀笉瀛樺湪鏃讹紝浼氬彂鍑轰竴涓秷鎭�氱煡
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_stream_not_found", produces = "application/json;charset=UTF-8")
-    public HookResult onStreamNotFound(@RequestBody ABLHookParam param) {
-        logger.info("[ABL HOOK] 娴佹湭鎵惧埌锛歿}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-
-
-        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-        if (!userSetting.isAutoApplyPlay() || mediaServer == null) {
-            return HookResult.SUCCESS();
-        }
-        MediaNotFoundEvent mediaNotFoundEvent = MediaNotFoundEvent.getInstance(this, param, mediaServer);
-        applicationEventPublisher.publishEvent(mediaNotFoundEvent);
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * ABLMediaServer鍚姩鏃朵細鍙戦�佷笂绾块�氱煡
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_server_started", produces = "application/json;charset=UTF-8")
-    public HookResult onServerStarted(HttpServletRequest request, @RequestBody OnServerStaredABLHookParam param) {
-
-        logger.info("[ABL HOOK] 鍚姩 " + param.getMediaServerId());
-        try {
-            HookAblServerStartEvent event = new HookAblServerStartEvent(this);
-            MediaServer mediaServerItem = mediaServerService.getOne(param.getMediaServerId());
-            if (mediaServerItem != null) {
-                event.setMediaServerItem(mediaServerItem);
-                applicationEventPublisher.publishEvent(event);
-            }
-        }catch (Exception e) {
-            logger.info("[ABL-HOOK-鍚姩] 鍙戦�侀�氱煡澶辫触 ", e);
-        }
-
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * TODO 鍙戦�乺tp(startSendRtp)琚姩鍏抽棴鏃跺洖璋�
-     */
-//    @ResponseBody
-//    @PostMapping(value = "/on_send_rtp_stopped", produces = "application/json;charset=UTF-8")
-//    public HookResult onSendRtpStopped(HttpServletRequest request, @RequestBody OnSendRtpStoppedHookParam param) {
-//
-//        logger.info("[ZLM HOOK] rtp鍙戦�佸叧闂細{}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-//
-//        // 鏌ユ壘瀵瑰簲鐨勪笂绾ф帹娴侊紝鍙戦�佸仠姝�
-//        if (!"rtp".equals(param.getApp())) {
-//            return HookResult.SUCCESS();
-//        }
-//        try {
-//            MediaSendRtpStoppedEvent event = new MediaSendRtpStoppedEvent(this);
-//            MediaServer mediaServerItem = mediaServerService.getOne(param.getMediaServerId());
-//            if (mediaServerItem != null) {
-//                event.setMediaServer(mediaServerItem);
-//                applicationEventPublisher.publishEvent(event);
-//            }
-//        }catch (Exception e) {
-//            logger.info("[ZLM-HOOK-rtp鍙戦�佸叧闂璢 鍙戦�侀�氱煡澶辫触 ", e);
-//        }
-//
-//        return HookResult.SUCCESS();
-//    }
-
-    /**
-     * TODO 褰曞儚瀹屾垚浜嬩欢
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_record_mp4", produces = "application/json;charset=UTF-8")
-    public HookResult onRecordMp4(HttpServletRequest request, @RequestBody OnRecordMp4ABLHookParam param) {
-        logger.info("[ABL HOOK] 褰曞儚瀹屾垚浜嬩欢锛歿}->{}", param.getMediaServerId(), param.getFileName());
-
-//        try {
-//            MediaServer mediaServerItem = mediaServerService.getOne(param.getMediaServerId());
-//            if (mediaServerItem != null) {
-//                MediaRecordMp4Event event = MediaRecordMp4Event.getInstance(this, param, mediaServerItem);
-//                event.setMediaServer(mediaServerItem);
-//                applicationEventPublisher.publishEvent(event);
-//            }
-//        }catch (Exception e) {
-//            logger.info("[ZLM-HOOK-rtpServer鏀舵祦瓒呮椂] 鍙戦�侀�氱煡澶辫触 ", e);
-//        }
-
-        return HookResult.SUCCESS();
-    }
-
-    /**
-     * 褰撴煇涓�璺爜娴佹柇寮�鏃朵細鍙戦�侀�氱煡
-     */
-    @ResponseBody
-    @PostMapping(value = "/on_stream_disconnect", produces = "application/json;charset=UTF-8")
-    public HookResult onRecordMp4(HttpServletRequest request, @RequestBody ABLHookParam param) {
-        logger.info("[ABL HOOK] 鐮佹祦鏂紑浜嬩欢, {}->{}/{}", param.getMediaServerId(), param.getApp(), param.getStream());
-
-        MediaServer mediaServer = mediaServerService.getOne(param.getMediaServerId());
-        if (mediaServer == null) {
-            return HookResult.SUCCESS();
-        }
-
-        MediaDepartureEvent mediaDepartureEvent = MediaDepartureEvent.getInstance(this, param, mediaServer);
-        applicationEventPublisher.publishEvent(mediaDepartureEvent);
-
-        return HookResult.SUCCESS();
-    }
-
-    private Map<String, String> urlParamToMap(String params) {
-        HashMap<String, String> map = new HashMap<>();
-        if (ObjectUtils.isEmpty(params)) {
-            return map;
-        }
-        String[] paramsArray = params.split("&");
-        if (paramsArray.length == 0) {
-            return map;
-        }
-        for (String param : paramsArray) {
-            String[] paramArray = param.split("=");
-            if (paramArray.length == 2) {
-                map.put(paramArray[0], paramArray[1]);
-            }
-        }
-        return map;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaNodeServerService.java
deleted file mode 100644
index 110c0cb..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaNodeServerService.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.genersoft.iot.vmp.media.abl;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.common.CommonCallback;
-import com.genersoft.iot.vmp.common.StreamInfo;
-import com.genersoft.iot.vmp.media.bean.MediaInfo;
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import com.genersoft.iot.vmp.media.service.IMediaNodeServerService;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service("abl")
-public class ABLMediaNodeServerService implements IMediaNodeServerService {
-
-    private final static Logger logger = LoggerFactory.getLogger(ABLMediaNodeServerService.class);
-
-    @Autowired
-    private ABLRESTfulUtils ablresTfulUtils;
-
-    @Override
-    public int createRTPServer(MediaServer mediaServer, String stream, long ssrc, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode) {
-        return ablresTfulUtils.openRtpServer(mediaServer, "rtp", stream, 96, port, tcpMode, disableAudio?1:0);
-    }
-
-    @Override
-    public void closeRtpServer(MediaServer mediaServer, String streamId) {
-        closeRtpServer(mediaServer, streamId, null);
-    }
-
-    @Override
-    public void closeRtpServer(MediaServer serverItem, String streamId, CommonCallback<Boolean> callback) {
-       if (serverItem == null) {
-           return;
-       }
-        Map<String, Object> param = new HashMap<>();
-        param.put("stream_id", streamId);
-        param.put("force", 1);
-        JSONObject jsonObject = ablresTfulUtils.closeStreams(serverItem, "rtp", streamId);
-        logger.info("鍏抽棴RTP Server " +  jsonObject);
-        if (jsonObject != null ) {
-            if (jsonObject.getInteger("code") != 0) {
-                logger.error("鍏抽棴RTP Server 澶辫触: " + jsonObject.getString("msg"));
-            }
-        }else {
-            //  妫�鏌LM鐘舵��
-            logger.error("鍏抽棴RTP Server 澶辫触: 璇锋鏌LM鏈嶅姟");
-        }
-    }
-
-    @Override
-    public void closeStreams(MediaServer mediaServerItem, String rtp, String streamId) {
-
-    }
-
-    @Override
-    public Boolean updateRtpServerSSRC(MediaServer mediaServerItem, String streamId, String ssrc) {
-        return null;
-    }
-
-    @Override
-    public boolean checkNodeId(MediaServer mediaServerItem) {
-        return false;
-    }
-
-    @Override
-    public void online(MediaServer mediaServerItem) {
-
-    }
-
-    @Override
-    public MediaServer checkMediaServer(String ip, int port, String secret) {
-        return null;
-    }
-
-    @Override
-    public boolean stopSendRtp(MediaServer mediaInfo, String app, String stream, String ssrc) {
-        return false;
-    }
-
-    @Override
-    public boolean deleteRecordDirectory(MediaServer mediaServerItem, String app, String stream, String date, String fileName) {
-        return false;
-    }
-
-    @Override
-    public List<StreamInfo> getMediaList(MediaServer mediaServerItem, String app, String stream, String callId) {
-        return null;
-    }
-
-    @Override
-    public Boolean connectRtpServer(MediaServer mediaServerItem, String address, int port, String stream) {
-        return null;
-    }
-
-    @Override
-    public void getSnap(MediaServer mediaServerItem, String streamUrl, int timeoutSec, int expireSec, String path, String fileName) {
-
-    }
-
-    @Override
-    public MediaInfo getMediaInfo(MediaServer mediaServerItem, String app, String stream) {
-        return null;
-    }
-
-    @Override
-    public Boolean pauseRtpCheck(MediaServer mediaServer, String streamKey) {
-        return null;
-    }
-
-    @Override
-    public Boolean resumeRtpCheck(MediaServer mediaServer, String streamKey) {
-        return null;
-    }
-
-    @Override
-    public String getFfmpegCmd(MediaServer mediaServer, String cmdKey) {
-        return null;
-    }
-
-    @Override
-    public WVPResult<String> addFFmpegSource(MediaServer mediaServer, String srcUrl, String dstUrl, int timeoutMs, boolean enableAudio, boolean enableMp4, String ffmpegCmdKey) {
-        return null;
-    }
-
-    @Override
-    public WVPResult<String> addStreamProxy(MediaServer mediaServer, String app, String stream, String url, boolean enableAudio, boolean enableMp4, String rtpType) {
-        return null;
-    }
-
-    @Override
-    public Boolean delFFmpegSource(MediaServer mediaServer, String streamKey) {
-        return null;
-    }
-
-    @Override
-    public Boolean delStreamProxy(MediaServer mediaServer, String streamKey) {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> getFFmpegCMDs(MediaServer mediaServer) {
-        return null;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServerStatusManger.java b/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServerStatusManger.java
deleted file mode 100644
index cb55695..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServerStatusManger.java
+++ /dev/null
@@ -1,362 +0,0 @@
-package com.genersoft.iot.vmp.media.abl;
-
-import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.conf.DynamicTask;
-import com.genersoft.iot.vmp.conf.UserSetting;
-import com.genersoft.iot.vmp.media.abl.bean.AblServerConfig;
-import com.genersoft.iot.vmp.media.abl.bean.ConfigKeyId;
-import com.genersoft.iot.vmp.media.abl.event.HookAblServerKeepaliveEvent;
-import com.genersoft.iot.vmp.media.abl.event.HookAblServerStartEvent;
-import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
-import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerDeleteEvent;
-import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.event.EventListener;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Field;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 绠$悊zlm娴佸獟浣撹妭鐐圭殑鐘舵��
- */
-@Component
-public class ABLMediaServerStatusManger {
-
-    private final static Logger logger = LoggerFactory.getLogger(ABLMediaServerStatusManger.class);
-
-    private final Map<Object, MediaServer> offlineABLPrimaryMap = new ConcurrentHashMap<>();
-    private final Map<Object, MediaServer> offlineAblsecondaryMap = new ConcurrentHashMap<>();
-    private final Map<Object, Long> offlineAblTimeMap = new ConcurrentHashMap<>();
-
-    @Autowired
-    private ABLRESTfulUtils ablResTfulUtils;
-
-    @Autowired
-    private IMediaServerService mediaServerService;
-
-    @Autowired
-    private DynamicTask dynamicTask;
-
-    @Value("${server.ssl.enabled:false}")
-    private boolean sslEnabled;
-
-    @Value("${server.port}")
-    private Integer serverPort;
-
-    @Autowired
-    private UserSetting userSetting;
-
-    private final String type = "abl";
-
-    @Async("taskExecutor")
-    @EventListener
-    public void onApplicationEvent(MediaServerChangeEvent event) {
-        if (event.getMediaServerItemList() == null
-                || event.getMediaServerItemList().isEmpty()) {
-            return;
-        }
-        for (MediaServer mediaServerItem : event.getMediaServerItemList()) {
-            if (!type.equals(mediaServerItem.getType())) {
-                continue;
-            }
-            logger.info("[ABL-娣诲姞寰呬笂绾胯妭鐐筣 ID锛�" + mediaServerItem.getId());
-            offlineABLPrimaryMap.put(mediaServerItem.getId(), mediaServerItem);
-            offlineAblTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis());
-        }
-    }
-
-    @Async("taskExecutor")
-    @EventListener
-    public void onApplicationEvent(HookAblServerStartEvent event) {
-        if (event.getMediaServerItem() == null
-                || !type.equals(event.getMediaServerItem().getType())
-                || event.getMediaServerItem().isStatus()) {
-            return;
-        }
-        MediaServer serverItem = mediaServerService.getOne(event.getMediaServerItem().getId());
-        if (serverItem == null) {
-            return;
-        }
-        logger.info("[ABL-HOOK浜嬩欢-鏈嶅姟鍚姩] ID锛�" + event.getMediaServerItem().getId());
-        online(serverItem, null);
-    }
-
-    @Async("taskExecutor")
-    @EventListener
-    public void onApplicationEvent(HookAblServerKeepaliveEvent event) {
-        if (event.getMediaServerItem() == null) {
-            return;
-        }
-        MediaServer serverItem = mediaServerService.getOne(event.getMediaServerItem().getId());
-        if (serverItem == null) {
-            return;
-        }
-        logger.info("[ABL-HOOK浜嬩欢-蹇冭烦] ID锛�" + event.getMediaServerItem().getId());
-        online(serverItem, null);
-    }
-
-    @Async("taskExecutor")
-    @EventListener
-    public void onApplicationEvent(MediaServerDeleteEvent event) {
-        if (event.getMediaServerId() == null) {
-            return;
-        }
-        logger.info("[ABL-鑺傜偣琚Щ闄 ID锛�" + event.getMediaServerId());
-        offlineABLPrimaryMap.remove(event.getMediaServerId());
-        offlineAblsecondaryMap.remove(event.getMediaServerId());
-        offlineAblTimeMap.remove(event.getMediaServerId());
-    }
-
-    @Scheduled(fixedDelay = 10*1000)   //姣忛殧10绉掓鏌ヤ竴娆�
-    public void execute(){
-        // 鍒濇鍔犲叆鐨勭绾胯妭鐐逛細鍦�30鍒嗛挓鍐咃紝姣忛棿闅斿崄绉掑皾璇曚竴娆★紝30鍒嗛挓鍚庡鏋滀粛鐒舵病鏈変笂绾匡紝鍒欐瘡闅�30鍒嗛挓灏濊瘯涓�娆¤繛鎺�
-        if (offlineABLPrimaryMap.isEmpty() && offlineAblsecondaryMap.isEmpty()) {
-            return;
-        }
-        if (!offlineABLPrimaryMap.isEmpty()) {
-            for (MediaServer mediaServerItem : offlineABLPrimaryMap.values()) {
-                if (offlineAblTimeMap.get(mediaServerItem.getId()) <  System.currentTimeMillis() - 30*60*1000) {
-                    offlineAblsecondaryMap.put(mediaServerItem.getId(), mediaServerItem);
-                    offlineABLPrimaryMap.remove(mediaServerItem.getId());
-                    continue;
-                }
-                logger.info("[ABL-灏濊瘯杩炴帴] ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                JSONObject responseJson = ablResTfulUtils.getServerConfig(mediaServerItem);
-                AblServerConfig ablServerConfig = null;
-                if (responseJson == null) {
-                    logger.info("[ABL-灏濊瘯杩炴帴]澶辫触, ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                    continue;
-                }
-                JSONArray data = responseJson.getJSONArray("params");
-                if (data == null || data.isEmpty()) {
-                    logger.info("[ABL-灏濊瘯杩炴帴]澶辫触, ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                }else {
-                    ablServerConfig = AblServerConfig.getInstance(data);
-                    initPort(mediaServerItem, ablServerConfig);
-                    online(mediaServerItem, ablServerConfig);
-                }
-            }
-        }
-        if (!offlineAblsecondaryMap.isEmpty()) {
-            for (MediaServer mediaServerItem : offlineAblsecondaryMap.values()) {
-                if (offlineAblTimeMap.get(mediaServerItem.getId()) <  System.currentTimeMillis() - 30*60*1000) {
-                    continue;
-                }
-                logger.info("[ABL-灏濊瘯杩炴帴] ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                JSONObject responseJson = ablResTfulUtils.getServerConfig(mediaServerItem);
-                AblServerConfig ablServerConfig = null;
-                if (responseJson == null) {
-                    logger.info("[ABL-灏濊瘯杩炴帴]澶辫触, ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                    offlineAblTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis());
-                    continue;
-                }
-                JSONArray data = responseJson.getJSONArray("params");
-                if (data == null || data.isEmpty()) {
-                    logger.info("[ABL-灏濊瘯杩炴帴]澶辫触, ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-                    offlineAblTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis());
-                }else {
-                    ablServerConfig = AblServerConfig.getInstance(data);
-                    initPort(mediaServerItem, ablServerConfig);
-                    online(mediaServerItem, ablServerConfig);
-                }
-            }
-        }
-    }
-
-    private void online(MediaServer mediaServerItem, AblServerConfig config) {
-        offlineABLPrimaryMap.remove(mediaServerItem.getId());
-        offlineAblsecondaryMap.remove(mediaServerItem.getId());
-        offlineAblTimeMap.remove(mediaServerItem.getId());
-        if (!mediaServerItem.isStatus()) {
-            logger.info("[ABL-杩炴帴鎴愬姛] ID锛歿}, 鍦板潃锛� {}:{}", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-            mediaServerItem.setStatus(true);
-            mediaServerItem.setHookAliveInterval(10F);
-            mediaServerService.update(mediaServerItem);
-            if(mediaServerItem.isAutoConfig()) {
-                if (config == null) {
-                    JSONObject responseJSON = ablResTfulUtils.getServerConfig(mediaServerItem);
-                    JSONArray data = responseJSON.getJSONArray("params");
-                    if (data != null && !data.isEmpty()) {
-                        config = AblServerConfig.getInstance(data);
-                    }
-                }
-                if (config != null) {
-                    initPort(mediaServerItem, config);
-                    setAblConfig(mediaServerItem, false, config);
-                }
-            }
-            mediaServerService.update(mediaServerItem);
-        }
-        // 璁剧疆涓ゆ蹇冭烦鏈敹鍒板垯璁や负zlm绂荤嚎
-        String key = "ABL-keepalive-" + mediaServerItem.getId();
-        dynamicTask.startDelay(key, ()->{
-            logger.warn("[ABL-蹇冭烦瓒呮椂] ID锛歿}", mediaServerItem.getId());
-            mediaServerItem.setStatus(false);
-            offlineABLPrimaryMap.put(mediaServerItem.getId(), mediaServerItem);
-            offlineAblTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis());
-            // TODO 鍙戦�佺绾块�氱煡
-            mediaServerService.update(mediaServerItem);
-        }, (int)(mediaServerItem.getHookAliveInterval() * 2 * 1000));
-    }
-    private void initPort(MediaServer mediaServerItem, AblServerConfig ablServerConfig) {
-        // 绔彛鍙細浠庨厤缃腑璇诲彇涓�娆★紝涓�鏃﹁嚜宸遍厤缃垨鑰呰鍙栬繃浜嗗皢涓嶅湪閰嶇疆
-//        if (mediaServerItem.getHttpSSlPort() == 0) {
-//            mediaServerItem.setHttpSSlPort(ablServerConfig.getHttpSSLport());
-//        }
-        if (mediaServerItem.getRtmpPort() == 0 && ablServerConfig.getRtmpPort() != null) {
-            mediaServerItem.setRtmpPort(ablServerConfig.getRtmpPort());
-        }
-//        if (mediaServerItem.getRtmpSSlPort() == 0) {
-//            mediaServerItem.setRtmpSSlPort(ablServerConfig.getRtmpSslPort());
-//        }
-        if (mediaServerItem.getRtspPort() == 0 && ablServerConfig.getRtspPort() != null) {
-            mediaServerItem.setRtspPort(ablServerConfig.getRtspPort());
-        }
-        if (mediaServerItem.getFlvPort() == 0 && ablServerConfig.getHttpFlvPort() != null) {
-            mediaServerItem.setFlvPort(ablServerConfig.getHttpFlvPort());
-        }
-        if (mediaServerItem.getWsFlvPort() == 0 && ablServerConfig.getWsPort() != null) {
-            mediaServerItem.setWsFlvPort(ablServerConfig.getWsPort());
-        }
-        if (mediaServerItem.getRtpProxyPort() == 0 && ablServerConfig.getPsTsRecvPort() != null) {
-            mediaServerItem.setRtpProxyPort(ablServerConfig.getPsTsRecvPort());
-        }
-//        if (mediaServerItem.getRtspSSLPort() == 0) {
-//            mediaServerItem.setRtspSSLPort(ablServerConfig.getRtspSSlport());
-//        }
-//        if (mediaServerItem.getRtpProxyPort() == 0) {
-//            mediaServerItem.setRtpProxyPort(ablServerConfig.getRtpProxyPort());
-//        }
-        mediaServerItem.setHookAliveInterval(10F);
-    }
-
-    public void setAblConfig(MediaServer mediaServerItem, boolean restart, AblServerConfig config) {
-        try {
-            if (config.getHookEnable() == 0) {
-                logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  寮�鍚疕OOK鍔熻兘 锛歿}", mediaServerItem.getId());
-                JSONObject responseJSON = ablResTfulUtils.setConfigParamValue(mediaServerItem, "hook_enable", "1");
-                if (responseJSON.getInteger("code") == 0) {
-                    logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  寮�鍚疕OOK鍔熻兘鎴愬姛 锛歿}", mediaServerItem.getId());
-                }else {
-                    logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  寮�鍚疕OOK鍔熻兘澶辫触 锛歿}->{}", mediaServerItem.getId(), responseJSON.getString("memo"));
-                }
-            }
-        }catch (Exception e) {
-            logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  寮�鍚疕OOK鍔熻兘澶辫触 锛歿}", mediaServerItem.getId(), e);
-        }
-        // 璁剧疆鐩稿叧鐨凥OOK
-        String[] hookUrlArray = {
-                "on_stream_arrive",
-                "on_stream_none_reader",
-                "on_record_mp4",
-                "on_stream_disconnect",
-                "on_stream_not_found",
-                "on_server_started",
-                "on_publish",
-                "on_play",
-                "on_record_progress",
-                "on_server_keepalive",
-                "on_stream_not_arrive",
-                "on_delete_record_mp4",
-        };
-
-        String protocol = sslEnabled ? "https" : "http";
-        String hookPrefix = String.format("%s://%s:%s/index/hook/abl", protocol, mediaServerItem.getHookIp(), serverPort);
-        Field[] fields = AblServerConfig.class.getDeclaredFields();
-        for (Field field : fields) {
-            try {
-                if (field.isAnnotationPresent(ConfigKeyId.class)) {
-                    ConfigKeyId configKeyId = field.getAnnotation(ConfigKeyId.class);
-                    for (String hook : hookUrlArray) {
-                        if (configKeyId.value().equals(hook)) {
-                            String hookUrl =  String.format("%s/%s", hookPrefix, hook);
-                            field.setAccessible(true);
-                            // 鍒╃敤鍙嶅皠鑾峰彇鍊煎悗瀵规瘮鏄惁涓庨厤缃腑鐩稿悓锛屼笉鍚屽垯杩涜璁剧疆
-                            if (!hookUrl.equals(field.get(config))) {
-                                JSONObject responseJSON = ablResTfulUtils.setConfigParamValue(mediaServerItem, hook, hookUrl);
-                                if (responseJSON.getInteger("code") == 0) {
-                                    logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  璁剧疆HOOK {} 鎴愬姛 锛歿}", hook, mediaServerItem.getId());
-                                }else {
-                                    logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  璁剧疆HOOK {} 澶辫触 锛歿}->{}", hook, mediaServerItem.getId(), responseJSON.getString("memo"));
-                                }
-                            }
-                        }
-                    }
-                }
-            }catch (Exception e) {
-                logger.info("[濯掍綋鏈嶅姟鑺傜偣-ABL]  璁剧疆HOOK 澶辫触 锛歿}", mediaServerItem.getId(), e);
-            }
-        }
-
-
-
-
-//        Map<String, Object> param = new HashMap<>();
-//        param.put("api.secret",mediaServerItem.getSecret()); // -profile:v Baseline
-//        if (mediaServerItem.getRtspPort() != 0) {
-//            param.put("ffmpeg.snap", "%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s");
-//        }
-//        param.put("hook.enable","1");
-//        param.put("hook.on_flow_report","");
-//        param.put("hook.on_play",String.format("%s/on_play", hookPrefix));
-//        param.put("hook.on_http_access","");
-//        param.put("hook.on_publish", String.format("%s/on_publish", hookPrefix));
-//        param.put("hook.on_record_ts","");
-//        param.put("hook.on_rtsp_auth","");
-//        param.put("hook.on_rtsp_realm","");
-//        param.put("hook.on_server_started",String.format("%s/on_server_started", hookPrefix));
-//        param.put("hook.on_shell_login","");
-//        param.put("hook.on_stream_changed",String.format("%s/on_stream_changed", hookPrefix));
-//        param.put("hook.on_stream_none_reader",String.format("%s/on_stream_none_reader", hookPrefix));
-//        param.put("hook.on_stream_not_found",String.format("%s/on_stream_not_found", hookPrefix));
-//        param.put("hook.on_server_keepalive",String.format("%s/on_server_keepalive", hookPrefix));
-//        param.put("hook.on_send_rtp_stopped",String.format("%s/on_send_rtp_stopped", hookPrefix));
-//        param.put("hook.on_rtp_server_timeout",String.format("%s/on_rtp_server_timeout", hookPrefix));
-//        param.put("hook.on_record_mp4",String.format("%s/on_record_mp4", hookPrefix));
-//        param.put("hook.timeoutSec","30");
-//        param.put("hook.alive_interval", mediaServerItem.getHookAliveInterval());
-//        // 鎺ㄦ祦鏂紑鍚庡彲浠ュ湪瓒呮椂鏃堕棿鍐呴噸鏂拌繛鎺ヤ笂缁х画鎺ㄦ祦锛岃繖鏍锋挱鏀惧櫒浼氭帴鐫�鎾斁銆�
-//        // 缃�0鍏抽棴姝ょ壒鎬�(鎺ㄦ祦鏂紑浼氬鑷寸珛鍗虫柇寮�鎾斁鍣�)
-//        // 姝ゅ弬鏁颁笉搴斿ぇ浜庢挱鏀惧櫒瓒呮椂鏃堕棿
-//        // 浼樺寲姝ゆ秷鎭互鏇村揩鐨勬敹鍒版祦娉ㄩ攢浜嬩欢
-//        param.put("protocol.continue_push_ms", "3000" );
-//        // 鏈�澶氱瓑寰呮湭鍒濆鍖栫殑Track鏃堕棿锛屽崟浣嶆绉掞紝瓒呮椂涔嬪悗浼氬拷鐣ユ湭鍒濆鍖栫殑Track, 璁剧疆姝ら�夐」浼樺寲閭d簺闊抽閿欒鐨勪笉瑙勮寖娴侊紝
-//        // 绛墇lm鏀寔缁欐瘡涓猺tpServer璁剧疆鍏抽棴闊抽鐨勬椂鍊欏彲浠ヤ笉璁剧疆姝ら�夐」
-//        if (mediaServerItem.isRtpEnable() && !ObjectUtils.isEmpty(mediaServerItem.getRtpPortRange())) {
-//            param.put("rtp_proxy.port_range", mediaServerItem.getRtpPortRange().replace(",", "-"));
-//        }
-//
-//        if (!ObjectUtils.isEmpty(mediaServerItem.getRecordPath())) {
-//            File recordPathFile = new File(mediaServerItem.getRecordPath());
-//            param.put("protocol.mp4_save_path", recordPathFile.getParentFile().getPath());
-//            param.put("protocol.downloadRoot", recordPathFile.getParentFile().getPath());
-//            param.put("record.appName", recordPathFile.getName());
-//        }
-//
-//        JSONObject responseJSON = ablResTfulUtils.setConfigParamValue(mediaServerItem, param);
-//
-//        if (responseJSON != null && responseJSON.getInteger("code") == 0) {
-//            if (restart) {
-//                logger.info("[濯掍綋鏈嶅姟鑺傜偣] 璁剧疆鎴愬姛,寮�濮嬮噸鍚互淇濊瘉閰嶇疆鐢熸晥 {} -> {}:{}",
-//                        mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-//                ablResTfulUtils.restartServer(mediaServerItem);
-//            }else {
-//                logger.info("[濯掍綋鏈嶅姟鑺傜偣] 璁剧疆鎴愬姛 {} -> {}:{}",
-//                        mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-//            }
-//        }else {
-//            logger.info("[濯掍綋鏈嶅姟鑺傜偣] 璁剧疆濯掍綋鏈嶅姟鑺傜偣澶辫触 {} -> {}:{}",
-//                    mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
-//        }
-    }
-
-}
diff --git "a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServer\351\253\230\346\200\247\350\203\275\346\265\201\345\252\222\344\275\223\346\234\215\345\212\241\345\231\250\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServer\351\253\230\346\200\247\350\203\275\346\265\201\345\252\222\344\275\223\346\234\215\345\212\241\345\231\250\344\275\277\347\224\250\350\257\264\346\230\216.txt"
deleted file mode 100644
index 9cffc98..0000000
--- "a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLMediaServer\351\253\230\346\200\247\350\203\275\346\265\201\345\252\222\344\275\223\346\234\215\345\212\241\345\231\250\344\275\277\347\224\250\350\257\264\346\230\216.txt"
+++ /dev/null
@@ -1,1743 +0,0 @@
-涓�銆佸姛鑳借鏄�
-         ABLMediaServer楂樻�ц兘娴佸獟浣撴湇鍔″櫒锛寃indows骞冲彴閲囩敤楂樻�ц兘鐨勫畬鎴愮鍙g綉缁滄ā鍨嬨�丩inux涓嬮噰鐢╡poll锛屽姞涓婄嚎绋嬫睜杩涜濯掍綋鏁版嵁
-	鐨勬帴鏀躲�佽浆鎹€�佸彂閫併�傛湇鍔″櫒鐨勬�ц兘寮哄姴銆佽繍琛岀ǔ瀹氾紝鍧氬纾愮煶銆傜粡杩囧帇鍔涙祴璇曟瘮杈冿紝杞彂鎬ц兘銆丆PU鍗犳湁鐜囥�佽繍琛岀ǔ瀹氭�т紭鍔挎槑鏄� 銆傚彲
-	浠ラ�氳繃ffmpeg鍛戒护鎴栬�呭叾浠栨爣鍑嗙殑rtsp銆乺tmp鎺ㄦ祦鍑芥暟寰�ABLMediaServer鎺ㄩ�乺tsp娴併�乺tmp娴侊紝璇锋眰鏈嶅姟鍣ㄤ唬鐞嗘媺娴侊紝璇锋眰鏈嶅姟鍣ㄦ帴鏀跺浗
-	鏍嘒B28181銆傛湇鍔″櫒閫氳繃杞崲锛岃緭鍑烘爣鍑嗙殑rtsp鐮佹祦銆乺tmp鐮佹祦銆乭ttp-flv銆亀s-flv 鐮佹祦锛堟敮鎸丠265瑙嗛杈撳嚭锛夈�乭ttp-mp4(瑙嗛鏀寔H264銆�
-	H265锛岄煶棰戞敮鎸丄AC)銆乭ls鐮佹祦杈撳嚭锛堣棰戞敮鎸丠264銆丠265锛岄煶棰戞敮鎸丄AC锛夈�丟B28181鐮佹祦(鍥芥爣PS娴� )杈撳嚭銆�
-		娴佸獟浣撴湇鍔″櫒鏀寔褰曞儚銆佹敮鎸佹櫤鑳藉綍鍍忓垹闄ゃ�佸綍鍍忔煡璇€�佸綍鍍忔枃浠剁偣鎾�佸綍鍍忔枃浠舵瀬閫熶笅杞姐�俬ttp-flv銆亀s-flv銆乭ttp-mp4 鍗忚鐐规挱鏃�
-	鏀寔鏆傚仠缁х画銆佹敮鎸佹嫋鍔ㄦ挱鏀俱�俽tsp鐐规挱褰曞儚鏂囦欢鏃舵敮鎸佹參鏀撅紙1/16銆�1/8銆�1/4銆�1/2锛�,蹇斁锛�2銆�4銆�8銆�16 锛夈�佹甯搁�熷害銆佹敮鎸佹嫋鍔ㄦ挱鏀俱��
-	娴佸獟浣撴湇鍔″櫒鏀绾�(鍩烘湰涓�1绉掍互鍐�)鍥剧墖鎶撴媿锛屾敮鎸佸鎶撴媿鐨勫浘鐗囪繘琛屾煡鎵撅紝鏀寔鎶撴媿鍥剧墖浠ttp鍗忚涓嬭浇銆�
-	   鏈嶅姟鍣ㄦ敮鎸丠265杞爜涓篐264锛岃浆鐮佽緭鍑鸿棰戞敮鎸佹寚瀹氬垎杈ㄧ巼銆佸楂樸�佺爜鐜囧ぇ灏忕瓑绛夊弬鏁般�俉indows骞冲彴鏀寔鑻变紵杈炬樉鍗$‖浠跺姞閫熻浆鐮併�傚疄
-	娴媗inux 骞冲彴鑳芥渶澶у苟鍙戣浆鐮�40璺疕265锛堢‖浠剁幆澧� 鑷冲己 E5 2650 V3锛夛紝瀹炴祴windows 骞冲彴鑳芥渶澶у苟鍙戣浆鐮�35璺疕265锛坕9 + 鑻变紵杈� RTX 2080锛�
-	   Linux 鏂板鏀寔鑻变紵杈句笓涓氭樉鍗�,鏀寔纭欢瑙g爜銆佺‖浠剁紪鐮侊紝鏀寔澶氫釜鏄惧崱鍚屾椂杩涜杞爜銆備袱寮犵壒鏂媺T4锛�16G锛夋樉鍗″彲浠ュ悓鏃舵妸80璺�1080P
-	鐨凥265瑙嗛杞爜涓� 1280 x 720 鐨凥264锛岃浆鐮佸欢鏃朵綆浜�10姣锛屽鏋滈渶瑕佹洿寮虹殑杞爜鍔熻兘鍙互澶氭彃鍑犲紶鏄惧崱鎴栬�呴泦缇� 銆�
-	   鏈嶅姟鍣ㄦ敮鎸佽浆鐮佸嚭鏉ョ殑瑙嗛鎵撳叆鑷畾涔夋按鍗帮紝鏀寔姘村嵃鐨勫瓧绗﹀唴瀹广�佸瓧浣撳ぇ灏忋�� 瀛椾綋棰滆壊銆佸瓧浣撲綅缃兘鍙互鍦ㄩ厤缃枃浠朵腑閰嶇疆銆�
- 	   闈炲父鎰熻阿ZLMediaKit鍜孧edia-Server 涓や釜宸ョ▼椤圭洰鐨勪綔鑰咃紝ABLMediaSever鍙傝�冨鐢ㄤ簡ZLMediaKit鐨刪ttp璇锋眰鍑芥暟鐨勫弬鏁拌〃(璇锋眰鐨刄RL
-	鍙婅姹傜殑鍙傛暟鍚嶅強涓�浜涘垵濮嬪��)浠ュ強鏁翠釜妗嗘灦鐨勪竴浜涜璁℃�濇兂銆傜洿鎺ヨ皟鐢ㄤ簡Media-Server 宸ョ▼鐨� rtmp銆乫lv銆乭ls銆乫mp4 澶嶇敤涓庤В澶嶇敤绛夌瓑銆�
-	闈炲父宕囨嫓涓庢劅璋袱浣嶅ぇ浣负涓浗鐨勫紑婧愭祦濯掍綋鍔姏涓庝粯鍑猴紝鍐嶆鎰熻阿銆�
-		  
-                                                                                    銆愭杩庡姞鍏ラ珮鎬ц兘娴佸獟浣撴湇鍔Q缇� 873666268 銆�
-  
-浜屻�丄BLMediaServer涓昏鍔熻兘
-	 
-    缃戠粶鍗忚濯掍綋杈撳叆 
-	   rtsp銆乺tmp澶栭儴涓诲姩鎺ㄦ祦杈撳叆 
-         1銆乺tsp澶栭儴涓诲姩鎺ㄦ祦    (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	
-         2銆乺tmp澶栭儴涓诲姩鎺ㄦ祦    (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)	
-		 3銆佸浗鏍嘒B28181杈撳叆     (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U) 
-		 4銆佷氦閫氳繍杈撻儴jtt1078   (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U) 
-		 
-	   rtsp銆乺tmp銆乭ttp-flv銆佹湰鍦癿p4鏂囦欢 鎷夋祦杈撳叆锛�
-         1銆乺tsp     鎷夋祦       (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	
-         2銆乺tmp     鎷夋祦       (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)	
-		 3銆乭ttp-flv 鎷夋祦       (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)
-		 4銆佹湰鍦癿p4  鎷夋祦       (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	  
-		 
-       websock鏂瑰紡绉佹湁鍗忚鍙戦�丳CM鏁版嵁杩涘叆娴佸獟浣撴湇鍔″櫒(鍙互鍦ㄦ祻瑙堝櫒褰曢煶閫氳繃websocket浠ヤ笅闈㈢殑绉佹湁鍗忚鎶婅闊虫帴鍏ユ祦濯掍綋鏈嶅姟鍣ㄦ柟渚垮浗鏍囧璁层�佹垨鑰呭叾浠栧簲鐢ㄦ瘮濡傝闊冲箍鎾�)
-		 1銆佹暟鎹寘鏍煎紡
-		    鍖呭ご銆�+銆�鏁版嵁绫诲瀷銆�+銆�闀垮害銆�+銆�鏁版嵁鍖�  
-		    鍖呭ご4涓瓧鑺� 0xAB 0xCD 0xEF 0xAB 
-		    鏁版嵁绫诲瀷銆�  1 涓瓧鑺� 锛孾 0x01 鎺ㄦ祦闊抽娉ㄥ唽 ] [0x02  鍙戦�� PCM 闊抽鏁版嵁鍖匽 [0x03 鏂紑闊抽鎺ㄦ祦 ] 
-		    闀垮害     銆� 2 涓瓧鑺� 锛岀綉缁滃瓧鑺傞『搴忥紙澶х锛� 
-            鏁版嵁鍖�      闊抽娉ㄥ唽鍖呫�乸cm闊抽鏁版嵁鍖呫�佹敞閿�鍖� 
-			
-	    2銆佹暟鎹寘绫诲瀷
-			 1)銆侀煶棰戞敞鍐屽寘 ,json 鏍煎紡
-				 {"method":"register","app":"talk","stream":"xian_1","audioCodec":"pcm","channels":1,"sampleRate":16000,"targetAudioCodec":"g711a"}
-				 
-				 鏍蜂緥锛氬彂閫侀煶棰戞敞鍐� 
-				  websocket 鍙杩炴帴涓婃潵锛屽氨棣栧厛鍙戦�� 闊抽娉ㄥ唽鍖�
-				 (0xAB 0xCD 0xEF 0xAB) + 0x01 + strlen(闊抽娉ㄥ唽鍖�) + {"method":"register","app":"talk","stream":"xian_1","audioCodec":"pcm","channels":1,"sampleRate":16000,"targetAudioCodec":"g711a"}
-	 
-			2) 銆侀煶棰戞暟鎹寘 鍙敮鎸� 16浣嶉噰鏍风簿搴︾殑pcm 锛屽崟閫氶亾銆佸弻閫氶亾銆佸父瑙佺殑閲囨牱棰戠巼閮芥敮鎸侊紙8000銆�16000銆�32000銆�48000锛� 
-				 鏍蜂緥锛氱幇鍦ㄥ彧鍙戦�佺函pcm闊抽鏁版嵁 
-				 (0xAB 0xCD 0xEF 0xAB) + 0x02 + strlen(pcm绾煶棰戞暟鎹�) + pcm绾煶棰戞暟鎹�
-			 
-			3)銆佹敞閿�鍖� 
-				{"method":"destruction"}   
-			 
-				鏍蜂緥锛氬彂閫佹敞閿�鍖�
-				(0xAB 0xCD 0xEF 0xAB) + 0x03 + strlen({"method":"destruction"} ) + {"method":"destruction"}    
-			 
-		鏀寔鐢╢fmpeg鎺ㄧ函闊抽娴佹帴鍏ユ祦濯掍綋鏈嶅姟鍣紝鏀寔鐨勯煶棰戞牸寮忔湁(g711A銆丟711U銆丄AC銆丮P3)
-			 1銆佷互rtsp鍗忚鎺ㄦ湰鍦癮ac鏂囦欢鎺ュ叆娴佸獟浣� 
-				 ffmpeg -re -stream_loop -1 -i F:\music\xxx.aac -c:a aac -rtsp_transport tcp -f rtsp rtsp://190.15.240.11:554/music/aac1
-				 
-			 2銆佷互rtmp鍗忚鎺ㄦ湰鍦癮ac鏂囦欢鎺ュ叆娴佸獟浣� 
-				 ffmpeg -re -stream_loop -1 -i F:\music\xxx.aac -c:a aac -f flv rtmp://190.15.240.11:1935/music/aac2
-				 
-			 3銆佷互rtsp鍗忚鎺ㄦ湰鍦癿p3鏂囦欢鎺ュ叆娴佸獟浣� 
-				 ffmpeg -re -stream_loop -1 -i F:\music\xxx.mp3 -c:a mp3 -rtsp_transport tcp -f rtsp rtsp://190.15.240.11:554/music/aac3
-				 
-			 4銆佷互rtmp鍗忚鎺ㄦ湰鍦癿p3鏂囦欢鎺ュ叆娴佸獟浣� 
-				 ffmpeg -re -stream_loop -1 -i F:\music\xxx.mp3 -c:a mp3 -f flv rtmp://190.15.240.11:1935/music/aac4
-		
-			 5銆佷互rtsp鍗忚鎺ㄦ湰鍦癿p4鏂囦欢涓殑绾煶棰戞祦鎺ュ叆鏈嶅姟鍣�
-				 1) 姣斿鎺ㄤ竴涓棰戞牸寮忎负h264锛岄煶棰戜负aac鐨刴p4鏂囦欢涓殑闊抽娴佽繘鍏ユ湇鍔″櫒锛岄偅涔堟湇鍔″櫒鎺ユ敹鍒扮殑闊抽娴佷负aac ,瑙嗛涓嶅仛鎺ㄩ�� 
-					ffmpeg -re -stream_loop -1 -i F:\video\H264_AAC_2021-02-10_1080P.mp4 -vn -acodec copy -rtsp_transport tcp -f rtsp rtsp://44.35.33.39:554/music/aac5
-					
-				 2) 姣斿鎺ㄤ竴涓棰戞牸寮忎负h264锛岄煶棰戜负g711A鐨刴p4鏂囦欢涓殑闊抽娴佽繘鍏ユ湇鍔″櫒锛岄偅涔堟湇鍔″櫒鎺ユ敹鍒扮殑闊抽娴佷负g711A ,瑙嗛涓嶅仛鎺ㄩ�� 
-					ffmpeg -re -stream_loop -1 -i F:\video\H264-G711A-92017.mp4 -vn -acodec copy -rtsp_transport tcp -f rtsp rtsp://44.35.33.39:554/music/aac6
-					
-				 3) 姣斿鎺ㄤ竴涓棰戞牸寮忎负h264锛岄煶棰戜负g711U鐨刴p4鏂囦欢涓殑闊抽娴佽繘鍏ユ湇鍔″櫒锛岄偅涔堟湇鍔″櫒鎺ユ敹鍒扮殑闊抽娴佷负g711U ,瑙嗛涓嶅仛鎺ㄩ�� 
-					ffmpeg -re -stream_loop -1 -i F:\video\H264-G711U-56434.mp4 -vn -acodec copy -rtsp_transport tcp -f rtsp rtsp://44.35.33.39:554/music/aac7
- 		 
-    缃戠粶鍗忚濯掍綋 杈撳嚭锛�
-	   琚姩鎷夋祦杈撳嚭 
-         1銆乺tsp                (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	
-         2銆乺tmp                (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)
-		 3銆丟B28181鐮佹祦         (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)
-         4銆乭ttp-flv            (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)
-         5銆乭ttp-hls            (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC) 
-		 6銆乭ttp-mp4            (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)  
- 		 7銆亀ebsocket-flv       (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)
-		 8銆亀ebrtc              (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細G711A銆丟711U銆丱PUS)
-		 9銆佷氦閫氳繍杈撻儴jtt1078   (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U) 
-	  
-	   rtsp銆乺tmp銆乬b28181銆乯tt1078 涓诲姩鎺ㄦ祦杈撳嚭锛�
-         1銆乺tsp鎺ㄦ祦            (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	
-         2銆乺tmp鎺ㄦ祦            (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC)		  
-         3銆丟B28181鎺ㄦ祦         (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U)	
-		 4銆佷氦閫氳繍杈撻儴jtt1078   (鏀寔 瑙嗛锛欻264銆丠265 锛岄煶棰戯細AAC銆丟711A銆丟711U) 
-	  
-	
-涓夈�佺畝鏄庝娇鐢ㄤ緥瀛�
-     1锛� 棣栧厛瑕侀厤缃� ABLMediaServer.ini 閲岄潰鐨� 鏈満鐨処P鍦板潃 localipAddress 銆乺ecordPath 椤广�� 
-	    
- 		 1  鏈満鐨処P鍦板潃锛屾渶濂介渶瑕侀厤缃噯纭紙濡傛灉涓嶉厤缃▼搴忎細鑷姩鑾峰彇涓�涓湴鍧�浠f浛锛屽鏋滄湰鏈烘湁澶氫釜鍦板潃鍙兘浼氫笉鍑嗙‘锛屽鏋滈厤缃垯浣跨敤閰嶇疆鐨処P鍦板潃锛岃繖鏍峰氨鍑嗙‘锛夛紝
-		   鍥犱负璋冪敤 getMediaList 鑾峰彇鍙敤濯掍綋婧愮殑json涓紝浼氫娇鐢ㄥ埌鏈満鐨処P鍦板潃鏉ユ嫾鎺� rtsp銆乺tmp銆乭ttp-flv銆亀s-flv銆乭ls銆乭ttp-mp4 鐨勬挱鏀緐rl 銆�
-		   璋冪敤 getMediaList 杩斿洖鐨刯son涓蹭腑鏈夊涓媢rl瀛愰」锛�
-			"url": {
-				"rtsp": "rtsp://10.0.0.239:554/Media/Camera_00001",
-				"rtmp": "rtmp://10.0.0.239:1935/Media/Camera_00001",
-				"http-flv": "http://10.0.0.239:8088/Media/Camera_00001.flv",
-				"ws-flv": "ws://10.0.0.239:6088/Media/Camera_00001.flv",
-				"http-mp4": "http://10.0.0.239:5088/Media/Camera_00001.mp4",
-				"http-hls": "http://10.0.0.239:9088/Media/Camera_00001.m3u8"
-			}		    
-		  
-		    鍏朵腑鐨� 10.0.0.239 灏辨槸鍙互浠� localipAddress 閰嶇疆椤� 绮剧‘鑾峰彇 銆�
-		  
-		 2銆佸綍鍍忚矾寰勯厤缃� recordPath锛屽鏋滀笉闇�瑕佸綍鍍忥紝鍙互蹇界暐褰曞儚璺緞閰嶇疆
-			# 褰曞儚鏂囦欢淇濆瓨璺緞,濡傛灉涓嶉厤缃綍鍍忔枃浠朵繚瀛樺湪搴旂敤绋嬪簭鎵�鍦ㄧ殑璺緞涓嬬殑record瀛愯矾寰勶紝濡傛灉閰嶇疆璺緞鍒欎繚瀛樺湪閰嶇疆鐨勮矾寰勭殑record閲岄潰 
-			# 娉ㄦ剰锛氬鏋滈渶瑕佸綍鍍忓瓨鍌紝瀛樺偍鐨勭‖鐩樺崈涓囦笉瑕佸垎鍖猴紝鏁翠釜纭洏浣滀负涓�涓尯锛屽洜涓烘湇鍔″櫒娌℃湁鎵ц涓や釜浠ヤ笂鐨勭洏绗︽搷浣溿��
-			# 褰曞儚淇濆瓨璺緞閰嶇疆 windows骞冲彴鐨勮矾寰勯厤缃� 姣斿 D:\video ,Linux 骞冲彴閰嶇疆 /home/video
-			# 褰曞儚璺緞浣跨敤浜嗛粯璁よ矾寰勶紝灏变竴鐩翠娇鐢ㄩ粯璁よ矾寰勶紝濡傛灉浣跨敤浜嗛厤缃矾寰勫氨涓�鐩翠娇鐢ㄩ厤缃矾寰勶紝纭繚浣跨敤鐨勮矾寰勭殑纭洏绌洪棿涓烘渶澶х殑锛屽鏋滈渶瑕佹洿鎹㈣矾寰勶紝瑕佹妸鍘熸潵鐨勫綍鍍忚矾寰勭殑瑙嗛鍏ㄩ儴鍒犻櫎銆�
-            # 1璺珮娓�5M鐨勬憚鍍忓ご锛屽鏋滃綍鍍忕殑璇濓紝姣忓皬鏃朵骇鐢�2G澶у皬宸﹀彸鐨勫綍鍍忔枃浠躲�傚彲浠ユ牴鎹繖涓潵璁$畻闇�瑕佽喘涔板澶х殑纭洏锛屾帴鍏ュ灏戣矾鎽勫儚澶达紝闇�瑕佽缃綍鍍忔枃浠舵渶澶х殑淇濆瓨鏃堕棿 	
-
-	 2锛夈��  濯掍綋杈撳嚭瑙勫垯锛� [network protocol]://[ip]:[port]/[app]/[stream][.extend]
-	 
-	          銆愭敞锛氬鏋滆嚜宸变笉鎯虫嫾鎺ユ挱鏀緐rl 锛屽彲浠ヨ皟鐢╤ttp鍑芥暟 /index/api/getMediaList锛岃繑鍥炲彲鎾斁濯�
-			   浣撴簮涓湁鍚勭鎾斁鍗忚鐨剈rl, 璇﹁涓嬮潰鐨勫嚱鏁� /index/api/getMediaList 銆�
-		
-		        璇存槑锛� 
-				      [network protocol]  鏈� rtsp銆乺tmp銆乭ttp銆亀s 
-    				  [ip]                灏辨槸鏈嶅姟鍣ㄦ墍鍦ㄧ殑IP鍦板潃 
-      				  [port]              鍚勪釜缃戠粶鍗忚鍒嗕韩鏃惰缃殑绔彛鍙凤紝璇﹁ ABLMediaServer.ini 鐨勯厤缃枃浠讹紝閲岄潰鏈夌浉搴旂殑缃戠粶鍗忚閰嶇疆绔彛
-					  [app]               鍚勭缃戠粶鍗忚鍙戦�佽繃鏉ヨ缃殑涓�绾у悕瀛�
-					  [stream]            鍚勭缃戠粶鍗忚鍙戦�佽繃鏉ヨ缃殑浜岀骇鍚嶅瓧
-					  [.extend]           鎵╁睍鍚嶅瓧锛屼富瑕佷负涓轰簡璁块棶鏈嶅姟鍣ㄦ椂锛屾湇鍔″櫒闇�瑕佽瘑鍒綉缁滃崗璁渶瑕佸鎴风鍙戦�佽繃鏉ョ殑鎵╁睍鍚嶃��
-					                        rtsp銆乺tmp        涓嶉渶瑕佹墿灞曞悕锛�
-										    http-flv 銆亀s-flv 鎵╁睍鍚嶄负 .flv 
-					                        hls 鏂瑰紡璁块棶鏃讹紝  鎵╁睍鍚嶄负 .m3u8 
-										    http-mp4璁块棶鏃�    鎵╁睍鍚嶄负 .mp4 
-										   
-				      姣斿鏈嶅姟鍣↖P涓� 190.15.240.11 锛宎pp 涓� Media ,stream 涓� Camera_00001 ,鍋囧畾绔彛閮芥槸榛樿 锛岄偅涔堝悇绉嶇綉缁滆闂畊rl濡備笅锛�
-						 rtsp:  
-							rtsp://190.15.240.11:554/Media/Camera_00001
-							
-						 rtmp:  
-							rtmp://190.15.240.11:1935/Media/Camera_00001
-
-						 http-flv: 
-							http://190.15.240.11:8088/Media/Camera_00001.flv
-							
-						 http-mp4: 
-							http://190.15.240.11:5088/Media/Camera_00001.mp4
-						
-						 websocket-flv:  
-							ws://190.15.240.11:6088/Media/Camera_00001.flv
-							
-						 http-hls:  
-							http://190.15.240.11:9088/Media/Camera_00001.m3u8
-
-    3锛夈�佷娇鐢╢fmpeg寰� ABLMediaServer 鎺ㄩ�乺tsp 鐮佹祦 銆愬亣瀹� 婧愭憚鍍忔満rtsp RUL涓� rtsp://admin:abldyjh2020@192.168.1.120:554 , ABLMediaServer 鎵�鍦ㄦ湇鍔″櫒鍦板潃涓� 190.15.240.11 銆�
-	    銆愭帹閫乺tsp鏂瑰紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC銆丟711A銆丟711U 銆�
-		
-		ffmpeg -rtsp_transport tcp -i rtsp://admin:abldyjh2020@192.168.1.120:554 -vcodec copy -acodec copy -f rtsp -rtsp_transport tcp rtsp://190.15.240.11:554/Media/Camera_00001
-		
-	   濯掍綋杈撳嚭锛� 
-	     rtsp: 銆恟tsp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC銆丟711A銆丟711U 銆�
-		    rtsp://190.15.240.11:554/Media/Camera_00001
-			
-		 rtmp: 銆恟tmp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            rtmp://190.15.240.11:1935/Media/Camera_00001	 
-
-		 http-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            http://190.15.240.11:8088/Media/Camera_00001.flv
-			
-		 ws-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            ws://190.15.240.11:6088/Media/Camera_00001.flv
-			
-		 http-hls: 銆恏ttp-hls杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            http://190.15.240.11:9088/Media/Camera_00001.m3u8
-			
-    4锛夈�佷娇鐢╢fmpeg寰� ABLMediaServer 鎺ㄩ�乺tmp 鐮佹祦 銆愬亣瀹� 婧愭憚鍍忔満rtsp RUL涓� rtsp://admin:abldyjh2020@192.168.1.120:554 , ABLMediaServer 鎵�鍦ㄦ湇鍔″櫒鍦板潃涓� 190.15.240.11 銆�
-	    銆愭帹閫乺tmp鏂瑰紡璇存槑锛氳棰戞敮鎸� H264 ,闊抽鏀寔AAC 銆�
-		
-		ffmpeg -rtsp_transport tcp -i rtsp://admin:abldyjh2020@192.168.1.120:554 -acodec copy -vcodec copy -f flv rtmp://190.15.240.11:1935/Media/Camera_00001
-		
-	      rtsp: 銆恟tsp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC銆丟711A銆丟711U 銆�
-		    rtsp://190.15.240.11:554/Media/Camera_00001
-			
-		  rtmp: 銆恟tmp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            rtmp://190.15.240.11:1935/Media/Camera_00001	 
-
-		  http-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            http://190.15.240.11:8088/Media/Camera_00001.flv
-	
-		 ws-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            ws://190.15.240.11:6088/Media/Camera_00001.flv
-
-		 http-hls: 銆恏ttp-hls杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-             http://190.15.240.11:9088/Media/Camera_00001.m3u8
-			
-    5锛夈�佷娇鐢╢fmpeg寰� ABLMediaServer 鎺ㄩ�乺tsp鐨勬枃浠剁爜娴� 銆愬亣瀹氬獟浣撴枃浠朵负锛欶:\video\MP4鏈夊0闊砛H264_AAC_2021-02-10_1080P.mp4  , ABLMediaServer 鎵�鍦ㄦ湇鍔″櫒鍦板潃涓� 190.15.240.11 銆�
-	    銆愭帹閫乺tsp鏂瑰紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC銆丟711A銆丟711U 銆�
-		
-		ffmpeg -re -stream_loop -1 -i F:\video\MP4鏈夊0闊砛H264_AAC_2021-02-10_1080P.mp4 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://190.15.240.11:554/Media/Camera_00001
-		
-	    濯掍綋杈撳嚭锛�
-	      rtsp: 銆恟tsp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC銆丟711A銆丟711U 銆�
-		    rtsp://190.15.240.11:554/Media/Camera_00001
-			
-		  rtmp: 銆恟tmp杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            rtmp://190.15.240.11:1935/Media/Camera_00001	 
-
-		  http-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            http://190.15.240.11:8088/Media/Camera_00001.flv
-	
-		 ws-flv: 銆恏ttp-flv杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-            ws://190.15.240.11:6088/Media/Camera_00001.flv
-
-		 http-hls: 銆恏ttp-hls杈撳嚭鏍煎紡璇存槑锛氳棰戞敮鎸� H264銆丠265 ,闊抽鏀寔AAC 銆�
-             http://190.15.240.11:9088/Media/Camera_00001.m3u8
-	
-      銆愮壒鍒敞鏄庯細鍙互寰�10000 鐨剈dp绔彛鎺ㄩ�乀S鐮佹祦锛屾帹閫佹垚鍔熷悗锛屽彲浠ヨ皟鐢� http鍑芥暟getMediaList鏉ヨ幏鍙栨帴鍏ョ殑rtp鐮佹祦 銆�
-	     ffmpeg.exe -re -stream_loop -1 -i F:\video\H264_20191021094432.mp4 -vcodec copy -f rtp_mpegts rtp://127.0.0.1:100000
-    		
-	
-    6锛夈�佹祦濯掍綋杈撳嚭鎾斁楠岃瘉
-         濡傛灉瑙嗛鏄痳tsp鏂瑰紡锛屽彲浠ラ噰鐢╒LC杩涜鎾斁楠岃瘉銆�
-銆�銆�銆�銆� 濡傛灉rtmp銆乭ttp-flv 鍗忚锛岃棰戜负h264 ,鍙互閲囩敤VLC鎾斁楠岃瘉銆佹垨鑰匓绔欑殑 flv.js 鎾斁鍣ㄩ獙璇�
-		 濡傛灉rtmp銆乭ttp-flv 鍗忚锛岃棰戜负h265 ,鍙互閲囩敤EasyPlayer.js 鎾斁鍣ㄩ獙璇侊紝銆愭敞锛歏LC 銆乫lv.js 涓嶆敮鎸丷tmp鐨凥265瑙嗛銆佷篃涓嶆敮鎸乭ttp-flv鐨�265瑙嗛 銆�
-			
-	7锛夈�佺敵璇蜂唬鐞唕tsp銆乺tmp銆乫lv 鎷夋祦 銆佹湰鍦癿p4鏂囦欢 锛岀敵璇峰垹闄や唬鐞嗘媺娴� 
-		 1) 鐢宠浠g悊rtsp銆乺tmp銆乫lv 鎷夋祦銆佹湰鍦癿p4鏂囦欢 
- 		    
-			   URL: /index/api/addStreamProxy
-			   
-			        鍙傛暟锛�               鍙傛暟璇存槑            鍙傛暟鍙傝�冨��
-					secret                   鏈嶅姟鍣ㄥ瘑鐮�        姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                                      姣斿  _defaultVhost_
-					app                      搴旂敤鍚�            姣斿 Media
-					stream                   濯掍綋娴佸悕          姣斿 Camera_00001            銆�/app/stream 缁勫悎璧锋潵涓嶈兘閲嶅銆�
-					url                      浠g悊鎷夋祦url       姣斿 rtsp://admin:abldyjh2020@192.168.1.120:554         鎴栬��
-                                                   					rtmp://190.15.240.36:1935/Media/Camera_00001       鎴栬�� 
- 																	http://190.15.240.36:8088/Media/Camera_00001.flv   鎴栬��
-																	d:\\video\\xxxx.mp4   (windows骞冲彴)
-																	/home/video/xxxx.mp4  (Linux骞冲彴)
- 					isRtspRecordURL                             浠g悊鎷夋祦鐨剈rl鏄惁鏄痳tsp褰曞儚鍥炴斁鐨剈rl 榛樿0 锛�1 鏄�愬彲閫夊弬鏁般�戯紝濡傛灉鏄痳tsp褰曞儚鍥炴斁鐨剈rl锛屽彲浠ヨ繘琛屾帶鍒朵唬鐞嗘媺娴侊紝姣斿 鏆傚仠銆佺户缁�佹帶鍒跺�嶉�熸挱鏀撅紝鎷栧姩鎾斁绛夌瓑 锛屽弬鑰�
-					                                            鍑芥暟 /index/api/controlStreamProxy 
-				    optionsHeartbeat          options蹇冭烦       options 鍛戒护浣滀负蹇冭烦鍖�      銆愬彲閫夊弬鏁般�� 浠g悊rtsp鎷夋祦鎴愬悗锛屾槸鍚﹀紑鍚彂閫� 0 涓嶅紑鍚紝 1 寮�鍚� 锛岄粯璁や笉寮�鍚紝濡傛灉浠� ZLMediaKit 鎷夊彇rtsp娴侊紝寤鸿璁剧疆涓� 1 
-					enable_mp4                鏄惁褰曞儚          1 褰曞儚锛�0 涓嶅綍鍍�            銆愬彲閫夊弬鏁般��
-					enable_hls                鏄惁hls鍒囩墖       1 杩涜hls 鍒囩墖 锛�0 涓嶅垏鐗�   銆愬彲閫夊弬鏁般��
-				    convertOutWidth           杞爜瀹�            杞爜杈撳嚭瀹� 濡傛灉鎸囧畾瀹姐�侀珮   銆愬彲閫夊弬鏁般�慬1920 x 1080, 1280 x 720 ,960 x 640 ,800 x 480 ,720 x 576 , 720 x 480 ,640 x 480 ,352 x 288 ] 灏辫鏄� H265 杩涜杞爜涓� H264 
-				    convertOutHeight          杞爜楂�            杞爜杈撳嚭楂� 濡傛灉鎸囧畾瀹姐�侀珮   銆愬彲閫夊弬鏁般�慬1920 x 1080, 1280 x 720 ,960 x 640 ,800 x 480 ,720 x 576 , 720 x 480 ,640 x 480 ,352 x 288 ] 灏辫鏄� H265 杩涜杞爜涓� H264  
-				    H264DecodeEncode_enable   H264鏄惁瑙g爜      H264鍒嗚鲸鐜囬珮鍐嶇紪鐮侀檷鍒嗚鲸鐜囷紝銆愬彲閫夊弬鏁般�戞湁鏃跺�欓渶瑕丠264瑙嗛杩涜鍏堣В鐮佸啀閲嶆柊缂栫爜闄嶄綆鍒嗚鲸鐜囷紝鍙互璁剧疆 H264DecodeEncode_enable 涓� 1 锛岄檷涓嬫潵鐨勫垎杈ㄧ巼涓� convertOutWidth 銆� convertOutHeight
-					disableVideo              鏄惁杩囨护鎺夎棰�    0 涓嶈繃婊� 锛�1 杩囨护瑙嗛       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					disableAudio              鏄惁杩囨护鎺夐煶棰�    0 涓嶈繃婊� 锛�1 杩囨护闊抽       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-					
-               http  GET 鏂瑰紡 		
-			        1 璇锋眰rtsp鎷夋祦鏍蜂緥
-			            http://190.15.240.11:7088/index/api/addStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=Media&stream=Camera_00001&url=rtsp://admin:abldyjh2020@192.168.1.120:554&enable_mp4=0
-
-			   http POST 鏂瑰紡  
-                    1 璇锋眰rtsp鎷夋祦鏍蜂緥		
-                       http璇锋眰 url 鏍蜂緥
-                         http://190.15.240.11:7088/index/api/addStreamProxy					   
-					   body 鍙傛暟 , json 鏍煎紡	  
-			             {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","url":"rtsp://admin:abldyjh2020@192.168.1.120:554","enable_mp4":0}
-						 
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� 
-						"key": 93            # 鎴愬姛鏃惰繑鍥炲ぇ浜�0鐨勫�硷紝涓轰唬鐞嗘媺娴佺殑Key ,鍒犻櫎浠g悊鎷夋祦鏃堕渶瑕佺敤鐨�   
-					}
-					
-		 2) 鎺у埗浠g悊鎷夋祦锛屾瘮濡� 鏆傚仠銆佺户缁�佹帶鍒跺�嶉�熸挱鏀撅紝鎷栧姩鎾斁绛夌瓑 
-			     URL: /index/api/controlStreamProxy
-			   
-			     鍙傛暟锛�
-					secret  鏈嶅姟鍣ㄥ瘑鐮� 锛屾瘮濡�  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					key                  姣斿  93 锛岃皟鐢� addStreamProxy 杩斿洖鐨� key 鐨勫�� 
-					command              姣斿  pause銆乺esume銆乻eek銆乻cale 瀵逛簬瀵瑰簲鎰忔�濓細鏆傚仠銆佺户缁�佹嫋鍔ㄦ挱鏀俱�佸�嶉�熸挱鏀� 
- 			        value  (瀛楃涓�)      姣斿  1銆�2銆�4銆�8銆�16(鍊嶉�熸挱鏀�) 锛宯pt鏂瑰紡锛�360銆�1800銆�3600锛堟嫋鍔ㄦ挱鏀撅級锛宑lock鏂瑰紡锛歝lock=20230625T113000Z-19700101T000001Z锛堟嫋鍔ㄥ埌锛�2023-06-25 11:30:00鎵ц鎾斁锛�
-					                           value 涓哄彲閫夊弬鏁帮紝褰� command 涓� pause,resume 鏃讹紝value 涓嶇敤 锛屽綋 command 涓簊eek,sacale
-											   鏄紝闇�瑕佸~鍐檝alue鐨勫�� 
-					鍛戒护銆佸�兼牱渚嬪垪琛�
-					command              value                                             娉ㄩ噴
-					pause                涓嶉渶瑕�                                            鏆傚仠鍥炴斁   
-					resume               涓嶉渶瑕�                                            缁х画鍥炴斁   
-					scale                2                                                 2鍊嶉�熷洖鏀�
-					seek                 360                                               鎷栨嫿浠庡紑濮嬬偣璁$畻璧峰埌360绉掑鍐嶅洖鏀�  銆恘tp鏂瑰紡鎷栨嫿 锛屼唬琛� 鍗庝负 VCN\3800 銆�
-					seek                 clock=20230625T113000Z-19700101T000001Z           鎷栨嫿鍒�20230625T113000Z澶勫啀鍥炴斁     銆恈lock鏂瑰紡鎷栨嫿 锛屼唬琛� 娴峰悍NVR  銆�
-					
-			    http GET 鏂瑰紡 
-			        http://190.15.240.11:7088/index/api/controlStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93&command=pause              鏆傚仠
-			        http://190.15.240.11:7088/index/api/controlStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93&command=resume             缁х画
-			        http://190.15.240.11:7088/index/api/controlStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93&command=scale&value=2      2鍊嶉�熷洖鏀�
-			        http://190.15.240.11:7088/index/api/controlStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93&command=seek&value=360     鎷栨嫿鍒�360绉掑缁х画鍥炴斁
-			        http://190.15.240.11:7088/index/api/controlStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93&command=seek&value=clock=20230625T113000Z-19700101T000001Z
-				   
-				http  POST 鏂瑰紡 
-				    http URL :
-				      http://190.15.240.11:7088/index/api/controlStreamProxy
-					  
-				    body 鍙傛暟 Json鏍煎紡 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93,"command":"pause"} 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93,"command":"resume"} 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93,"command":"sacale","value":"2"} 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93,"command":"seek","value":"360"} 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93,"command":"seek","value":"clock=20230625T113000Z-19700101T000001Z"} 
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}		
-		
-		         銆愭敞锛氬彂閫乭ttp璇锋眰 鍙互浣跨敤curl銆乸ostman銆佹垨鑰呭叾浠栨爣鍑嗙殑http宸ュ叿 銆�
-				 
-				
-		 3) 鐢宠鍒犻櫎浠g悊rtsp銆乺tmp銆乫lv 鎷夋祦
- 			     URL: /index/api/delStreamProxy
-			   
-			     鍙傛暟锛�
-					secret  鏈嶅姟鍣ㄥ瘑鐮� 锛屾瘮濡�  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					key                  姣斿  93 锛岃皟鐢� addStreamProxy 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			        http://190.15.240.11:7088/index/api/delStreamProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-				   
-				http  POST 鏂瑰紡 
-				    http URL :
-				      http://190.15.240.11:7088/index/api/delStreamProxy
-					  
-				    body 鍙傛暟 Json鏍煎紡 
-				       {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93} 
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}		
-		
-		         銆愭敞锛氬彂閫乭ttp璇锋眰 鍙互浣跨敤curl銆乸ostman銆佹垨鑰呭叾浠栨爣鍑嗙殑http宸ュ叿 銆�
-				 
-				 
-		   
-	 8锛夈�佺敵璇蜂唬鐞唕tsp銆乺tmp銆佹帹娴� 銆佺敵璇峰垹闄や唬鐞嗘媺娴� 
-		 1) 鐢宠浠g悊rtsp銆乺tmp 鎺ㄦ祦锛堟敞鎰忥細涓嶆槸鍥芥爣GB28181鎺ㄦ祦锛� 
- 		    
-			     URL: /index/api/addPushProxy
-			   
-			     鍙傛暟锛�                鍙傛暟璇存槑          鍙傝�冨��
-					secret             鏈嶅姟鍣ㄥ瘑鐮� 锛�      姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                                 姣斿 _defaultVhost_
-					app                搴旂敤鍚�             姣斿 Media
-					stream             濯掍綋娴佸悕           姣斿 Camera_00001
-					url                浠g悊鎺ㄦ祦url        姣斿 rtsp://190.15.240.36:554/Media/Camera_00001 鎴栬�� rtmp://190.15.240.36:1935/Media/Camera_00001 
-					disableVideo       鏄惁杩囨护鎺夎棰�     0 涓嶈繃婊� 锛�1 杩囨护瑙嗛  銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					disableAudio       鏄惁杩囨护鎺夐煶棰�     0 涓嶈繃婊� 锛�1 杩囨护闊抽  銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-					
-               http  GET 鏂瑰紡 			   
-			         http://190.15.240.11:7088/index/api/addPushProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=Media&stream=Camera_00001&url=rtsp://190.15.240.36:554/Media/Camera_00001
- 
-			   http  POST 鏂瑰紡  
-                    http URL 
-                      http://190.15.240.11:7088/index/api/addPushProxy
-
-					http Body 鍙傛暟 (json鏍煎紡) 					  
- 			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","url":"rtsp://190.15.240.36:554/Media/Camera_00001"}
- 			
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� 
-						"key": 93            # 鎴愬姛鏃惰繑鍥炲ぇ浜�0鐨勫�硷紝涓轰唬鐞嗘帹娴佺殑Key ,鍒犻櫎浠g悊鎺ㄦ祦鏃堕渶瑕佺敤鐨�   
-					}
-				
-		 2) 鐢宠鍒犻櫎浠g悊rtsp銆乺tmp 鎺ㄦ祦
- 			     URL: /index/api/delPushProxy
-			   
-			     鍙傛暟锛�      鍙傛暟璇存槑          鍙傛暟鍙傝�冨��
-					secret  鏈嶅姟鍣ㄥ瘑鐮� 锛�      姣斿  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					key     涓婚敭ID             姣斿  93 锛岃皟鐢� /index/api/addPushProxy 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			        http://190.15.240.11:7088/index/api/delPushProxy?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-				   
-				http POST 鏂瑰紡 
-				    http URL 
-					  http://190.15.240.11:7088/index/api/delPushProxy
-					  
-					http Body json 鏍煎紡  
-				      {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93}
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}		
-		   		   
-	9锛夈�佸垱寤篏B28181\Jtt1078鎺ユ敹绔彛銆佸垹闄B28181\Jtt1078鎺ユ敹绔彛銆佸浗鏍囨殏鍋溿�佺户缁�  
-	
-         1 	鍒涘缓GB28181\Jtt1078鎺ユ敹绔彛
-				 
-			     URL: /index/api/openRtpServer
-				 鍔熻兘锛�
-				      鍒涘缓GB28181\Jtt1078鎺ユ敹绔彛锛屽鏋滆绔彛鎺ユ敹瓒呮椂锛屼細鑷姩鍥炴敹锛屼笉鐢ㄨ皟鐢�  /index/api/closeRtpServer
-			   
-			     鍙傛暟锛�                      鍙傛暟璇存槑           鍙傛暟鍙傝�冨��
-					secret                    鏈嶅姟鍣ㄥ瘑鐮�        姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                                       姣斿 _defaultVhost_
-					app                       搴旂敤鍚�            姣斿 gb28181 銆乺tp 绛夌瓑 (鎺ュ叆)
-					stream_id                 濯掍綋娴佸悕          姣斿 44030012343220234234 锛堟渶濂芥槸鍥芥爣缂栧彿锛�( 鎺ュ叆 )
-					payload                   PS璐熻浇鍊�          鍥芥爣SDP閲岄潰PS璐熻浇鍊笺��锛屾瘮濡� 96,98 ,108 ,涓�瀹氳浠庡浗鏍嘢DP閲岄潰鑾峰彇 
-					port                      绔彛鍙�            0 锛岀敱鏈嶅姟鍣ㄨ嚜鍔ㄥ垎閰嶏紝鍒殑鍊� 姣斿 26324 涓烘寚瀹氱鍙�
-					enable_tcp                鏄惁涓簍cp         0 涓� udp , 1 涓簍cp琚姩鏂瑰紡 锛�2 涓簍cp涓诲姩杩炴帴鏂瑰紡 
-					dst_url                   鐩爣IP            鐩爣IP鍦板潃  銆愬彲閫夊弬鏁� 锛屽綋 enable_tcp 涓� 2 鏃跺繀椤诲~鍐� 銆�
-					dst_port                  鐩爣绔彛          鐩爣绔彛    銆愬彲閫夊弬鏁� 锛屽綋 enable_tcp 涓� 2 鏃跺繀椤诲~鍐欍��
-					
- 					enable_mp4                鏄惁褰曞儚          1 褰曞儚锛�0 涓嶅綍鍍�            銆愬彲閫夊弬鏁般��
-					enable_hls                鏄惁hls鍒囩墖       1 杩涜hls 鍒囩墖 锛�0 涓嶅垏鐗�   銆愬彲閫夊弬鏁般��
-				    convertOutWidth           杞爜瀹�            杞爜杈撳嚭瀹� 濡傛灉鎸囧畾瀹姐�侀珮   銆愬彲閫夊弬鏁般�慬1920 x 1080, 1280 x 720 ,960 x 640 ,800 x 480 ,720 x 576 , 720 x 480 ,640 x 480 ,352 x 288 ] 灏辫鏄� H265 杩涜杞爜涓� H264 
-				    convertOutHeight          杞爜楂�            杞爜杈撳嚭楂� 濡傛灉鎸囧畾瀹姐�侀珮   銆愬彲閫夊弬鏁般�慬1920 x 1080, 1280 x 720 ,960 x 640 ,800 x 480 ,720 x 576 , 720 x 480 ,640 x 480 ,352 x 288 ] 灏辫鏄� H265 杩涜杞爜涓� H264  
-				    H264DecodeEncode_enable   H264鏄惁瑙g爜      H264鍒嗚鲸鐜囬珮鍐嶇紪鐮侀檷鍒嗚鲸鐜囷紝銆愬彲閫夊弬鏁般�戞湁鏃跺�欓渶瑕丠264瑙嗛杩涜鍏堣В鐮佸啀閲嶆柊缂栫爜闄嶄綆鍒嗚鲸鐜囷紝鍙互璁剧疆 H264DecodeEncode_enable 涓� 1 锛岄檷涓嬫潵鐨勫垎杈ㄧ巼涓� convertOutWidth 銆� convertOutHeight
-					RtpPayloadDataType        rtp鎵撳寘鏁版嵁鏍煎紡   rtp鎵撳寘鏁版嵁鏍煎紡             銆愬彲閫夊弬鏁� 锛岄粯璁� 1 銆� [1 PS 鍥芥爣gb28181 ]銆乕 2 ES 瑙嗛鏀寔 H246\H265锛岄煶棰戝彧鏀寔G711A銆丟711U ]銆乕3 XHB (涓�瀹跺叕鍙哥殑鎵撳寘鏍煎紡) 鍙敮鎸佽棰戯紝闊抽涓嶈兘鍔犲叆鎵撳寘 ] [ 4 銆丣t1078锛�2016鐗堟湰锛夌爜娴佹帴鍏� ]
-					disableVideo              鏄惁杩囨护鎺夎棰�    0 涓嶈繃婊� 锛�1 杩囨护瑙嗛       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					disableAudio              鏄惁杩囨护鎺夐煶棰�    0 涓嶈繃婊� 锛�1 杩囨护闊抽       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-					jtt1078_version           鎸囧畾1078鐗堟湰鍙�    2013銆�2016銆�2019            銆愬彲閫夊弬鏁般�� 2013 鎸囧畾涓� 2013鐗堟湰 銆�2016 鎸囧畾涓� 2016鐗堟湰銆� 2019 鎸囧畾涓� 2019 鐗堟湰  
-					
-					send_app                  搴旂敤鍚�            姣斿 gb28181 銆乺tp 绛夌瓑     銆愬彲閫夊弬鏁般�� 鐢ㄤ簬鎶婃湰鏈嶅姟鍣ㄧ殑鐮佹祦锛坰end_app/send_stream_id锛夊洖澶嶇粰鍙戦�佺
-					send_stream_id            濯掍綋娴佸悕          姣斿 44030012343220234234   銆愬彲閫夊弬鏁般�� 鐢ㄤ簬鎶婃湰鏈嶅姟鍣ㄧ殑鐮佹祦锛坰end_app/send_stream_id锛夊洖澶嶇粰鍙戦�佺
-					send_disableVideo         鏄惁杩囨护鎺夎棰�    0 涓嶈繃婊� 锛�1 杩囨护瑙嗛       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					send_disableAudio         鏄惁杩囨护鎺夐煶棰�    0 涓嶈繃婊� 锛�1 杩囨护闊抽       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-	                detectSendAppStream       鏄惁妫�娴嬪彂閫佹祦ID  0 涓嶆娴� 锛�1 妫�娴�           銆愬彲閫夊弬鏁般�� 榛樿 1 鍦ㄩ渶瑕佸洖浼犵爜娴佹椂锛屼簨鍏堟娴� send_app銆乻end_stream_id 鏄惁瀛樺湪銆�0 涓嶆娴嬶紝鍏堟墦寮�鎺ユ敹鎴愬姛鍚庯紝绋嶅悗鍐嶆妸send_app銆乻end_stream_id鎺ュ叆娴佸獟浣擄紝openRtpServer鍑芥暟鑷姩鍥炲缁欎笅绾ф祦濯掍綋銆�
-					
-	             http  GET 鏂瑰紡 			   
-			        http://190.15.240.11:7088/index/api/openRtpServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=gb28181&stream_id=44030012343220234234&payload=96&port=0&enable_tcp=0&enable_mp4=0
-  
-			     http  POST 鏂瑰紡    
-				    http URL
-					  http://190.15.240.11:7088/index/api/openRtpServer
-					  
-					http 鍙傛暟鍊� 
-			           {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream_id":"Camera_00001","payload":96,"port":0,"enable_tcp":0,"enable_mp4":0}
- 			
-				杩斿洖Body锛�
-					  {
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"port": 8356,        # 绔彛鍙�
-						"memo": "success",   # success 涓烘垚鍔� 
-						"key": 93            # 鎴愬姛鏃惰繑鍥炲ぇ浜�0鐨勫�硷紝GB28181鎺ユ敹瀹炰緥key ,鍏抽棴鏃堕渶瑕�   
-					  }
-		
-           2    鍒犻櫎 GB28181\Jtt1078鎺ユ敹绔彛		
-			     URL: /index/api/closeRtpServer
-				 鍔熻兘锛�
-				      鍒犻櫎GB28181\Jtt1078鎺ユ敹绔彛 
-			   
-			     鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-					secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/openRtpServer 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			       http://190.15.240.11:7088/index/api/closeRtpServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-				   
-				http  POST 鏂瑰紡 
-				   http URL 
-				     http://190.15.240.11:7088/index/api/closeRtpServer
-					 
-				   http Body 鍙傛暟 json 鏍煎紡
-				     {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93}
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}				
-					
-           3    鏆傚仠 GB28181\Jtt1078鎺ユ敹绔彛锛屽彧鏄笉妫�娴嬫帴鏀剁鍙f槸鍚︽湁鐮佹祦杩涘叆銆�
-			     URL: /index/api/pauseRtpServer
-				 鍔熻兘锛�
-				      鏆傚仠GB28181\Jtt1078鎺ユ敹
-			   
-			     鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-					secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/openRtpServer 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			       http://44.35.33.249:7088/index/api/pauseRtpServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=588
-				   
-				http  POST 鏂瑰紡 
-				   http URL 
-				     http://44.35.33.249:7088/index/api/pauseRtpServer
-					 
-				   http Body 鍙傛暟 json 鏍煎紡
-				     {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":588}
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}				
-           
-           4   缁х画 GB28181\Jtt1078鎺ユ敹绔彛锛屽紑鍚娴嬬鍙f槸鍚︽湁鐮佹祦鍒拌揪锛屽鏋滄椂闀垮埌杈炬渶澶ц秴鏃舵病鏈夌爜娴佽繘鍏ヤ細绔嬪嵆鍒犻櫎鎺ユ敹绔彛
-			     URL: /index/api/resumeRtpServer
-				 鍔熻兘锛�
-				      缁х画GB28181\Jtt1078鎺ユ敹
-			   
-			     鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-					secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/openRtpServer 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			       http://44.35.33.249:7088/index/api/resumeRtpServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=588
-				   
-				http  POST 鏂瑰紡 
-				   http URL 
-				     http://44.35.33.249:7088/index/api/resumeRtpServer
-					 
-				   http Body 鍙傛暟 json 鏍煎紡
-				     {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":588}
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}	
-					
-	 10锛夈�佸垱寤篏B28181\Jtt1078 鍙戦�佺鍙c�佸垹闄B28181\Jtt1078鍙戦�佺鍙� 
-	
-         1 	鍒涘缓GB28181\Jtt1078鍙戦�佺鍙�
-				 
-			     URL: /index/api/startSendRtp
-				 鍔熻兘锛�
-				      鍒涘缓GB28181\Jtt1078鍙戦�佺鍙o紝濡傛灉璇ュ彂閫佺绔彛娌℃湁鏁版嵁鍙戦�侊紝浼氳嚜鍔ㄥ洖鏀讹紝涓嶇敤璋冪敤  /index/api/stopSendRtp
-			   
-			     鍙傛暟锛�                 鍙傛暟璇存槑              鍙傛暟鍙傝�冨��
-					secret              鏈嶅姟鍣ㄥ瘑鐮�            姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                                     姣斿 _defaultVhost_
-					app                 搴旂敤鍚�                姣斿 gb28181 銆乺tp 绛夌瓑  (鍙戦�佸嚭鍘�)
-					stream              濯掍綋娴佸悕              姣斿 44030012343220234234 锛堝彂閫佸嚭鍘伙級
-					payload             PS璐熻浇鍊�              鍥芥爣SDP閲岄潰PS璐熻浇鍊笺��锛屾瘮濡� 96,98 ,108 ,rtp鎵撳寘鏃堕渶瑕�
-					ssrc                鍚屾婧�                ssrc
-					src_port            鍙戦�佺缁戝畾鐨勭鍙e彿    鎸囧畾鏈嶅姟鍣ㄥ湪鍙戦�佸浗鏍囨祦鏃剁粦瀹氱殑绔彛鍙凤紝濡傛灉涓� 0 锛岀敱鏈嶅姟鍣ㄨ嚜鍔ㄥ垎閰嶏紝鍒殑鍊� 姣斿 26324 涓烘寚瀹氱鍙�
-					dst_url             鐩爣IP                鐩爣IP鍦板潃 
-					dst_port            鐩爣绔彛              鐩爣绔彛 
-					is_udp              鏄惁璁剧疆udp           0 TCP涓诲姩鏂瑰紡锛�1 udp 鏂瑰紡 锛�2 涓� TCP 琚姩鏂瑰紡 
-					RtpPayloadDataType  rtp鎵撳寘鏁版嵁鏍煎紡      銆愬彲閫夊弬鏁� 锛岄粯璁� 1 銆� [ 1 PS 鍥芥爣gb28181 ]銆乕 2 ES 瑙嗛鏀寔 H246\H265锛岄煶棰戝彧鏀寔G711A銆丟711U ]銆乕3 XHB (涓�瀹跺叕鍙哥殑鎵撳寘鏍煎紡) 鍙敮鎸佽棰戯紝闊抽涓嶈兘鍔犲叆鎵撳寘 ] [ 4 銆丣t1078锛�2016鐗堟湰锛夌爜娴佸彂閫� ]
-					disableVideo        鏄惁杩囨护鎺夎棰�        0 涓嶈繃婊� 锛�1 杩囨护瑙嗛       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					disableAudio        鏄惁杩囨护鎺夐煶棰�        0 涓嶈繃婊� 锛�1 杩囨护闊抽       銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-					jtt1078_version     鎸囧畾1078鐗堟湰鍙�        2013銆�2016銆�2019            銆愬彲閫夊弬鏁般�� 2013 鎸囧畾涓� 2013鐗堟湰 銆�2016 鎸囧畾涓� 2016鐗堟湰銆� 2019 鎸囧畾涓� 2019 鐗堟湰  
-					
-					recv_app            搴旂敤鍚�               姣斿 gb28181 銆乺tp 绛夌瓑      銆愬彲閫夊弬鏁般�� 鎺ュ叆杩涙潵 閫氳繃鍦ㄥ彂閫佺殑杩炴帴涓帴鏀惰繘鏉ョ殑鐮佹祦 
-					recv_stream         濯掍綋娴佸悕             姣斿 44030012343220234234    銆愬彲閫夊弬鏁般�� 鎺ュ叆杩涙潵 閫氳繃鍦ㄥ彂閫佺殑杩炴帴涓帴鏀惰繘鏉ョ殑鐮佹祦  
-					recv_disableVideo   鏄惁杩囨护鎺夎棰�       0 涓嶈繃婊� 锛�1 杩囨护瑙嗛        銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊よ棰戯紝鍥藉鐢电綉鍗忚涓渶瑕佹憚鍍忓ご鍜屾憚鍍忓ご鐩存帴闇�瑕佸鎺ワ紝鎽勫儚澶存帹涓婃潵鐨勫獟浣撴祦涓繃婊ゆ帀瑙嗛锛坉isableVideo=1锛夊啀鍙戠粰瀵规柟鎵嶈兘瀹屾垚瀵硅 
-					recv_disableAudio   鏄惁杩囨护鎺夐煶棰�       0 涓嶈繃婊� 锛�1 杩囨护闊抽        銆愬彲閫夊弬鏁般�� 榛樿 0 涓嶈繃婊ら煶棰戯紝鏈夋椂鍊欎笉闇�瑕侀煶棰戙�佹垨鑰呯敱浜庢晱鎰熷師鍥犵姝㈡敹鍚煶棰戯紝鍙互杩囨护鎺夐煶棰戞祦鎺ュ叆娴佸獟浣撴湇鍔″櫒锛屽彧闇�瑕佽缃� disableAudio = 1鍗冲彲杩囨护闊抽  
-					
-	             http  GET 鏂瑰紡 			   
-			        http://190.15.240.11:7088/index/api/startSendRtp?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=gb28181&stream=44030012343220234234&payload=96&ssrc=5224&src_port=26324&dst_url=190.15.240.11&dst_port=9824&is_udp=1
-  
-			     http  POST 鏂瑰紡    
-				    http URL
-					  http://190.15.240.11:7088/index/api/startSendRtp
-					  
-					http 鍙傛暟鍊� 
-			           {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","payload":96,"ssrc":2432,"src_port":26324,"dst_url":"190.15.240.11","dst_port":9824,"is_udp":1}
- 			
-				杩斿洖Body锛�
-					  {
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"port": 8356,        # 绔彛鍙�
-						"memo": "success",   # success 涓烘垚鍔� 
-						"key": 93            # 鎴愬姛鏃惰繑鍥炲ぇ浜�0鐨勫�硷紝GB28181鍙戦�佺爜娴佸疄渚媖ey ,鍏抽棴鏃堕渶瑕�   
-					  }
-		
-           2    鍒犻櫎 GB28181\Jtt1078鍙戦�佺鍙�		
-			     URL: /index/api/stopSendRtp
-				 鍔熻兘锛�
-				      鍒犻櫎GB28181\Jtt1078鍙戦�佺鍙� 
-			   
-			     鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-					secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/startSendRtp 杩斿洖鐨� key 鐨勫�� 
- 			   
-			    http GET 鏂瑰紡 
-			       http://190.15.240.11:7088/index/api/stopSendRtp?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-				   
-				http  POST 鏂瑰紡 
-				   http URL 
-				     http://190.15.240.11:7088/index/api/stopSendRtp
-					 
-				   http Body 鍙傛暟 json 鏍煎紡
-				     {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93}
-				   
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-					}				
-					
-	11锛夈�佽幏鍙栨祦濯掍綋鏈嶅姟鍣ㄦ墍鏈夊彲鐢ㄧ殑濯掍綋婧�
-			 URL: /index/api/getMediaList
-			 
-			 鍔熻兘锛�
-				 鑾峰彇娴佸獟浣撴湇鍔″櫒鎵�鏈夊獟浣撴簮
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬彲閫夊弬鏁般��
-				stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬彲閫夊弬鏁般��
-				
-				鍙傛暟濉啓鏍蜂緥璇存槑锛�
-			  鏍蜂緥1锛坅pp銆乻tream 閮戒笉濉啓锛� 
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    
-				  杩斿洖鎵�鏈夊湪绾跨殑濯掍綋婧�
-				 
-			  鏍蜂緥2 锛堝彧濉啓 app 锛�
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				   app     rtp 
-				   杩斿洖 app 绛変簬 rtp 鐨勬墍鏈夊獟浣撴簮
-				   
-			  鏍蜂緥3 锛堝~鍐� app = rtp , stream = 44303403343034243200234锛�
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				   app     rtp 
-				   stream  44303403343034243200234 
-				  杩斿洖 app 绛変簬 rtp銆佸苟涓� stream 绛変簬 44303403343034243200234 鐨勬墍鏈夊獟浣撴簮
-				  
-			  鏍蜂緥4 锛堝~鍐� stream = 44303403343034243200234锛�
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
- 				   stream  44303403343034243200234 
-				   杩斿洖 stream 绛変簬 44303403343034243200234 鐨勬墍鏈夊獟浣撴簮
- 				  
-	         http  GET 鏂瑰紡 
-               http://127.0.0.1:7088/index/api/getMediaList?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://190.15.240.11:7088/index/api/getMediaList
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-				{
-					"code": 0,
-					"memo": "success",
-					"mediaList": [
-						{
-							"key": 34,    
-							"app": "Media",  
-							"stream": "Camera_00001",
-							"sim": "123456789123",      銆�1078鐮佹祦鎺ュ叆杩欎釜瀛楁鐨勫�间笉浼氫负绌猴紝浠h〃璁惧鐨剆im鍗$紪鐮� 銆�
-							"status": false ,           銆� false 灏氭湭褰曞儚锛宼rue 姝e湪褰曞儚    銆�
-			 			    "enable_hls": false,        銆� false 灏氭湭鍚敤锛宼rue 鍚敤hls鍥炴斁 銆�
-                            "transcodingStatus": false, 銆� false 灏氭湭杞爜锛宼rue 姝e湪杞爜    銆�
-							"sourceURL": "rtsp://10.0.0.239:554/Media/Camera_00001",
-							"sourceType": 23,
-							"readerCount": 0,
-							"videoCodec": "H264",
-							"width": 1920,
-							"height": 1080,
-							"networkType": 24,
-							"audioCodec": "AAC",
-							"audioChannels": 1,
-							"audioSampleRate": 16000,
-							"url": {
-								"rtsp": "rtsp://10.0.0.239:554/Media/Camera_00001",
-								"rtmp": "rtmp://10.0.0.239:1935/Media/Camera_00001",
-								"http-flv": "http://10.0.0.239:8088/Media/Camera_00001.flv",
-								"ws-flv": "ws://10.0.0.239:6088/Media/Camera_00001.flv",
-								"http-mp4": "http://10.0.0.239:5088/Media/Camera_00001.mp4",
-								"http-hls": "http://10.0.0.239:9088/Media/Camera_00001.m3u8",
-								"webrtc":"http://10.0.0.239:8892/webrtc-streamer.html?video=/Media/Camera_00001"
-							}
-						}
-					]
-				}	
-				
-              銆愭敞閲婏細鍙互鏍规嵁 "networkType": 24, 杩欎釜瀛楁鍊煎尯鍒� 濯掍綋鎺ュ叆鐨勭被鍨� 锛屽叿浣撹瑙佺綉缁滅被鍨嬬殑瀵圭収琛� 銆�				
-			 
-   12)   鍒犻櫎 鏌愪竴涓獟浣撴簮 		
-		 URL: /index/api/delMediaStream
-		 鍔熻兘锛�
-			  鏌愪竴涓獟浣撴簮锛岃繖濯掍綋婧愶紝鍙互鏄痳tp鎺ㄦ祦銆乺tmp鎺ㄦ祦锛屽悇绉嶆柟寮忎唬鐞嗘媺娴佹帴鍏ョ殑锛屽浗鏍囨帴鍏� 绛夌瓑銆�
-	   
-		 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-			secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/getMediaList 杩斿洖鐨� key 鐨勫�� 
-	   
-		http GET 鏂瑰紡 
-		   http://190.15.240.11:7088/index/api/delMediaStream?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-		   
-		http  POST 鏂瑰紡 
-		   http URL 
-			 http://190.15.240.11:7088/index/api/delMediaStream
-			 
-		   http Body 鍙傛暟 json 鏍煎紡
-			 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93}
-		   
-		杩斿洖Body锛�
-			{
-				"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-				"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-			}				
-			
-	13锛夈�佽幏鍙栨祦濯掍綋鏈嶅姟鍣ㄦ墍鏈夊線澶栭儴杈撳嚭鐮佹祦鍒楄〃锛屽寘鎷閮ㄨ姹傜殑rtsp銆乺tmp銆乭ttp-flv銆亀s-flv銆乭ls 鍒楄〃
-	                                      涔熷寘鎷湇鍔″櫒浠g悊rtsp鎺ㄦ祦銆乺tmp鎺ㄦ祦鍒楄〃
-										  涔熷寘鎷湇鍔″櫒浠ュ浗鏍囨柟寮忓線涓婄骇鎺╮tp娴佸垪琛�
-						銆愬繀瑕佹椂鍙互璋冪敤 /index/api/delOutList 鎺ュ彛鍒犻櫎鏌愪竴涓垪琛ㄥ璞★紝姣斿鍒犻櫎鏌愪竴璺浗鏍囨帹娴併�佸垹闄ゆ煇涓�璺痳tsp鎺ㄦ祦銆� 鍒犻櫎鏌愪竴璺痳tmp鎺ㄦ祦銆�
-			 URL: /index/api/getOutList
-			 
-			 鍔熻兘锛�
-				 鑾峰彇娴佸獟浣撴湇鍔″櫒鎵�鏈夎緭鍑烘祦鍒楄〃
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				
-	         http  GET 鏂瑰紡 
-               http://44.35.33.239:7088/index/api/getOutList?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc	
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://44.35.33.239:7088/index/api/getOutList
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-					{
-						"code": 0,
-						"memo": "success",
-						"outList": [
-							{ 
-								"key": 103,                銆愯姹傚鎴风鐨勬爣璇咺D 锛屽彲浠ヨ皟鐢�  /index/api/delOutList 鍒犻櫎 璇ヨ姹傘��
-								"app": "Media",
-								"stream": "Camera_00001",
-								"sourceURL": "rtsp://44.35.33.239:554/Media/Camera_00001",  銆愯〃绀哄鐣屼互rtsp鏂瑰紡鍚戞湇鍔″櫒璇锋眰鐮佹祦銆�
-								"videoCodec": "H264",
-								"audioCodec": "AAC",
-								"audioChannels": 1,
-								"audioSampleRate": 16000,
-								"networkType": 24,         銆愮綉缁滅被鍨嬩负24 锛屾爣璇嗕负rtsp 鏂瑰紡銆�
-								"dst_url": "44.35.33.39",  銆� 璇锋眰鐮佹祦瀹㈡埛绔疘P   銆�
-								"dst_port": 43801          銆� 璇锋眰鐮佹祦瀹㈡埛绔鍙� 銆�
-							},
-							{
-								"key": 85,                 銆愯姹傚鎴风鐨勬爣璇咺D 锛屽彲浠ヨ皟鐢�  /index/api/delOutList 鍒犻櫎 璇ヨ姹傘��
-								"app": "Media",
-								"stream": "Camera_00001",
-								"sourceURL": "http://localhost:8088/Media/Camera_00001.flv",銆愯〃绀哄鐣屼互 http-flv 鏂瑰紡鍚戞湇鍔″櫒璇锋眰鐮佹祦銆� 
-								"videoCodec": "H264",
-								"audioCodec": "AAC",
-								"audioChannels": 1,
-								"audioSampleRate": 16000,
-								"networkType": 25,         銆愮綉缁滅被鍨嬩负25 锛屾爣璇嗕负 http-flv 鏂瑰紡銆�
-								"dst_url": "44.35.33.39",  銆� 璇锋眰鐮佹祦瀹㈡埛绔疘P   銆�
-								"dst_port": 43806          銆� 璇锋眰鐮佹祦瀹㈡埛绔鍙� 銆�  
-							}
-						]
-					}			
-	
-	              銆愭敞閲婏細鍙互鏍规嵁 "networkType": 24, 杩欎釜瀛楁鍊煎尯鍒� 濯掍綋杈撳嚭鐨勭被鍨� 锛屽叿浣撹瑙佺綉缁滅被鍨嬬殑瀵圭収琛� 銆�				
-
-   14)   鍒犻櫎 鏌愪竴涓湇鍔″櫒鎵�鏈夊線澶栭儴杈撳嚭鐮佹祦鍒楄〃	
-		 URL: /index/api/delOutList 
-		 鍔熻兘锛�
-			  鍒犻櫎鏌愪竴涓祦濯掍綋鏈嶅姟鍣ㄦ墍鏈夊線澶栭儴杈撳嚭鐮佹祦鍒楄〃锛屽寘鎷閮ㄨ姹傜殑rtsp銆乺tmp銆乭ttp-flv銆亀s-flv銆乭ls 鐐规挱 銆傚浗鏍囨帹娴併�乺tsp鎺ㄦ祦銆乺tmp 鎺ㄦ祦 绛夌瓑
-	   
-		 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-			secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			key              涓婚敭鍊糏D     姣斿  93 锛�  璋冪敤 /index/api/getOutList 杩斿洖鐨� key 鐨勫�� 
-	   
-		http GET 鏂瑰紡 
-		   http://190.15.240.11:7088/index/api/delOutList?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=93
-		   
-		http  POST 鏂瑰紡 
-		   http URL 
-			 http://190.15.240.11:7088/index/api/delOutList
-			 
-		   http Body 鍙傛暟 json 鏍煎紡
-			 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","key":93}
-		   
-		杩斿洖Body锛�
-			{
-				"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-				"memo": "success",   # success 涓烘垚鍔� ,濡傛灉澶辫触鏄叾浠栧�� 
-			}	
-			
-   15锛夋牴鎹潯浠剁粍鍚堬紝鍒犻櫎浠绘剰涓�涓垨涓�缁勬垨鑰呭叏閮ㄥ獟浣撹緭鍏ュ垪琛�
-       URL: /index/api/close_streams
-	   
-	   鍔熻兘
-	      鍒犻櫎浠绘剰涓�涓垨涓�缁勬垨鑰呭叏閮ㄥ獟浣撹緭鍏ュ垪琛� 
-		    
-			secret           鏈嶅姟鍣ㄥ瘑鐮�            姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc                           銆愬繀濉弬鏁般��
-			vhost                                  姣斿 _defaultVhost_                                                 銆愬彲閫夊弬鏁般��
-			app              搴旂敤鍚�                姣斿 gb28181 銆乺tp 绛夌瓑                                             銆愬彲閫夊弬鏁般��
-			stream           濯掍綋娴佸悕              姣斿 Camera_00001銆乨safdsafassdafadsfas銆佺瓑绛�                       銆愬彲閫夊弬鏁般��
-			force            鏄惁寮哄埗鍏抽棴          1 寮哄埗鍏抽棴锛屼笉绠℃槸鍚︽湁浜哄湪瑙傜湅銆�0 闈炲己鍒跺叧闂紝褰撴湁浜鸿鐪嬫椂涓嶅叧闂��  銆愬繀濉弬鏁般��
-			
-		 http GET 鏂瑰紡 
-            绀轰緥1锛� http://190.168.24.112:7088/index/api/close_streams?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&app=live&force=1
-		            銆愯〃绀哄己琛屽叧闂� app 绛変簬 live 鐨勭爜娴佹帴鍏ャ��
-            绀轰緥2锛� http://190.168.24.112:7088/index/api/close_streams?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&app=live&stream=Camera_00001&force=1
-		            銆愯〃绀哄己琛屽叧闂� app 绛変簬 live, 骞朵笖 stream 绛変簬 Camera_00001  鐨勭爜娴佹帴鍏� 銆�
-            绀轰緥3锛� http://190.168.24.112:7088/index/api/close_streams?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&force=1
-		            銆愯〃绀哄己琛屽叧闂� 鎵�鏈夌爜娴侊紙app鍏ㄩ儴銆乻tream鍏ㄩ儴锛� 鎺ュ叆 銆�
-				   
- 		 http pos 鏂瑰紡 
-            绀轰緥1锛� http URL:
-			          http://190.168.24.112:7088/index/api/close_streams
-			        body:
-			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","app":"live","force":1}
-					
-		             銆愯〃绀哄己琛屽叧闂� app 绛変簬 live 鐨勭爜娴佹帴鍏ャ��
-					 
-            绀轰緥2锛� http URL:
-			          http://190.168.24.112:7088/index/api/close_streams
-			        body:
-			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","app":"live","stream":"Camera_00001","force":1}
-					  
-		           銆愯〃绀哄己琛屽叧闂� app 绛変簬 live, 骞朵笖 stream 绛変簬 Camera_00001  鐨勭爜娴佹帴鍏� 銆�
-				   
-            绀轰緥3锛� http URL:
-			          http://190.168.24.112:7088/index/api/close_streams
-			        body:
-			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","force":1}
-			
-		           銆� 琛ㄧず寮鸿鍏抽棴 鎵�鏈夌爜娴侊紙app鍏ㄩ儴銆乻tream鍏ㄩ儴锛� 鎺ュ叆 銆�
- 
-	 16锛夈�� 寮�濮嬪綍鍍忋�佸仠姝㈠綍鍍�
-		 1) 鐢宠寮�濮嬪綍鍍�
- 		    
-			     URL: /index/api/startRecord
-			   
-			     鍙傛暟锛�     鍙傛暟璇存槑          鍙傝�冨��
-					secret  鏈嶅姟鍣ㄥ瘑鐮� 锛屾瘮濡� 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                姣斿 _defaultVhost_
-					app     搴旂敤鍚�       姣斿 Media
-					stream  濯掍綋娴佸悕     姣斿 Camera_00001
-					
-               http  GET 鏂瑰紡 			   
-			         http://190.15.240.11:7088/index/api/startRecord?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=Media&stream=Camera_00001
- 
-			   http  POST 鏂瑰紡  
-                    http URL 
-                      http://190.15.240.11:7088/index/api/startRecord
-
-					http Body 鍙傛暟 (json鏍煎紡) 					  
- 			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001"}
- 			
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "MediaSource: /Media/Camera_00001 start Record",   #  "code": 0 涓烘垚鍔� 
-					}
-				
-		 2) 鐢宠鍋滄褰曞儚
- 			     URL: /index/api/stopRecord
-			   
-			     鍙傛暟锛�     鍙傛暟璇存槑          鍙傝�冨��
-					secret  鏈嶅姟鍣ㄥ瘑鐮� 锛屾瘮濡� 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-					vhost                姣斿 _defaultVhost_
-					app     搴旂敤鍚�       姣斿 Media
-					stream  濯掍綋娴佸悕     姣斿 Camera_00001
-					
-               http  GET 鏂瑰紡 			   
-			         http://190.15.240.11:7088/index/api/stopRecord?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=Media&stream=Camera_00001
- 
-			   http  POST 鏂瑰紡  
-                    http URL 
-                      http://190.15.240.11:7088/index/api/stopRecord
-
-					http Body 鍙傛暟 (json鏍煎紡) 					  
- 			          {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001"}
- 			
-				杩斿洖Body锛�
-					{
-						"code": 0,           # 0涓烘搷浣滄垚鍔燂紝鍏朵粬鍊间负鎿嶄綔澶辫触
-						"memo": "success",   # success 涓烘垚鍔� 
-					}
- 
-   17  鑾峰彇绯荤粺閰嶇疆鍙傛暟 		
-		 URL: /index/api/getServerConfig
-		 鍔熻兘锛�
-			  鑾峰彇鏈嶅姟鍣ㄧ殑閰嶇疆鍙傛暟
-	   
-		 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��   
-			secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-	   
-		http GET 鏂瑰紡 
-		   http://190.15.240.11:7088/index/api/getServerConfig?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-		   
-		http  POST 鏂瑰紡 
-		   http URL 
-			 http://190.15.240.11:7088/index/api/getServerConfig
-			 
-		   http Body 鍙傛暟 json 鏍煎紡
-			 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-		   
-		杩斿洖Body锛�
-			{
-				"code": 0,
-				"params": [
-				
-					{
-						"secret": "035c73f7-bb6b-4889-a715-d9eb2d1925cc",
-						"memo": "server password",				
-					},
-					{
-						"ServerIP": "44.35.33.239",
-						"memo": "ABLMediaServer ip address"				
-					},
-					{
-						"rtc.listening-ip": "192.168.2.5",
-						"memo": "Total number of video playback threads ."					
-					},
-					{
-						"mediaServerID": "ABLMediaServer_00001",
-						"memo": "media Server ID "			
-					},
-					{
-						"hook_enable": 0,
-						"memo": "hook_enable = 1 open notice , hook_enable = 0 close notice "
-					},
-					{
-						"enable_audio": 1,
-						"memo": "enable_audio = 1 open Audio , enable_audio = 0 Close Audio "
-					},
-					{
-						"httpServerPort": 7088,
-						"memo": "http api port "
-					},
-					{
-						"rtspPort": 554,
-						"memo": "rtsp port "
-					},
-					{
-						"rtmpPort": 1935,
-						"memo": "rtmp port "
-					},
-					{
-						"httpFlvPort": 8088,
-						"memo": "http-flv port "
-					},
-					{
-						"hls_enable": 0,
-						"memo": "hls whether enable "
-					},
-					{
-						"hlsPort": 9088,
-						"memo": "hls port"
-					},
-					{
-						"wsPort": 6088,
-						"memo": "websocket flv port"
-					},
-					{
-						"mp4Port": 5088,
-						"memo": "http mp4 port"
-					},
-					{
-						"ps_tsRecvPort": 10000,
-						"memo": "recv ts , ps Stream port "
-					},
-					{
-						"hlsCutType": 2,
-						"memo": "hlsCutType = 1 hls cut to Harddisk,hlsCutType = 2  hls cut Media to memory"
-					},
-					{
-						"h265CutType": 1,
-						"memo": " 1 h265 cut TS , 2 cut fmp4 "
-					},
-					{
-						"RecvThreadCount": 128,
-						"memo": " RecvThreadCount "
-					},
-					{
-						"SendThreadCount": 128,
-						"memo": "SendThreadCount"
-					},
-					{
-						"GB28181RtpTCPHeadType": 2,
-						"memo": "rtp Length Type"
-					},
-					{
-						"ReConnectingCount": 40320,
-						"memo": "Try reconnections times ."
-					},
-					{
-						"maxTimeNoOneWatch": 9999999,
-						"memo": "maxTimeNoOneWatch ."
-					},
-					{
-						"pushEnable_mp4": 0,
-						"memo": "pushEnable_mp4 ."
-					},
-					{
-						"fileSecond": 180,
-						"memo": "fileSecond ."
-					},
-					{
-						"fileKeepMaxTime": 1,
-						"memo": "fileKeepMaxTime ."
-					},
-					{
-						"httpDownloadSpeed": 6,
-						"memo": "httpDownloadSpeed ."
-					},
-					{
-						"RecordReplayThread": 32,
-						"memo": "Total number of video playback threads ."
-					}
-				]
-			}
-				
-		18锛夈�佹煡璇㈠綍鍍忓垪琛�
-			 URL: /index/api/queryRecordList
-			 
-			 鍔熻兘锛�
-				 鏌ヨ鏌愪竴璺緭鍏ユ簮鐨勫綍鍍忓垪琛�(鍙互鏌ヨ浠g悊鎷夋祦杈撳叆銆佹帹娴佽緭鍏ャ�佸浗鏍囪緭鍏ョ瓑绛� )
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				vhost                         姣斿 _defaultVhost_                              銆愬彲閫夊弬鏁般�� 
-				app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬繀濉弬鏁般��
-				stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬繀濉弬鏁般��
-			    starttime        寮�濮嬫椂闂�     姣斿 20220116154810 骞存湀鏃ユ椂鍒嗙                 銆愬繀濉弬鏁般��
-			    endtime          缁撴潫鏃堕棿     姣斿 20220116155115 骞存湀鏃ユ椂鍒嗙                 銆愬繀濉弬鏁般��
-				
-			銆愭敞鎰忥細1銆佸紑濮嬫椂闂村繀椤诲皬浜� 褰撳墠鏃堕棿鍑忓幓鍒囩墖鏃堕暱鐨勬椂闂� 2銆佷粠 寮�濮嬫椂闂� 鑷� 缁撴潫鏃堕棿 涓嶈兘瓒呰繃3澶┿��
- 				  
-	         http  GET 鏂瑰紡 
-               http://10.0.0.239:7088/index/api/queryRecordList?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&app=Media&stream=Camera_00001&starttime=20220116154810&endtime=20220116155115
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://190.15.240.11:7088/index/api/queryRecordList
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","starttime":"20220116154810","endtime":"20220116155115"}
-				 
-			 杩斿洖Body锛�
-				{
-					"code": 0,
-					"app": "Media",
-					"stream": "Camera_00001",
-					"starttime": "20220116154810",
-					"endtime": "20220116155115",
-					"recordFileList": [
-						{
-							"file": "20220116154810.mp4",
-							"duration": 300,   褰撳墠褰曞儚鏃堕棿闀垮害锛屽崟浣� 绉�
-							"url": {
-								"rtsp": "rtsp://10.0.0.239:554/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810",
-								"rtmp": "rtmp://10.0.0.239:1935/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810",
-								"http-flv": "http://10.0.0.239:8088/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810.flv",
-								"ws-flv": "ws://10.0.0.239:6088/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810.flv",
-								"http-mp4": "http://10.0.0.239:5088/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810.mp4?download_speed=1",
-								"download": "http://10.0.0.239:5088/Media/Camera_00001__ReplayFMP4RecordFile__20220116154810.mp4?download_speed=6"
-							}
-						},
-						{
-							"file": "20220116155110.mp4",
-							"duration": 256,    褰撳墠褰曞儚鏃堕棿闀垮害锛屽崟浣� 绉�
-							"url": {
-								"rtsp": "rtsp://10.0.0.239:554/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110",
-								"rtmp": "rtmp://10.0.0.239:1935/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110",
-								"http-flv": "http://10.0.0.239:8088/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110.flv",
-								"ws-flv": "ws://10.0.0.239:6088/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110.flv",
-								"http-mp4": "http://10.0.0.239:5088/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110.mp4?download_speed=1",
-								"download": "http://10.0.0.239:5088/Media/Camera_00001__ReplayFMP4RecordFile__20220116155110.mp4?download_speed=6"
-							}
-						}
-					]
-				}
-	  19锛夈�佹秷鎭�氱煡浣跨敤 
-            鍔熻兘璇存槑锛氭秷鎭�氱煡鏄祦濯掍綋鏈嶅姟鍣ㄧ殑涓�浜涙秷鎭瘮濡傛棤浜鸿鐪嬨�乫mp4褰曞儚鍒囩墖瀹屾垚銆佹挱鏀炬椂娴佸湴鍧�涓嶅瓨鍦ㄧ瓑绛変俊鎭兘鍙婃椂鐨勯�氱煡鍒板彟澶栦竴涓猦ttp鏈嶅姟鍣ㄤ笂锛岄渶瑕佹鍔熻兘
-			          娑堟伅閫氱煡鍔熻兘鐢ㄥ湪浠�涔堝湴鏂癸紝姣斿璇存棤浜鸿鐪嬫秷鎭�氱煡锛屽綋鏀跺埌鏃犱汉瑙傜湅娑堟伅鏃讹紝鍥芥爣鏈嶅姟鍣ㄥ彲浠ュ叧闂浗鏍囧彂娴侊紝鏂紑浠g悊鎷夋祦锛屾柇寮�鎺ㄦ祦绛夌瓑鎿嶄綔 
-			          瑕佷娇鐢ㄦ鍔熻兘鎶婇厤缃枃浠剁殑鍙傛暟hook_enable 鍊艰缃负 1锛屽悓鏃堕�氱煡鐨刪ttp鏈嶅姟鍣ㄥ湴鍧�銆佺鍙e彿涓�瀹氳璁剧疆瀵癸紝涓嬮潰鍒椾妇鍑洪厤缃枃浠朵腑鐨勭浉鍏冲弬鏁�
- 				 
-				hook_enable=1                                                                  #浜嬩欢閫氱煡閮ㄥ垎,褰� hook_enable=1 鏃讹紝寮�鍚簨浠堕�氱煡锛宧ook_enable=0鏃跺叧闂簨浠堕�氱煡 
-                on_stream_arrive=http://10.0.0.238:7088/index/hook/on_stream_arrive            #褰撴煇涓�璺殑鐮佹祦杈惧埌鏃朵細閫氱煡涓�娆�
-  				on_stream_none_reader=http://10.0.0.238:8080/index/hook/on_stream_none_reader  #褰撴煇涓�璺祦鏃犱汉瑙傜湅鏃讹紝浼氳Е鍙戣閫氱煡浜嬩欢锛屾帴鏀剁鏀跺埌鍚庡彲浠ヨ繘琛屾柇娴佹搷浣�
-                on_stream_disconnect=http://10.0.0.238:7088/index/hook/on_stream_disconnect    #褰撴煇涓�璺爜娴佹柇寮�鏃朵細閫氱煡涓�娆�
-				on_stream_not_found=http://10.0.0.238:8080/index/hook/on_stream_not_found      #鎾斁鏃讹紝鎵句笉鍒版挱鏀剧殑鐮佹祦锛岄�氳繃閰嶅悎on_stream_none_reader浜嬩欢鍙互瀹屾垚鎸夐渶鎷夋祦
- 				on_record_mp4=http://10.0.0.238:8080/index/hook/on_record_mp4                  #褰曞埗瀹屾瘯涓�娈祄p4鏂囦欢閫氱煡
-				
-	            銆愭敞锛歨ttp url鐨� IP锛岀鍙� 鏄唬琛ㄦ秷鎭帴鏀舵湇鍔″櫒鐨処P锛岀鍙o紝涓�瀹氳濉啓姝g‘锛寀rl 鍦板潃瑕佸悎娉曪紝涓嶈鏈夌┖鏍� 銆�
-				1銆佸綋鏌愪竴璺爜娴佸埌杈炬椂浼氬彂閫侀�氱煡锛�
-					POST /index/hook/on_stream_arrive HTTP/1.1  # 鏍规嵁 /index/hook/on_stream_arrive 杩欎釜鍙互鍒ゆ柇鏄煇涓�璺爜娴佸埌杈�
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 105
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-5.2.9(2022-03-28)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-				  {
-				   "app":"Media",                            # app 
-				   "stream":"Camera_00001",                  # stream  
-				   "mediaServerId":"ABLMediaServer_00001",   # 娴佸獟浣撴湇鍔″櫒缂栧彿 锛屽湪閰嶇疆鏂囦欢鍙互閰嶇疆锛屽鏋滈泦缇ゆ祦濯掍綋鏈嶅姟鍣ㄦ椂锛屽彲浠ョ粰姣忓彴娴佸獟浣撴湇鍔″櫒璧蜂釜缂栧彿 
-				   "networkType":23,                         # 濯掍綋娴佹潵婧愮綉缁滅紪鍙凤紝鍙弬鑰冮檮琛�  
-				   "key":130,                                # 濯掍綋娴佹潵婧愮紪鍙凤紝鍙互鏍规嵁杩欎釜key杩涜鍏抽棴娴佸獟浣� 鍙互璋冪敤delMediaStream鎴朿lose_streams 鍑芥暟杩涜鍏抽棴
-				   "status":true,
-				   "enable_hls":false,
-				   "transcodingStatus":false,
-				   "sourceURL":"rtsp://admin:abldyjh2020@44.35.33.248:554",
-				   "readerCount":0,
-				   "noneReaderDuration":0,
-				   "videoCodec":"H265",
-				   "videoFrameSpeed":25,
-				   "width":1920,
-				   "height":1080,
-				   "videoBitrate":0,
-				   "audioCodec":"AAC",
-				   "audioChannels":1,
-				   "audioSampleRate":8000,
-				   "audioBitrate":0,
-				   "url":
-				      {
-				       "rtsp":"rtsp://44.35.33.249:554/Media/Camera_00001",
-					   "rtmp":"rtmp://44.35.33.249:1935/Media/Camera_00001",
-					   "http-flv":"http://44.35.33.249:8088/Media/Camera_00001.flv",
-					   "ws-flv":"ws://44.35.33.249:6088/Media/Camera_00001.flv",
-					   "http-mp4":"http://44.35.33.249:5088/Media/Camera_00001.mp4",
-					   "http-hls":"http://44.35.33.249:9088/Media/Camera_00001.m3u8"
-					  }
-				  }
-				
-				2銆佹棤浜鸿鐪嬫秷鎭�氱煡鏍蜂緥锛�
-					POST /index/hook/on_stream_none_reader HTTP/1.1  # 鏍规嵁 /index/hook/on_stream_none_reader 杩欎釜鍙互鍒ゆ柇鏄棤浜鸿鐪嬫秷鎭�氱煡
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 105
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-5.2.9(2022-03-28)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-				  {
-				   "app":"Media",                            # app 
-				   "stream":"Camera_00001",                  # stream  
-				   "mediaServerId":"ABLMediaServer_00001",   # 娴佸獟浣撴湇鍔″櫒缂栧彿 锛屽湪閰嶇疆鏂囦欢鍙互閰嶇疆锛屽鏋滈泦缇ゆ祦濯掍綋鏈嶅姟鍣ㄦ椂锛屽彲浠ョ粰姣忓彴娴佸獟浣撴湇鍔″櫒璧蜂釜缂栧彿 
-				   "networkType":23,                         # 濯掍綋娴佹潵婧愮綉缁滅紪鍙凤紝鍙弬鑰冮檮琛�  
-				   "key":130                                 # 濯掍綋娴佹潵婧愮紪鍙凤紝鍙互鏍规嵁杩欎釜key杩涜鍏抽棴娴佸獟浣� 鍙互璋冪敤delMediaStream鎴朿lose_streams 鍑芥暟杩涜鍏抽棴
-				  }
-				  
-				 3銆� fmp4褰曞儚鍒囩墖褰曞儚瀹屾垚涓�涓枃浠舵椂浼氬彂閫佷竴涓秷鎭�氱煡 
-					POST /index/hook/on_record_mp4 HTTP/1.1  # 鏍规嵁 /index/hook/on_record_mp4 杩欎釜鍙互鍒ゆ柇鏄痬p4褰曞儚鍒囩墖瀹屾瘯涓�涓�氱煡 
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 127
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-5.2.9(2022-03-28)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{
-					  "app":"Media",                          # app 
-					  "stream":"Camera_00001",                # stream  
-					  "mediaServerId":"ABLMediaServer_00001", # 娴佸獟浣撴湇鍔″櫒缂栧彿 锛屽湪閰嶇疆鏂囦欢鍙互閰嶇疆锛屽鏋滈泦缇ゆ祦濯掍綋鏈嶅姟鍣ㄦ椂锛屽彲浠ョ粰姣忓彴娴佸獟浣撴湇鍔″櫒璧蜂釜缂栧彿 
-					  "networkType":70,                       # 濯掍綋娴佹潵婧愮綉缁滅紪鍙凤紝鍙弬鑰冮檮琛�     
-					  "fileName":"20220312212546.mp4"         # 褰曞儚鍒囩墖瀹屾垚鐨勬枃浠跺悕瀛�    
-					} 
-
-				4銆佸綋鏌愪竴璺爜娴佹柇寮�鏃朵細鍙戦�侀�氱煡锛�
-					POST /index/hook/on_stream_disconnect HTTP/1.1  # 鏍规嵁 /index/hook/on_stream_disconnect 杩欎釜鍙互鍒ゆ柇鏄煇涓�璺爜娴佹柇寮�
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 105
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-5.2.9(2022-03-28)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-				  {
-				   "app":"Media",                            # app 
-				   "stream":"Camera_00001",                  # stream  
-				   "mediaServerId":"ABLMediaServer_00001",   # 娴佸獟浣撴湇鍔″櫒缂栧彿 锛屽湪閰嶇疆鏂囦欢鍙互閰嶇疆锛屽鏋滈泦缇ゆ祦濯掍綋鏈嶅姟鍣ㄦ椂锛屽彲浠ョ粰姣忓彴娴佸獟浣撴湇鍔″櫒璧蜂釜缂栧彿 
-				   "networkType":23,                         # 濯掍綋娴佹潵婧愮綉缁滅紪鍙凤紝鍙弬鑰冮檮琛�  
-				   "key":130                                 # 濯掍綋娴佹潵婧愮紪鍙凤紝鍙互鏍规嵁杩欎釜key杩涜鍏抽棴娴佸獟浣� 鍙互璋冪敤delMediaStream鎴朿lose_streams 鍑芥暟杩涜鍏抽棴
-				  }
-
-				 5銆� 褰撴挱鏀句竴涓猽rl锛屽鏋滀笉瀛樺湪鏃讹紝浼氬彂鍑轰竴涓秷鎭�氱煡 
-					POST /index/hook/on_stream_not_found HTTP/1.1  # 鏍规嵁 /index/hook/on_stream_not_found 锛孒ttp鎺ユ敹鏈嶅姟鍣ㄥ緱鐭ユ祦涓嶄笉瀛樺湪 
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 127
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-5.2.9(2022-03-28)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{
-					  "app":"Media",                          # app      涓嶅瓨鍦ㄧ殑app
-					  "stream":"Camera_00001",                # stream   涓嶅瓨鍦ㄧ殑stream 
-					  "mediaServerId":"ABLMediaServer_00001"  # 娴佸獟浣撴湇鍔″櫒缂栧彿 锛屽湪閰嶇疆鏂囦欢鍙互閰嶇疆锛屽鏋滈泦缇ゆ祦濯掍綋鏈嶅姟鍣ㄦ椂锛屽彲浠ョ粰姣忓彴娴佸獟浣撴湇鍔″櫒璧蜂釜缂栧彿 
-					} 
-				 6銆丄BLMediaServer鍚姩鏃朵細鍙戦�佷笂绾块�氱煡
-					POST /index/hook/on_server_started HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 105
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"localipAddress":"44.35.33.249","mediaServerId":"ABLMediaServer_00001","datetime":"2023-04-18 10:04:37"}				 
-					
-				  7銆佹煇涓�涓爜娴佹帴鍏ユ祦濯掍綋鏈嶅姟鍣ㄦ椂浼氫骇鐢� 鍙戝竷 浜嬩欢閫氱煡 	
-					POST /index/hook/on_publish HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 149
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"app":"Media","stream":"Camera_00001","mediaServerId":"ABLMediaServer_00001","networkType":50,"key":470,"ip":"44.35.33.248" ,"port":554,"params":""}
-				
-                  8銆佸綋鎾斁娴佸獟浣撴湇鍔″櫒閲岄潰鏌愪竴涓爜娴佹椂锛屼細瑙﹀彂 鎾斁浜嬩欢 锛屽彲浠ラ�氱煡 parmas 鍙傛暟鍊艰繘琛屾挱鏀鹃壌鏉� 				
-					POST /index/hook/on_play HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 135
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"app":"Media","stream":"Camera_00001","mediaServerId":"ABLMediaServer_00001","networkType":30,"key":472,"ip":"" ,"port":0,"params":"user=admin&password=safsa234234&token=@#$@#$@#ASDFasfdsa@#$23"}
-			
-			     9銆佸鏋滄煇涓�涓爜娴佽繘琛孧P4褰曞儚锛坋nable_mp4=1锛夛紝浼氳Е鍙戝綍鍍忚繘搴﹂�氱煡浜嬩欢 
-					POST /index/hook/on_record_progress HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 204
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"app":"Media","stream":"Camera_00001","mediaServerId":"ABLMediaServer_00001","networkType":472,"key":470,"fileName":"20230418100440.mp4","currentFileDuration":49,"TotalVideoDuration":49}
-						
-				 10銆佸鏋滄煇涓�涓爜娴佸紑鍚痟ls锛坋nable_hls=1锛夊苟涓旇缃负鍒囩墖鍒扮‖鐩橈紙hlsCutType=1 鍦ㄩ厤缃枃浠朵腑锛� 锛屾瘡褰撳垏鐗囧畬鎴愪竴涓猼s鏂囦欢浼氳Е鍙戣浜嬩欢 
-					POST /index/hook/on_record_ts HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 246
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"app":"Media","stream":"Camera_00001","mediaServerId":"ABLMediaServer_00001","networkType":30,"key":470,"createDateTime":"2023-04-18 10:05:47","currentFileDuration":3,"fileName":"D:\WorkDir\ABLMediaServer\x64\Debug\www\Media\Camera_00001\23.ts"}
-					
-				 11銆佹祦濯掍綋鏈嶅姟鍣ㄦ瘡闅�60绉掍細瑙﹀彂蹇冭烦浜嬩欢閫氱煡 	
-					POST /index/hook/on_server_keepalive HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 105
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"localipAddress":"44.35.33.249","mediaServerId":"ABLMediaServer_00001","datetime":"2023-04-18 10:25:40"}
-				
-                  12銆佸綋浠g悊鎷夋祦銆佸浗鏍囨帴鍏ョ瓑绛� 鐮佹祦涓嶅埌杈炬椂浼氬彂鍑� 鐮佹祦涓嶅埌杈剧殑浜嬩欢閫氱煡 				
-					POST /index/hook/on_stream_not_arrive HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 155
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"mediaServerId":"ABLMediaServer_00001","app":"gb28181","stream":"440300123432202342349","networkType":60,"key":470}	
-					
-				  13銆佸鏋滄煇涓�涓爜娴佽繘琛孧P4褰曞儚锛坋nable_mp4=1锛夛紝褰撴煇涓狹P4鏂囦欢琚垹闄や細瑙﹀彂璇ヤ簨浠堕�氱煡  
-					POST /index/hook/on_delete_record_mp4 HTTP/1.1
-					Accept: */*
-					Accept-Language: zh-CN,zh;q=0.8
-					Connection: keep-alive
-					Content-Length: 204
-					Content-Type: application/json
-					Host: 127.0.0.1
-					Tools: ABLMediaServer-6.3.5(2023-04-30)
-					User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
-
-					{"app":"Media","stream":"Camera_00001","mediaServerId":"ABLMediaServer_00001","fileName":"20230418100440.mp4"}
-				
-				
-				
-	  20) 鍥剧墖鎶撴媿 
-			 URL: /index/api/getSnap
-			 
-			 鍔熻兘锛�
-				 鏌ヨ鏌愪竴鎺ュ叆鐨勫獟浣撴簮杩涜鎶撴媿
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				vhost                         姣斿 _defaultVhost_                              銆愬彲閫夊弬鏁般�� 
-				app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬繀濉弬鏁般��
-				stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬繀濉弬鏁般��
- 				timeout_sec      瓒呮椂鏃堕暱     10  鍗虫湰娆℃姄鎷嶆渶澶ц秴鏃舵椂闀� 鍗曚綅 绉�               銆愬繀濉弬鏁般��
- 				  
-	         http  GET 鏂瑰紡 
-               http://127.0.0.1:7088/index/api/getSnap?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost=_defaultVhost_&app=Media&stream=Camera_00001&timeout_sec=10
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://190.15.240.11:7088/index/api/getSnap
-				 
- 			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","timeout_sec":10}
-	  
-            鎶撴媿鎴愬姛杩斿洖锛�
-			{
-				"code": 0,
-				"memo": "success , Catpuring takes time 219 millisecond .",
-				"url": "http://10.0.0.239:7088/Media/Camera_00001/2022031910034501.jpg"
-			}
-		
-		21锛夊浘鐗囧垪琛ㄦ煡璇�
-			 URL: /index/api/queryPictureList
-			 
-			 鍔熻兘锛�
-				 鏌ヨ鏌愪竴璺緭鍏ユ簮鐨勬姄鎷嶅浘鐗囧垪琛� 
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				vhost                         姣斿 _defaultVhost_                              銆愬彲閫夊弬鏁般�� 
-				app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬繀濉弬鏁般��
-				stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬繀濉弬鏁般��
-			    starttime        寮�濮嬫椂闂�     姣斿 20220317081201 骞存湀鏃ユ椂鍒嗙                 銆愬繀濉弬鏁般��
-			    endtime          缁撴潫鏃堕棿     姣斿 20220319231201 骞存湀鏃ユ椂鍒嗙                 銆愬繀濉弬鏁般��
-				
-			銆愭敞鎰忥細1銆佸紑濮嬫椂闂村繀椤诲皬浜� 褰撳墠鏃堕棿鍑忓幓鍒囩墖鏃堕暱鐨勬椂闂� 2銆佷粠 寮�濮嬫椂闂� 鑷� 缁撴潫鏃堕棿 涓嶈兘瓒呰繃7澶┿��
-		
-	         http  GET 鏂瑰紡 
-               http://10.0.0.239:7088/index/api/queryPictureList?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&app=Media&stream=Camera_00001&starttime=20220317081201&endtime=20220319231201
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://190.15.240.11:7088/index/api/queryPictureList
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","vhost":"_defaultVhost_","app":"Media","stream":"Camera_00001","starttime":"20220317081201","endtime":"20220319231201"}
-
-              鎴愬姛杩斿洖Body鍊� 
-				{
-				"code": 0,
-				"app": "Media",
-				"stream": "Camera_00001",
-				"starttime": "20220317081201",
-				"endtime": "20220319231201",
-				"PictureFileList": [
-					{
-						"file": "2022031816153857.jpg",
-						"url": "http://10.0.0.239:7088/Media/Camera_00001/2022031816153857.jpg"
-					},
-					{
-						"file": "2022031816153958.jpg",
-						"url": "http://10.0.0.239:7088/Media/Camera_00001/2022031816153958.jpg"
-					},
-					{
-						"file": "2022031816154059.jpg",
-						"url": "http://10.0.0.239:7088/Media/Camera_00001/2022031816154059.jpg"
-					},
-			 	]
-			  }	
-		
-	 22銆佷慨鏀规煇涓�璺殑姘村嵃鐩稿叧鍙傛暟
-	 
-			URL: index/api/setTransFilter
-		 
-		 鍔熻兘锛�
-			 淇敼鏌愪竴璺殑姘村嵃鐩稿叧鍙傛暟锛屾瘮姘村嵃鐨勫唴瀹广�侀鑹层�佸瓧浣撳ぇ灏忋�佸瓧浣撲綅缃�佸瓧浣撻�忔槑搴� 
-
-		 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-			secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-			vhost                         姣斿 _defaultVhost_                              銆愬彲閫夊弬鏁般�� 
-			app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬繀濉弬鏁般��
-			stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬繀濉弬鏁般��
-			text             姘村嵃鍐呭     姣斿 鏌愭煇甯傛煇鏌愬叕瀹夊眬                  銆愬繀濉弬鏁般��
-			size             瀛椾綋澶у皬     20銆�30 銆�40 銆�50                       銆愬繀濉弬鏁般��
-			color            瀛椾綋棰滆壊     red,green,blue,white,black,
-			alpha            閫忔槑搴�       0.1 ~  0.9 ,
-			left             姘村嵃x鍧愭爣    姣斿 5 銆� 10 銆�20 
-			top              姘村嵃y鍧愭爣    姣斿 5 銆� 10 銆� 20 
-			trans            鏄惁杞崲     鍥哄畾涓� 1
-		
-		 http  POST 鏂瑰紡 
-			 http://127.0.0.1:7088/index/api/setTransFilter
-			 
-		 Body 鍙傛暟鍐呭涓� 
-				{
-				"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc",
-				"app" : "live",
-				"stream" : "test",
-				"text" : "ABL",
-				"size" : 60,
-				"color" : "red",
-				"alpha" : 0.8,
-				"left" : 40,
-				"top" : 40,
-				"trans" : 1
-				}
-				
-		23銆佷负浜嗗姛鑳芥洿鏂扮殑闇�瑕侊紝澧炲姞璁剧疆鍙傛暟鍊肩殑鎺ュ彛锛屽彲浠ュ崟鐙缃� ABLMediaServer.ini 鐨勬煇涓�涓�硷紝骞朵笖鏈嶅姟鍣ㄤ笉鐢ㄩ噸鍚紝绔嬪嵆璧锋晥 
-		
-			URL: index/api/setConfigParamValue
-		 
-			 鍔熻兘锛�
-				涓轰簡鍔熻兘鏇存柊鐨勯渶瑕侊紝澧炲姞璁剧疆鍙傛暟鍊肩殑鎺ュ彛锛屽彲浠ュ崟鐙缃� ABLMediaServer.ini 鐨勬煇涓�涓�硷紝骞朵笖鏈嶅姟鍣ㄤ笉鐢ㄩ噸鍚紝绔嬪嵆璧锋晥 
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				vhost                         姣斿 _defaultVhost_                              銆愬彲閫夊弬鏁般�� 
-				key              鍙傛暟鍚�       姣斿 saveGB28181Rtp 锛堜繚瀛樻帴鍏ョ殑鍥芥爣PS娴侊級銆� saveProxyRtspRtp 锛堜繚瀛榬tsp浠g悊鎷夋祦鐨剅tp娴侊級
-				                              杩樻湁 ABLMediaServer.ini 閲岄潰鐨勯厤缃弬鏁帮紝濡傛灉鍙傛暟鍊间笉濉氨璁剧疆绌猴紝涓嶆槸绌烘牸 
-												mediaServerID = ABLMediaServer_00001
-												secret = 035c73f7-bb6b-4889-a715-d9eb2d1925cc
-												localipAddress = 
-												maxTimeNoOneWatch = 9999999
-												recordPath =  
-												picturePath =  
-												maxSameTimeSnap = 16
-												snapOutPictureWidth = 0
-												snapOutPictureHeight = 0
-												snapObjectDestroy = 1
-												snapObjectDuration = 120
-												captureReplayType = 1
-												pictureMaxCount = 30
-												pushEnable_mp4 = 0
-												fileSecond = 300
-												videoFileFormat = 1
-												fileKeepMaxTime = 3
-												httpDownloadSpeed = 6
-												fileRepeat = 0
-												H265ConvertH264_enable = 0
-												H265DecodeCpuGpuType = 0
-												H264DecodeEncode_enable = 0
-												filterVideo_enable = 0
-												filterVideo_text = ABL姘村嵃娴嬭瘯123
-												FilterFontSize = 30
-												FilterFontColor = red
-												FilterFontLeft = 5
-												FilterFontTop = 5
-												FilterFontAlpha = 0.6
-												convertOutWidth = 720
-												convertOutHeight = 480
-												convertMaxObject = 26
-												convertOutBitrate = 1024
-												hook_enable = 0
-												noneReaderDuration = 15
-												on_server_started = http://10.0.0.238:4088/index/hook/on_server_started
-												on_server_keepalive = http://10.0.0.238:4088/index/hook/on_server_keepalive
-												on_stream_arrive = http://10.0.0.238:4088/index/hook/on_stream_arrive
-												on_stream_not_arrive = http://10.0.0.238:4088/index/hook/on_stream_not_arrive
-												on_stream_none_reader = http://10.0.0.238:4088/index/hook/on_stream_none_reader
-												on_stream_disconnect = http://10.0.0.238:4088/index/hook/on_stream_disconnect
-												on_stream_not_found = 
-												on_record_mp4 = http://10.0.0.238:4088/index/hook/on_record_mp4
-												on_delete_record_mp4 = http://10.0.0.238:4088/index/hook/on_delete_record_mp4
-												on_record_progress = http://10.0.0.238:4088/index/hook/on_record_progress
-												on_record_ts = http://10.0.0.238:4088/index/hook/on_record_ts
-												httpServerPort = 7088
-												rtspPort = 554
-												rtmpPort = 1935
-												httpMp4Port = 5088
-												wsFlvPort = 6088
-												httpFlvPort = 8088
-												ps_tsRecvPort = 10000
-												hls_enable = 0
-												hlsPort = 9088
-												hlsCutTime = 3
-												hlsCutType = 2
-												h265CutType = 1
-												enable_audio = 1
-												G711ConvertAAC = 0
-												IOContentNumber = 16
-												ThreadCountOfIOContent = 8
-												RecvThreadCount = 128
-												SendThreadCount = 128
-												RecordReplayThread = 32
-												GB28181RtpTCPHeadType = 2
-												ReConnectingCount = 40320
-												MaxDiconnectTimeoutSecond = 36
-												ForceSendingIFrame = 1				                               
-				value            鍙傛暟鍊�         璇﹁ ABLMediaServer.ini 鐨勫弬鏁板�煎強鍙傛暟鍊艰鏄�
-				
-			 http  GET 鏂瑰紡 
-			銆� 姣斿锛�
-				 鎵撳紑淇濆瓨鍥芥爣PS鏍囧織
-				銆�銆� http://44.35.33.239:7088/index/api/setConfigParamValue?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=saveGB28181Rtp&value=1
-				 鍏抽棴瀛樺浗鏍嘝S鏍囧織
-				銆�銆� http://44.35.33.239:7088/index/api/setConfigParamValue?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=saveGB28181Rtp&value=0
-		
-				 鎵撳紑淇濆瓨浠g悊鎷夛綊锝旓綋锝愭祦鏍囧織
-				銆�銆� http://44.35.33.239:7088/index/api/setConfigParamValue?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=saveProxyRtspRtp&value=1
-				 鍏抽棴淇濆瓨浠g悊鎷夛綊锝旓綋锝愭祦鏍囧織
-				銆�銆� http://44.35.33.239:7088/index/api/setConfigParamValue?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&key=saveProxyRtspRtp&value=0
-	
-	    24锛夊畨鍏ㄥ仠姝㈡湇鍔″櫒 
-			 URL: /index/api/shutdownServer
-			 
-			 鍔熻兘锛�
-				 瀹夊叏鍋滄鏈嶅姟鍣紝濡傛灉鏈嶅姟鍣ㄦ鍦ㄥ綍鍍忋�佹姄鎷嶇瓑绛夋搷浣滐紝闇�瑕佽皟鐢ㄨ鍑芥暟瀹夊叏鍋滄鏈嶅姟鍣紝杩欐牱褰曞埗鐨刴p4鎵嶈兘姝e父鎾斁
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
- 				  
-	         http  GET 鏂瑰紡 
-               http://127.0.0.1:7088/index/api/shutdownServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://127.0.0.1:7088/index/api/shutdownServer
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-				{
-					"code": 0,
-					"memo": "ABLMediaServer shutdown Successed !"
-				}	
-				
-	    25锛夐噸鏂板惎鍔ㄦ湇鍔″櫒
-			 URL: /index/api/restartServer
-			 
-			 鍔熻兘锛�
-				 瀹夊叏閲嶅惎鏈嶅姟鍣紝濡傛灉鏈嶅姟鍣ㄦ鍦ㄥ綍鍍忋�佹姄鎷嶇瓑绛夋搷浣滐紝闇�瑕佽皟鐢ㄨ鍑芥暟瀹夊叏閲嶅惎鏈嶅姟鍣紝杩欐牱褰曞埗鐨刴p4鎵嶈兘姝e父鎾斁
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
- 				  
-	         http  GET 鏂瑰紡 
-               http://127.0.0.1:7088/index/api/restartServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://127.0.0.1:7088/index/api/restartServer
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-				{
-					"code": 0,
-					"memo": "ABLMediaServer restartServer Successed ! "
-				}	
-				
-	      26锛夎幏鍙栧綋鍓嶈浆鐮佺殑鏁伴噺
-			 URL: /index/api/getTranscodingCount
-			 
-			 鍔熻兘锛�
-				  鑾峰彇褰撳墠姝e湪杞爜鐨勬暟閲�
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
- 				  
-	         http  GET 鏂瑰紡 
-               http://127.0.0.1:7088/index/api/getTranscodingCount?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://127.0.0.1:7088/index/api/getTranscodingCount
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-				{
-					"code": 0,
-					"currentTranscodingCount": 2
-				}	
-
-	  27锛夈�佸垪涓炬祦濯掍綋鏈嶅姟鍣ㄦ墍鏈夊崰鐢ㄧ鍙� 
-			 URL: /index/api/listServerPort
-			 
-			 鍔熻兘锛�
-				 鍒椾妇娴佸獟浣撴湇鍔″櫒鎵�鏈夊崰鐢ㄧ鍙�
-
-			 鍙傛暟锛�              鍙傛暟璇存槑     鍙傛暟鍙傝�冨��
-				secret           鏈嶅姟鍣ㄥ瘑鐮�   姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc        銆愬繀濉弬鏁般��
-				app              搴旂敤鍚�       姣斿 rtp銆乬b28181銆丮edia 绛夌瓑 锛岃嚜宸辫捣鐨勫悕瀛�     銆愬彲閫夊弬鏁般��
-				stream           濯掍綋娴佸悕     姣斿 Camera_00001銆�44303403343034243200234 绛夌瓑  銆愬彲閫夊弬鏁般��
-				
-				鍙傛暟濉啓鏍蜂緥璇存槑锛�
-			  鏍蜂緥1锛坅pp銆乻tream 閮戒笉濉啓锛� 
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				    
-				  杩斿洖鎵�鏈夊湪绾跨殑濯掍綋婧�
-				 
-			  鏍蜂緥2 锛堝彧濉啓 app 锛�
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				   app     rtp 
-				   杩斿洖 app 绛変簬 rtp 鐨勬墍鏈夊獟浣撴簮
-				   
-			  鏍蜂緥3 锛堝~鍐� app = rtp , stream = 44303403343034243200234锛�
-				   secret  035c73f7-bb6b-4889-a715-d9eb2d1925cc
-				   app     rtp 
-				   stream  44303403343034243200234 
-				  杩斿洖 app 绛変簬 rtp銆佸苟涓� stream 绛変簬 44303403343034243200234 鐨勬墍鏈夊獟浣撴簮
-				  
-			  鏍蜂緥4 锛堝~鍐� stream = 44303403343034243200234锛�
-				   secret           035c73f7-bb6b-4889-a715-d9eb2d1925cc
- 				   stream           44303403343034243200234 
-				   杩斿洖 stream 绛変簬 44303403343034243200234 鐨勬墍鏈夊獟浣撴簮
- 				  
-	         http  GET 鏂瑰紡 
-                http://127.0.0.1:7088/index/api/listServerPort?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
-			   
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://127.0.0.1:7088/index/api/listServerPort
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc"}
-				 
-			 杩斿洖Body锛�
-					{
-						"code": 0,
-						"memo": "success",
-						"data": [
-							{
-								"key": 478,
-								"app": "Media",
-								"stream": "Camera_00003",
-								"networkType": 23,
-								"port": 34988
-							},
-							{
-								"key": 477,
-								"app": "Media",
-								"stream": "Camera_00002",
-								"networkType": 23,
-								"port": 34986
-							},
-							{
-								"key": 476,
-								"app": "Media",
-								"stream": "Camera_00001",
-								"networkType": 23,
-								"port": 34984
-							},
-							{
-								"key": 456,
-								"app": "",
-								"stream": "",
-								"networkType": 68,
-								"port": 10000
-							}
-						]
-					}
-				
-                   銆愭敞閲婏細鍙互鏍规嵁 "networkType": 23, 杩欎釜瀛楁鏍囪瘑瀵硅薄鐨勭綉缁滅被鍨� 锛屽叿浣撹瑙佺綉缁滅被鍨嬬殑瀵圭収琛� 銆�	
-			  
-		28锛夈�佹壒閲忚缃湇鍔″櫒鐨勯厤缃弬鏁� 
-  		       URL: /index/api/setServerConfig
-			
-			 鍔熻兘锛�
-				 鎵归噺璁剧疆鏈嶅姟鍣ㄧ殑閰嶇疆鍙傛暟
-
-			 鍙傛暟锛�                     鍙傛暟璇存槑                  鍙傛暟鍙傝�冨��
-				secret                  鏈嶅姟鍣ㄥ瘑鐮�                姣斿 035c73f7-bb6b-4889-a715-d9eb2d1925cc              銆愬繀濉弬鏁般��
- 			    noneReaderDuration      澶氬皯绉掓棤浜鸿鐪嬮�氱煡涓�娆�    20                                                     銆愬彲閫夊弬鏁般��
-			    on_server_started       鏈嶅姟鍣ㄥ惎鍔ㄩ�氱煡            http://10.0.0.238:4088/index/hook/on_server_started    銆愬彲閫夊弬鏁般��
-				iframeArriveNoticCount  i甯ц揪鍒伴�氱煡鎬绘暟           30                                                     銆愬彲閫夊弬鏁般��
-				
-			http  GET 鏂瑰紡 	
-		       http://127.0.0.1:7088/index/api/setServerConfig?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&noneReaderDuration=20&on_server_started=http://10.0.0.238:4088/index/hook/on_server_started&iframeArriveNoticCount=30
-			
-			http  POST 鏂瑰紡 
-			   http URL 
-				 http://127.0.0.1:7088/index/api/setServerConfig
-				 
-			   http Body 鍙傛暟 json 鏍煎紡
-				 {"secret":"035c73f7-bb6b-4889-a715-d9eb2d1925cc","noneReaderDuration":20,"iframeArriveNoticCount":30,"on_server_started":"http://10.0.0.238:4088/index/hook/on_server_started"}
-			  
-		29锛� 涓轰簡鏂逛究鏌愪簺鐗规畩鍦哄悎锛屾湇鍔″櫒鏀寔udp鐨�10000 绔彛鎺ュ叆鍥芥爣PS鐮佹祦锛屽氨鏄汉浠父璇寸殑鍗曠鍙fā寮忥紝url鐨勫懡鍚嶈鍒欎负 /rtp/ssrc ,鍏朵腑ssrc涓轰笅绾tp鎵撳寘
-		     鐨�16杩涘埗鐨勫�艰浆鎹负澶у皬鐨勫瓧绗︿覆锛屽嵆鍙痵printf(url,"rtp/%X",ssrc) ,鍏蜂綋鎺ュ叆鐨剈rl鍚嶅瓧鍙互璋冪敤 getMediaList 鏌ヨ鍑烘帴鍏ョ殑鍥芥爣娴� 銆傞渶瑕佹敞鎰忕殑鏄� 
-			 涓嬬骇 rtp 鎵撳寘鏃舵瘡璺棰戠殑rtp涓殑ssrc涓嶈兘鐩稿悓銆�
-			 
-			  
-	    30锛� 缃戠粶绫诲瀷鐨勫鐓ц〃
-	      1 濯掍綋杈撳叆缃戠粶绫诲瀷瀵圭収琛� 
-		  
-		      鏁村舰鍊�     浠h〃鎰忎箟
-	          21         浠tmp鏂瑰紡鎺ㄩ�佹帴鍏ユ祦濯掍綋鏈嶅姟鍣�
-			  23         浠tsp鏂瑰紡鎺ㄩ�佹帴鍏ユ祦濯掍綋鏈嶅姟鍣�
-			  30         鏈嶅姟鍣ㄤ互rtsp鏂瑰紡涓诲姩鎷夋祦鎺ュ叆
-			  31         鏈嶅姟鍣ㄤ互rtmp鏂瑰紡涓诲姩鎷夋祦鎺ュ叆  
-			  32         鏈嶅姟鍣ㄤ互flv鏂瑰紡涓诲姩鎷夋祦鎺ュ叆
-			  33         鏈嶅姟鍣ㄤ互hls鏂瑰紡涓诲姩鎷夋祦鎺ュ叆
-			  50         浠g悊鎷夋祦鎺ュ叆鏈嶅姟鍣�  
-			  60         鏈嶅姟鍣ㄤ互鍥芥爣28181鐨刄DP鏂瑰紡鎺ュ叆
-			  61         鏈嶅姟鍣ㄤ互鍥芥爣28181鐨凾CP鏂瑰紡鎺ュ叆
- 			  
- 	          80         鏈嶅姟鍣ㄥ綍鍍忔枃浠剁偣鎾互璇诲彇fmp4鏂囦欢杈撳叆
-			  81         鏈嶅姟鍣ㄥ綍鍍忔枃浠剁偣鎾互璇诲彇TS鏂囦欢杈撳叆
-			  82         鏈嶅姟鍣ㄥ綍鍍忔枃浠剁偣鎾互璇诲彇PS鏂囦欢杈撳叆
-			  83         鏈嶅姟鍣ㄥ綍鍍忔枃浠剁偣鎾互璇诲彇FLV鏂囦欢杈撳叆
- 
-		  2 濯掍綋杈撳嚭缃戠粶绫诲瀷瀵圭収琛� 	  
-		     鏁村舰鍊�     浠h〃鎰忎箟
-		      22         鏈嶅姟鍣ㄤ互rtsp琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剉lc鐐规挱 
-			  24         鏈嶅姟鍣ㄤ互rtmp琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剉lc鐐规挱 
-			  25         鏈嶅姟鍣ㄤ互flv琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剉lc鐐规挱 銆佹祻瑙堝櫒鎾斁 
-			  26         鏈嶅姟鍣ㄤ互hls琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剉lc鐐规挱 銆佹祻瑙堝櫒鎾斁 
-	          27         鏈嶅姟鍣ㄤ互ws-flv琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� ,EasyPlayer.js鎻掍欢鎾斁銆佹祻瑙堝櫒鎾斁 
-			  28         鏈嶅姟鍣ㄤ互http-mp4琚姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剉lc鐐规挱 銆佹祻瑙堝櫒鎾斁 
-			  
-			  40         鏈嶅姟鍣ㄤ互rtsp涓诲姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剅tsp鎺ㄦ祦
-			  41         鏈嶅姟鍣ㄤ互rtmp涓诲姩鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨剅tmp鎺ㄦ祦
-			  65         鏈嶅姟鍣ㄤ互鍥芥爣GB28181涓诲姩UDP鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨勫浗鏍囦互UDP鏂瑰紡寰�涓婄骇鎺ㄦ祦
-			  66         鏈嶅姟鍣ㄤ互鍥芥爣GB28181涓诲姩TCP鏂瑰紡寰�澶栧彂閫佺爜娴� 锛屽嵆甯歌鐨勫浗鏍囦互TCP鏂瑰紡寰�涓婄骇鎺ㄦ祦
-			  			
\ No newline at end of file
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/abl/ABLRESTfulUtils.java
deleted file mode 100755
index 5eca3bf..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/ABLRESTfulUtils.java
+++ /dev/null
@@ -1,317 +0,0 @@
-package com.genersoft.iot.vmp.media.abl;
-
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import okhttp3.*;
-import okhttp3.logging.HttpLoggingInterceptor;
-import org.jetbrains.annotations.NotNull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.SocketTimeoutException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-@Component
-public class ABLRESTfulUtils {
-
-    private final static Logger logger = LoggerFactory.getLogger(ABLRESTfulUtils.class);
-
-    private OkHttpClient client;
-
-    public interface RequestCallback{
-        void run(JSONObject response);
-    }
-
-    private OkHttpClient getClient(){
-        return getClient(null);
-    }
-
-    private OkHttpClient getClient(Integer readTimeOut){
-        if (client == null) {
-            if (readTimeOut == null) {
-                readTimeOut = 10;
-            }
-            OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
-            //todo 鏆傛椂鍐欐瓒呮椂鏃堕棿 鍧囦负5s
-            // 璁剧疆杩炴帴瓒呮椂鏃堕棿
-            httpClientBuilder.connectTimeout(8,TimeUnit.SECONDS);
-            // 璁剧疆璇诲彇瓒呮椂鏃堕棿
-            httpClientBuilder.readTimeout(readTimeOut,TimeUnit.SECONDS);
-            // 璁剧疆杩炴帴姹�
-            httpClientBuilder.connectionPool(new ConnectionPool(16, 5, TimeUnit.MINUTES));
-            if (logger.isDebugEnabled()) {
-                HttpLoggingInterceptor logging = new HttpLoggingInterceptor(message -> {
-                    logger.debug("http璇锋眰鍙傛暟锛�" + message);
-                });
-                logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
-                // OkHttp閫茶娣诲姞鏀旀埅鍣╨oggingInterceptor
-                httpClientBuilder.addInterceptor(logging);
-            }
-            client = httpClientBuilder.build();
-        }
-        return client;
-
-    }
-
-    public JSONObject sendPost(MediaServer mediaServerItem, String api, Map<String, Object> param, RequestCallback callback) {
-        return sendPost(mediaServerItem, api, param, callback, null);
-    }
-
-
-    public JSONObject sendPost(MediaServer mediaServerItem, String api, Map<String, Object> param, RequestCallback callback, Integer readTimeOut) {
-        OkHttpClient client = getClient(readTimeOut);
-
-        if (mediaServerItem == null) {
-            return null;
-        }
-        String url = String.format("http://%s:%s/index/api/%s",  mediaServerItem.getIp(), mediaServerItem.getHttpPort(), api);
-        JSONObject responseJSON = new JSONObject();
-        //-2鑷畾涔夋祦濯掍綋 璋冪敤閿欒鐮�
-        responseJSON.put("code",-2);
-        responseJSON.put("msg","娴佸獟浣撹皟鐢ㄥけ璐�");
-
-        FormBody.Builder builder = new FormBody.Builder();
-        builder.add("secret",mediaServerItem.getSecret());
-        if (param != null && param.keySet().size() > 0) {
-            for (String key : param.keySet()){
-                if (param.get(key) != null) {
-                    builder.add(key, param.get(key).toString());
-                }
-            }
-        }
-
-        FormBody body = builder.build();
-
-        Request request = new Request.Builder()
-                .post(body)
-                .url(url)
-                .build();
-            if (callback == null) {
-                try {
-                    Response response = client.newCall(request).execute();
-
-                    if (response.isSuccessful()) {
-                        ResponseBody responseBody = response.body();
-                        if (responseBody != null) {
-                            String responseStr = responseBody.string();
-                            responseJSON = JSON.parseObject(responseStr);
-                        }
-                    }else {
-                        System.out.println( 2222);
-                        System.out.println( response.code());
-                        response.close();
-                        Objects.requireNonNull(response.body()).close();
-                    }
-                }catch (IOException e) {
-                    logger.error(String.format("[ %s ]璇锋眰澶辫触: %s", url, e.getMessage()));
-
-                    if(e instanceof SocketTimeoutException){
-                        //璇诲彇瓒呮椂瓒呮椂寮傚父
-                        logger.error(String.format("璇诲彇ABL鏁版嵁瓒呮椂澶辫触: %s, %s", url, e.getMessage()));
-                    }
-                    if(e instanceof ConnectException){
-                        //鍒ゆ柇杩炴帴寮傚父锛屾垜杩欓噷鏄姤Failed to connect to 10.7.5.144
-                        logger.error(String.format("杩炴帴ABL杩炴帴澶辫触: %s, %s", url, e.getMessage()));
-                    }
-
-                }catch (Exception e){
-                    logger.error(String.format("璁块棶ABL澶辫触: %s, %s", url, e.getMessage()));
-                }
-            }else {
-                client.newCall(request).enqueue(new Callback(){
-
-                    @Override
-                    public void onResponse(@NotNull Call call, @NotNull Response response){
-                        if (response.isSuccessful()) {
-                            try {
-                                String responseStr = Objects.requireNonNull(response.body()).string();
-                                callback.run(JSON.parseObject(responseStr));
-                            } catch (IOException e) {
-                                logger.error(String.format("[ %s ]璇锋眰澶辫触: %s", url, e.getMessage()));
-                            }
-
-                        }else {
-                            response.close();
-                            Objects.requireNonNull(response.body()).close();
-                        }
-                    }
-
-                    @Override
-                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
-                        logger.error(String.format("杩炴帴ABL澶辫触: %s, %s", call.request().toString(), e.getMessage()));
-
-                        if(e instanceof SocketTimeoutException){
-                            //璇诲彇瓒呮椂瓒呮椂寮傚父
-                            logger.error(String.format("璇诲彇ABL鏁版嵁澶辫触: %s, %s", call.request().toString(), e.getMessage()));
-                        }
-                        if(e instanceof ConnectException){
-                            //鍒ゆ柇杩炴帴寮傚父锛屾垜杩欓噷鏄姤Failed to connect to 10.7.5.144
-                            logger.error(String.format("杩炴帴ABL澶辫触: %s, %s", call.request().toString(), e.getMessage()));
-                        }
-                    }
-                });
-            }
-
-
-
-        return responseJSON;
-    }
-
-    public JSONObject sendGet(MediaServer mediaServerItem, String api, Map<String, Object> param) {
-        OkHttpClient client = getClient();
-
-        if (mediaServerItem == null) {
-            return null;
-        }
-        JSONObject responseJSON = null;
-        StringBuilder stringBuffer = new StringBuilder();
-        stringBuffer.append(String.format("http://%s:%s/index/api/%s",  mediaServerItem.getIp(), mediaServerItem.getHttpPort(), api));
-        if (param != null && !param.keySet().isEmpty()) {
-            stringBuffer.append("?secret=").append(mediaServerItem.getSecret()).append("&");
-            int index = 1;
-            for (String key : param.keySet()){
-                if (param.get(key) != null) {
-                    stringBuffer.append(key + "=" + param.get(key));
-                    if (index < param.size()) {
-                        stringBuffer.append("&");
-                    }
-                }
-                index++;
-            }
-        }
-        String url = stringBuffer.toString();
-        logger.info("[璁块棶ABL]锛� {}", url);
-        Request request = new Request.Builder()
-                .get()
-                .url(url)
-                .build();
-        try {
-            Response response = client.newCall(request).execute();
-            if (response.isSuccessful()) {
-                ResponseBody responseBody = response.body();
-                if (responseBody != null) {
-                    String responseStr = responseBody.string();
-                    responseJSON = JSON.parseObject(responseStr);
-                }
-            }else {
-                response.close();
-                Objects.requireNonNull(response.body()).close();
-            }
-        } catch (ConnectException e) {
-            logger.error(String.format("杩炴帴ABL澶辫触: %s, %s", e.getCause().getMessage(), e.getMessage()));
-            logger.info("璇锋鏌edia閰嶇疆骞剁‘璁BL宸插惎鍔�...");
-        }catch (IOException e) {
-            logger.error(String.format("[ %s ]璇锋眰澶辫触: %s", url, e.getMessage()));
-        }
-
-
-
-        return responseJSON;
-    }
-
-    public void sendGetForImg(MediaServer mediaServerItem, String api, Map<String, Object> params, String targetPath, String fileName) {
-        String url = String.format("http://%s:%s/index/api/%s", mediaServerItem.getIp(), mediaServerItem.getHttpPort(), api);
-        HttpUrl parseUrl = HttpUrl.parse(url);
-        if (parseUrl == null) {
-            return;
-        }
-        HttpUrl.Builder httpBuilder = parseUrl.newBuilder();
-
-        httpBuilder.addQueryParameter("secret", mediaServerItem.getSecret());
-        if (params != null) {
-            for (Map.Entry<String, Object> param : params.entrySet()) {
-                httpBuilder.addQueryParameter(param.getKey(), param.getValue().toString());
-            }
-        }
-
-        Request request = new Request.Builder()
-                .url(httpBuilder.build())
-                .build();
-        logger.info(request.toString());
-        try {
-            OkHttpClient client = getClient();
-            Response response = client.newCall(request).execute();
-            if (response.isSuccessful()) {
-                if (targetPath != null) {
-                    File snapFolder = new File(targetPath);
-                    if (!snapFolder.exists()) {
-                        if (!snapFolder.mkdirs()) {
-                            logger.warn("{}璺緞鍒涘缓澶辫触", snapFolder.getAbsolutePath());
-                        }
-
-                    }
-                    File snapFile = new File(targetPath + File.separator + fileName);
-                    FileOutputStream outStream = new FileOutputStream(snapFile);
-
-                    outStream.write(Objects.requireNonNull(response.body()).bytes());
-                    outStream.flush();
-                    outStream.close();
-                } else {
-                    logger.error(String.format("[ %s ]璇锋眰澶辫触: %s %s", url, response.code(), response.message()));
-                }
-            } else {
-                logger.error(String.format("[ %s ]璇锋眰澶辫触: %s %s", url, response.code(), response.message()));
-            }
-            Objects.requireNonNull(response.body()).close();
-        } catch (ConnectException e) {
-            logger.error(String.format("杩炴帴ABL澶辫触: %s, %s", e.getCause().getMessage(), e.getMessage()));
-            logger.info("璇锋鏌edia閰嶇疆骞剁‘璁BL宸插惎鍔�...");
-        } catch (IOException e) {
-            logger.error(String.format("[ %s ]璇锋眰澶辫触: %s", url, e.getMessage()));
-        }
-    }
-
-
-    public Integer openRtpServer(MediaServer mediaServer, String app, String stream, int payload, Integer port, Integer tcpMode, Integer disableAudio) {
-        Map<String, Object> param = new HashMap<>();
-        param.put("vhost", "_defaultVhost_");
-        param.put("app", app);
-        param.put("stream_id", stream);
-        param.put("payload", payload);
-        if (port != null) {
-            param.put("port", port);
-        }
-        if (tcpMode != null) {
-            param.put("enable_tcp", tcpMode);
-        }
-        if (disableAudio != null) {
-            param.put("disableAudio", disableAudio);
-        }
-
-        JSONObject jsonObject = sendPost(mediaServer, "openRtpServer", param, null);
-        if (jsonObject.getInteger("code") == 0) {
-            return jsonObject.getInteger("port");
-        }else {
-            return 0;
-        }
-    }
-
-    public JSONObject closeStreams(MediaServer mediaServerItem, String app, String stream) {
-        Map<String, Object> param = new HashMap<>();
-        param.put("vhost", "__defaultVhost__");
-        param.put("app", app);
-        param.put("stream", stream);
-        param.put("force", 1);
-        return sendPost(mediaServerItem, "close_streams",param, null);
-    }
-
-    public JSONObject getServerConfig(MediaServer mediaServerItem){
-        return sendPost(mediaServerItem, "getServerConfig",null, null);
-    }
-
-    public JSONObject setConfigParamValue(MediaServer mediaServerItem, String key, Object value){
-        Map<String, Object> param =  new HashMap<>();
-        param.put("key", key);
-        param.put("value", value);
-        return sendGet(mediaServerItem,"setConfigParamValue", param);
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblServerConfig.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblServerConfig.java
deleted file mode 100644
index dc0edec..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblServerConfig.java
+++ /dev/null
@@ -1,812 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean;
-
-import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
-
-import java.lang.reflect.Field;
-import java.util.HashMap;
-import java.util.Map;
-
-public class AblServerConfig {
-
-    @ConfigKeyId("secret")
-    private String secret;
-
-    @ConfigKeyId("ServerIP")
-    private String serverIp;
-
-    @ConfigKeyId("mediaServerID")
-    private String mediaServerId;
-
-    @ConfigKeyId("hook_enable")
-    private Integer hookEnable;
-
-    @ConfigKeyId("enable_audio")
-    private Integer enableAudio;
-
-    @ConfigKeyId("httpServerPort")
-    private Integer httpServerPort;
-
-    @ConfigKeyId("rtspPort")
-    private Integer rtspPort;
-
-    @ConfigKeyId("rtmpPort")
-    private Integer rtmpPort;
-
-    @ConfigKeyId("httpFlvPort")
-    private Integer httpFlvPort;
-
-    @ConfigKeyId("hls_enable")
-    private Integer hlsEnable;
-
-    @ConfigKeyId("hlsPort")
-    private Integer hlsPort;
-
-    @ConfigKeyId("wsPort")
-    private Integer wsPort;
-
-    @ConfigKeyId("mp4Port")
-    private Integer mp4Port;
-
-    @ConfigKeyId("ps_tsRecvPort")
-    private Integer psTsRecvPort;
-
-    @ConfigKeyId("hlsCutType")
-    private Integer hlsCutType;
-
-    @ConfigKeyId("h265CutType")
-    private Integer h265CutType;
-
-    @ConfigKeyId("RecvThreadCount")
-    private Integer RecvThreadCount;
-
-    @ConfigKeyId("SendThreadCount")
-    private Integer SendThreadCount;
-
-    @ConfigKeyId("GB28181RtpTCPHeadType")
-    private Integer GB28181RtpTCPHeadType;
-
-    @ConfigKeyId("ReConnectingCount")
-    private Integer ReConnectingCount;
-
-    @ConfigKeyId("maxTimeNoOneWatch")
-    private Integer maxTimeNoOneWatch;
-
-    @ConfigKeyId("pushEnable_mp4")
-    private Integer pushEnableMp4;
-
-    @ConfigKeyId("fileSecond")
-    private Integer fileSecond;
-
-    @ConfigKeyId("fileKeepMaxTime")
-    private Integer fileKeepMaxTime;
-
-    @ConfigKeyId("httpDownloadSpeed")
-    private Integer httpDownloadSpeed;
-
-    @ConfigKeyId("RecordReplayThread")
-    private Integer RecordReplayThread;
-
-    @ConfigKeyId("convertMaxObject")
-    private Integer convertMaxObject;
-
-    @ConfigKeyId("version")
-    private String version;
-
-    @ConfigKeyId("recordPath")
-    private String recordPath;
-
-    @ConfigKeyId("picturePath")
-    private String picturePath;
-
-    @ConfigKeyId("noneReaderDuration")
-    private Integer noneReaderDuration;
-
-    @ConfigKeyId("on_server_started")
-    private String onServerStarted;
-
-    @ConfigKeyId("on_server_keepalive")
-    private String onServerKeepalive;
-
-    @ConfigKeyId("on_play")
-    private String onPlay;
-
-    @ConfigKeyId("on_publish")
-    private String onPublish;
-
-    @ConfigKeyId("on_stream_arrive")
-    private String onStreamArrive;
-
-    @ConfigKeyId("on_stream_not_arrive")
-    private String onStreamNotArrive;
-
-    @ConfigKeyId("on_stream_none_reader")
-    private String onStreamNoneReader;
-
-    @ConfigKeyId("on_stream_disconnect")
-    private String onStreamDisconnect;
-
-    @ConfigKeyId("on_stream_not_found")
-    private String onStreamNotFound;
-
-    @ConfigKeyId("on_record_mp4")
-    private String onRecordMp4;
-
-    @ConfigKeyId("on_delete_record_mp4")
-    private String onDeleteRecordMp4;
-
-    @ConfigKeyId("on_record_progress")
-    private String onRecordProgress;
-
-    @ConfigKeyId("on_record_ts")
-    private String onRecordTs;
-
-    @ConfigKeyId("enable_GetFileDuration")
-    private Integer enableGetFileDuration;
-
-    @ConfigKeyId("keepaliveDuration")
-    private Integer keepaliveDuration;
-
-    @ConfigKeyId("captureReplayType")
-    private Integer captureReplayType;
-
-    @ConfigKeyId("pictureMaxCount")
-    private Integer pictureMaxCount;
-
-    @ConfigKeyId("videoFileFormat")
-    private Integer videoFileFormat;
-
-    @ConfigKeyId("MaxDiconnectTimeoutSecond")
-    private Integer maxDiconnectTimeoutSecond;
-
-    @ConfigKeyId("G711ConvertAAC")
-    private Integer g711ConvertAAC;
-
-    @ConfigKeyId("filterVideo_enable")
-    private Integer filterVideoEnable;
-
-    @ConfigKeyId("filterVideo_text")
-    private String filterVideoText;
-
-    @ConfigKeyId("FilterFontSize")
-    private Integer filterFontSize;
-
-    @ConfigKeyId("FilterFontColor")
-    private String filterFontColor;
-
-    @ConfigKeyId("FilterFontLeft")
-    private Integer filterFontLeft;
-
-    @ConfigKeyId("FilterFontTop")
-    private Integer filterFontTop;
-
-    @ConfigKeyId("FilterFontAlpha")
-    private Double filterFontAlpha;
-
-    @ConfigKeyId("convertOutWidth")
-    private Integer convertOutWidth;
-
-    @ConfigKeyId("convertOutHeight")
-    private Integer convertOutHeight;
-
-    @ConfigKeyId("convertOutBitrate")
-    private Integer convertOutBitrate;
-
-    @ConfigKeyId("flvPlayAddMute")
-    private Integer flvPlayAddMute;
-
-    @ConfigKeyId("gb28181LibraryUse")
-    private Integer gb28181LibraryUse;
-
-    @ConfigKeyId("rtc.listening-ip")
-    private String rtcListeningIp;
-
-    @ConfigKeyId("rtc.listening-port")
-    private Integer rtcListeningIpPort;
-
-    @ConfigKeyId("rtc.external-ip")
-    private String rtcExternalIp;
-
-    @ConfigKeyId("rtc.realm")
-    private String rtcRealm;
-
-    @ConfigKeyId("rtc.user")
-    private String rtcUser;
-
-    @ConfigKeyId("rtc.min-port")
-    private Integer rtcMinPort;
-
-    @ConfigKeyId("rtc.max-port")
-    private Integer rtcMaxPort;
-
-    public static AblServerConfig getInstance(JSONArray jsonArray) {
-        if (jsonArray == null || jsonArray.isEmpty()) {
-            return null;
-        }
-        AblServerConfig ablServerConfig = new AblServerConfig();
-        Field[] fields = AblServerConfig.class.getDeclaredFields();
-        Map<String, Field> fieldMap = new HashMap<>();
-        for (Field field : fields) {
-            if (field.isAnnotationPresent(ConfigKeyId.class)) {
-                ConfigKeyId configKeyId = field.getAnnotation(ConfigKeyId.class);
-                fieldMap.put(configKeyId.value(), field);
-            }
-        }
-        for (int i = 0; i < jsonArray.size(); i++) {
-            JSONObject jsonObject = jsonArray.getJSONObject(i);
-            if (jsonObject == null) {
-                continue;
-            }
-            for (String key : fieldMap.keySet()) {
-                if (jsonObject.containsKey(key)) {
-                    Field field = fieldMap.get(key);
-                    field.setAccessible(true);
-                    try {
-                        field.set(ablServerConfig, jsonObject.getObject(key, fieldMap.get(key).getType()));
-                    } catch (IllegalAccessException e) {}
-                }
-            }
-        }
-        return ablServerConfig;
-    }
-
-    public String getSecret() {
-        return secret;
-    }
-
-    public void setSecret(String secret) {
-        this.secret = secret;
-    }
-
-    public String getServerIp() {
-        return serverIp;
-    }
-
-    public void setServerIp(String serverIp) {
-        this.serverIp = serverIp;
-    }
-
-    public String getMediaServerId() {
-        return mediaServerId;
-    }
-
-    public void setMediaServerId(String mediaServerId) {
-        this.mediaServerId = mediaServerId;
-    }
-
-    public Integer getHookEnable() {
-        return hookEnable;
-    }
-
-    public void setHookEnable(Integer hookEnable) {
-        this.hookEnable = hookEnable;
-    }
-
-    public Integer getEnableAudio() {
-        return enableAudio;
-    }
-
-    public void setEnableAudio(Integer enableAudio) {
-        this.enableAudio = enableAudio;
-    }
-
-    public Integer getHttpServerPort() {
-        return httpServerPort;
-    }
-
-    public void setHttpServerPort(Integer httpServerPort) {
-        this.httpServerPort = httpServerPort;
-    }
-
-    public Integer getRtspPort() {
-        return rtspPort;
-    }
-
-    public void setRtspPort(Integer rtspPort) {
-        this.rtspPort = rtspPort;
-    }
-
-    public Integer getRtmpPort() {
-        return rtmpPort;
-    }
-
-    public void setRtmpPort(Integer rtmpPort) {
-        this.rtmpPort = rtmpPort;
-    }
-
-    public Integer getHttpFlvPort() {
-        return httpFlvPort;
-    }
-
-    public void setHttpFlvPort(Integer httpFlvPort) {
-        this.httpFlvPort = httpFlvPort;
-    }
-
-    public Integer getHlsEnable() {
-        return hlsEnable;
-    }
-
-    public void setHlsEnable(Integer hlsEnable) {
-        this.hlsEnable = hlsEnable;
-    }
-
-    public Integer getHlsPort() {
-        return hlsPort;
-    }
-
-    public void setHlsPort(Integer hlsPort) {
-        this.hlsPort = hlsPort;
-    }
-
-    public Integer getWsPort() {
-        return wsPort;
-    }
-
-    public void setWsPort(Integer wsPort) {
-        this.wsPort = wsPort;
-    }
-
-    public Integer getMp4Port() {
-        return mp4Port;
-    }
-
-    public void setMp4Port(Integer mp4Port) {
-        this.mp4Port = mp4Port;
-    }
-
-    public Integer getPsTsRecvPort() {
-        return psTsRecvPort;
-    }
-
-    public void setPsTsRecvPort(Integer psTsRecvPort) {
-        this.psTsRecvPort = psTsRecvPort;
-    }
-
-    public Integer getHlsCutType() {
-        return hlsCutType;
-    }
-
-    public void setHlsCutType(Integer hlsCutType) {
-        this.hlsCutType = hlsCutType;
-    }
-
-    public Integer getH265CutType() {
-        return h265CutType;
-    }
-
-    public void setH265CutType(Integer h265CutType) {
-        this.h265CutType = h265CutType;
-    }
-
-    public Integer getRecvThreadCount() {
-        return RecvThreadCount;
-    }
-
-    public void setRecvThreadCount(Integer recvThreadCount) {
-        RecvThreadCount = recvThreadCount;
-    }
-
-    public Integer getSendThreadCount() {
-        return SendThreadCount;
-    }
-
-    public void setSendThreadCount(Integer sendThreadCount) {
-        SendThreadCount = sendThreadCount;
-    }
-
-    public Integer getGB28181RtpTCPHeadType() {
-        return GB28181RtpTCPHeadType;
-    }
-
-    public void setGB28181RtpTCPHeadType(Integer GB28181RtpTCPHeadType) {
-        this.GB28181RtpTCPHeadType = GB28181RtpTCPHeadType;
-    }
-
-    public Integer getReConnectingCount() {
-        return ReConnectingCount;
-    }
-
-    public void setReConnectingCount(Integer reConnectingCount) {
-        ReConnectingCount = reConnectingCount;
-    }
-
-    public Integer getMaxTimeNoOneWatch() {
-        return maxTimeNoOneWatch;
-    }
-
-    public void setMaxTimeNoOneWatch(Integer maxTimeNoOneWatch) {
-        this.maxTimeNoOneWatch = maxTimeNoOneWatch;
-    }
-
-    public Integer getPushEnableMp4() {
-        return pushEnableMp4;
-    }
-
-    public void setPushEnableMp4(Integer pushEnableMp4) {
-        this.pushEnableMp4 = pushEnableMp4;
-    }
-
-    public Integer getFileSecond() {
-        return fileSecond;
-    }
-
-    public void setFileSecond(Integer fileSecond) {
-        this.fileSecond = fileSecond;
-    }
-
-    public Integer getFileKeepMaxTime() {
-        return fileKeepMaxTime;
-    }
-
-    public void setFileKeepMaxTime(Integer fileKeepMaxTime) {
-        this.fileKeepMaxTime = fileKeepMaxTime;
-    }
-
-    public Integer getHttpDownloadSpeed() {
-        return httpDownloadSpeed;
-    }
-
-    public void setHttpDownloadSpeed(Integer httpDownloadSpeed) {
-        this.httpDownloadSpeed = httpDownloadSpeed;
-    }
-
-    public Integer getRecordReplayThread() {
-        return RecordReplayThread;
-    }
-
-    public void setRecordReplayThread(Integer recordReplayThread) {
-        RecordReplayThread = recordReplayThread;
-    }
-
-    public Integer getConvertMaxObject() {
-        return convertMaxObject;
-    }
-
-    public void setConvertMaxObject(Integer convertMaxObject) {
-        this.convertMaxObject = convertMaxObject;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    public String getRecordPath() {
-        return recordPath;
-    }
-
-    public void setRecordPath(String recordPath) {
-        this.recordPath = recordPath;
-    }
-
-    public String getPicturePath() {
-        return picturePath;
-    }
-
-    public void setPicturePath(String picturePath) {
-        this.picturePath = picturePath;
-    }
-
-    public Integer getNoneReaderDuration() {
-        return noneReaderDuration;
-    }
-
-    public void setNoneReaderDuration(Integer noneReaderDuration) {
-        this.noneReaderDuration = noneReaderDuration;
-    }
-
-    public String getOnServerStarted() {
-        return onServerStarted;
-    }
-
-    public void setOnServerStarted(String onServerStarted) {
-        this.onServerStarted = onServerStarted;
-    }
-
-    public String getOnServerKeepalive() {
-        return onServerKeepalive;
-    }
-
-    public void setOnServerKeepalive(String onServerKeepalive) {
-        this.onServerKeepalive = onServerKeepalive;
-    }
-
-    public String getOnPlay() {
-        return onPlay;
-    }
-
-    public void setOnPlay(String onPlay) {
-        this.onPlay = onPlay;
-    }
-
-    public String getOnPublish() {
-        return onPublish;
-    }
-
-    public void setOnPublish(String onPublish) {
-        this.onPublish = onPublish;
-    }
-
-    public String getOnStreamArrive() {
-        return onStreamArrive;
-    }
-
-    public void setOnStreamArrive(String onStreamArrive) {
-        this.onStreamArrive = onStreamArrive;
-    }
-
-    public String getOnStreamNotArrive() {
-        return onStreamNotArrive;
-    }
-
-    public void setOnStreamNotArrive(String onStreamNotArrive) {
-        this.onStreamNotArrive = onStreamNotArrive;
-    }
-
-    public String getOnStreamNoneReader() {
-        return onStreamNoneReader;
-    }
-
-    public void setOnStreamNoneReader(String onStreamNoneReader) {
-        this.onStreamNoneReader = onStreamNoneReader;
-    }
-
-    public String getOnStreamDisconnect() {
-        return onStreamDisconnect;
-    }
-
-    public void setOnStreamDisconnect(String onStreamDisconnect) {
-        this.onStreamDisconnect = onStreamDisconnect;
-    }
-
-    public String getOnDeleteRecordMp4() {
-        return onDeleteRecordMp4;
-    }
-
-    public void setOnDeleteRecordMp4(String onDeleteRecordMp4) {
-        this.onDeleteRecordMp4 = onDeleteRecordMp4;
-    }
-
-    public String getOnRecordProgress() {
-        return onRecordProgress;
-    }
-
-    public void setOnRecordProgress(String onRecordProgress) {
-        this.onRecordProgress = onRecordProgress;
-    }
-
-    public String getOnRecordTs() {
-        return onRecordTs;
-    }
-
-    public void setOnRecordTs(String onRecordTs) {
-        this.onRecordTs = onRecordTs;
-    }
-
-    public Integer getEnableGetFileDuration() {
-        return enableGetFileDuration;
-    }
-
-    public void setEnableGetFileDuration(Integer enableGetFileDuration) {
-        this.enableGetFileDuration = enableGetFileDuration;
-    }
-
-    public Integer getKeepaliveDuration() {
-        return keepaliveDuration;
-    }
-
-    public void setKeepaliveDuration(Integer keepaliveDuration) {
-        this.keepaliveDuration = keepaliveDuration;
-    }
-
-    public Integer getCaptureReplayType() {
-        return captureReplayType;
-    }
-
-    public void setCaptureReplayType(Integer captureReplayType) {
-        this.captureReplayType = captureReplayType;
-    }
-
-    public Integer getVideoFileFormat() {
-        return videoFileFormat;
-    }
-
-    public void setVideoFileFormat(Integer videoFileFormat) {
-        this.videoFileFormat = videoFileFormat;
-    }
-
-    public Integer getMaxDiconnectTimeoutSecond() {
-        return maxDiconnectTimeoutSecond;
-    }
-
-    public void setMaxDiconnectTimeoutSecond(Integer maxDiconnectTimeoutSecond) {
-        this.maxDiconnectTimeoutSecond = maxDiconnectTimeoutSecond;
-    }
-
-    public Integer getG711ConvertAAC() {
-        return g711ConvertAAC;
-    }
-
-    public void setG711ConvertAAC(Integer g711ConvertAAC) {
-        this.g711ConvertAAC = g711ConvertAAC;
-    }
-
-    public Integer getFilterVideoEnable() {
-        return filterVideoEnable;
-    }
-
-    public void setFilterVideoEnable(Integer filterVideoEnable) {
-        this.filterVideoEnable = filterVideoEnable;
-    }
-
-    public String getFilterVideoText() {
-        return filterVideoText;
-    }
-
-    public void setFilterVideoText(String filterVideoText) {
-        this.filterVideoText = filterVideoText;
-    }
-
-    public Integer getFilterFontSize() {
-        return filterFontSize;
-    }
-
-    public void setFilterFontSize(Integer filterFontSize) {
-        this.filterFontSize = filterFontSize;
-    }
-
-    public String getFilterFontColor() {
-        return filterFontColor;
-    }
-
-    public void setFilterFontColor(String filterFontColor) {
-        this.filterFontColor = filterFontColor;
-    }
-
-    public Integer getFilterFontLeft() {
-        return filterFontLeft;
-    }
-
-    public void setFilterFontLeft(Integer filterFontLeft) {
-        this.filterFontLeft = filterFontLeft;
-    }
-
-    public Integer getFilterFontTop() {
-        return filterFontTop;
-    }
-
-    public void setFilterFontTop(Integer filterFontTop) {
-        this.filterFontTop = filterFontTop;
-    }
-
-    public Double getFilterFontAlpha() {
-        return filterFontAlpha;
-    }
-
-    public void setFilterFontAlpha(Double filterFontAlpha) {
-        this.filterFontAlpha = filterFontAlpha;
-    }
-
-    public Integer getConvertOutWidth() {
-        return convertOutWidth;
-    }
-
-    public void setConvertOutWidth(Integer convertOutWidth) {
-        this.convertOutWidth = convertOutWidth;
-    }
-
-    public Integer getConvertOutHeight() {
-        return convertOutHeight;
-    }
-
-    public void setConvertOutHeight(Integer convertOutHeight) {
-        this.convertOutHeight = convertOutHeight;
-    }
-
-    public Integer getConvertOutBitrate() {
-        return convertOutBitrate;
-    }
-
-    public void setConvertOutBitrate(Integer convertOutBitrate) {
-        this.convertOutBitrate = convertOutBitrate;
-    }
-
-    public Integer getFlvPlayAddMute() {
-        return flvPlayAddMute;
-    }
-
-    public void setFlvPlayAddMute(Integer flvPlayAddMute) {
-        this.flvPlayAddMute = flvPlayAddMute;
-    }
-
-    public Integer getGb28181LibraryUse() {
-        return gb28181LibraryUse;
-    }
-
-    public void setGb28181LibraryUse(Integer gb28181LibraryUse) {
-        this.gb28181LibraryUse = gb28181LibraryUse;
-    }
-
-    public String getRtcListeningIp() {
-        return rtcListeningIp;
-    }
-
-    public void setRtcListeningIp(String rtcListeningIp) {
-        this.rtcListeningIp = rtcListeningIp;
-    }
-
-    public Integer getRtcListeningIpPort() {
-        return rtcListeningIpPort;
-    }
-
-    public void setRtcListeningIpPort(Integer rtcListeningIpPort) {
-        this.rtcListeningIpPort = rtcListeningIpPort;
-    }
-
-    public String getRtcExternalIp() {
-        return rtcExternalIp;
-    }
-
-    public void setRtcExternalIp(String rtcExternalIp) {
-        this.rtcExternalIp = rtcExternalIp;
-    }
-
-    public String getRtcRealm() {
-        return rtcRealm;
-    }
-
-    public void setRtcRealm(String rtcRealm) {
-        this.rtcRealm = rtcRealm;
-    }
-
-    public String getRtcUser() {
-        return rtcUser;
-    }
-
-    public void setRtcUser(String rtcUser) {
-        this.rtcUser = rtcUser;
-    }
-
-    public Integer getRtcMinPort() {
-        return rtcMinPort;
-    }
-
-    public void setRtcMinPort(Integer rtcMinPort) {
-        this.rtcMinPort = rtcMinPort;
-    }
-
-    public Integer getRtcMaxPort() {
-        return rtcMaxPort;
-    }
-
-    public void setRtcMaxPort(Integer rtcMaxPort) {
-        this.rtcMaxPort = rtcMaxPort;
-    }
-
-    public String getOnRecordMp4() {
-        return onRecordMp4;
-    }
-
-    public void setOnRecordMp4(String onRecordMp4) {
-        this.onRecordMp4 = onRecordMp4;
-    }
-
-    public Integer getPictureMaxCount() {
-        return pictureMaxCount;
-    }
-
-    public void setPictureMaxCount(Integer pictureMaxCount) {
-        this.pictureMaxCount = pictureMaxCount;
-    }
-
-    public String getOnStreamNotFound() {
-        return onStreamNotFound;
-    }
-
-    public void setOnStreamNotFound(String onStreamNotFound) {
-        this.onStreamNotFound = onStreamNotFound;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblUrls.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblUrls.java
deleted file mode 100644
index 42e05a0..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/AblUrls.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean;
-
-public class AblUrls {
-    private String rtsp;
-    private String rtmp;
-    private String httpFlv;
-    private String wsFlv;
-    private String httpMp4;
-    private String httpHls;
-
-    public String getRtsp() {
-        return rtsp;
-    }
-
-    public void setRtsp(String rtsp) {
-        this.rtsp = rtsp;
-    }
-
-    public String getRtmp() {
-        return rtmp;
-    }
-
-    public void setRtmp(String rtmp) {
-        this.rtmp = rtmp;
-    }
-
-    public String getHttpFlv() {
-        return httpFlv;
-    }
-
-    public void setHttpFlv(String httpFlv) {
-        this.httpFlv = httpFlv;
-    }
-
-    public String getWsFlv() {
-        return wsFlv;
-    }
-
-    public void setWsFlv(String wsFlv) {
-        this.wsFlv = wsFlv;
-    }
-
-    public String getHttpMp4() {
-        return httpMp4;
-    }
-
-    public void setHttpMp4(String httpMp4) {
-        this.httpMp4 = httpMp4;
-    }
-
-    public String getHttpHls() {
-        return httpHls;
-    }
-
-    public void setHttpHls(String httpHls) {
-        this.httpHls = httpHls;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/ConfigKeyId.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/ConfigKeyId.java
deleted file mode 100644
index 244bb94..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/ConfigKeyId.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean;
-
-import java.lang.annotation.*;
-
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface ConfigKeyId {
-    String value();
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/ABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/ABLHookParam.java
deleted file mode 100644
index 796935e..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/ABLHookParam.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class ABLHookParam {
-    private String mediaServerId;
-
-    /**
-     * 搴旂敤鍚�
-     */
-    private String app;
-
-    /**
-     * 娴乮d
-     */
-    private String stream;
-
-    /**
-     * 濯掍綋娴佹潵婧愮紪鍙凤紝鍙互鏍规嵁杩欎釜key杩涜鍏抽棴娴佸獟浣� 鍙互璋冪敤delMediaStream鎴朿lose_streams 鍑芥暟杩涜鍏抽棴
-     */
-    private String key;
-
-    /**
-     * 濯掍綋娴佹潵婧愮綉缁滅紪鍙凤紝鍙弬鑰冮檮琛�
-     */
-    private Integer networkType;
-
-    public String getMediaServerId() {
-        return mediaServerId;
-    }
-
-    public void setMediaServerId(String mediaServerId) {
-        this.mediaServerId = mediaServerId;
-    }
-
-    public String getApp() {
-        return app;
-    }
-
-    public void setApp(String app) {
-        this.app = app;
-    }
-
-    public String getStream() {
-        return stream;
-    }
-
-    public void setStream(String stream) {
-        this.stream = stream;
-    }
-
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
-    public Integer getNetworkType() {
-        return networkType;
-    }
-
-    public void setNetworkType(Integer networkType) {
-        this.networkType = networkType;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPlayABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPlayABLHookParam.java
deleted file mode 100644
index af18210..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPlayABLHookParam.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnPlayABLHookParam extends ABLHookParam{
-    private String ip;
-    private Integer port;
-    private String params;
-
-    public String getIp() {
-        return ip;
-    }
-
-    public void setIp(String ip) {
-        this.ip = ip;
-    }
-
-    public Integer getPort() {
-        return port;
-    }
-
-    public void setPort(Integer port) {
-        this.port = port;
-    }
-
-    public String getParams() {
-        return params;
-    }
-
-    public void setParams(String params) {
-        this.params = params;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPublishABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPublishABLHookParam.java
deleted file mode 100644
index 11da274..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnPublishABLHookParam.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnPublishABLHookParam extends ABLHookParam{
-    private String ip;
-    private Integer port;
-    private String params;
-
-    public String getIp() {
-        return ip;
-    }
-
-    public void setIp(String ip) {
-        this.ip = ip;
-    }
-
-    public Integer getPort() {
-        return port;
-    }
-
-    public void setPort(Integer port) {
-        this.port = port;
-    }
-
-    public String getParams() {
-        return params;
-    }
-
-    public void setParams(String params) {
-        this.params = params;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordMp4ABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordMp4ABLHookParam.java
deleted file mode 100644
index 0fb819f..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordMp4ABLHookParam.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnRecordMp4ABLHookParam extends ABLHookParam{
-    private String fileName;
-
-    public String getFileName() {
-        return fileName;
-    }
-
-    public void setFileName(String fileName) {
-        this.fileName = fileName;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordProgressABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordProgressABLHookParam.java
deleted file mode 100644
index 8f70781..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnRecordProgressABLHookParam.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnRecordProgressABLHookParam extends OnRecordMp4ABLHookParam{
-    private Integer currentFileDuration;
-    private Integer TotalVideoDuration;
-
-    public Integer getCurrentFileDuration() {
-        return currentFileDuration;
-    }
-
-    public void setCurrentFileDuration(Integer currentFileDuration) {
-        this.currentFileDuration = currentFileDuration;
-    }
-
-    public Integer getTotalVideoDuration() {
-        return TotalVideoDuration;
-    }
-
-    public void setTotalVideoDuration(Integer totalVideoDuration) {
-        TotalVideoDuration = totalVideoDuration;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerKeepaliveABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerKeepaliveABLHookParam.java
deleted file mode 100644
index ea1ac97..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerKeepaliveABLHookParam.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnServerKeepaliveABLHookParam {
-    private String localipAddress;
-    private String mediaServerId;
-    private String datetime;
-
-
-    public String getLocalipAddress() {
-        return localipAddress;
-    }
-
-    public void setLocalipAddress(String localipAddress) {
-        this.localipAddress = localipAddress;
-    }
-
-    public String getMediaServerId() {
-        return mediaServerId;
-    }
-
-    public void setMediaServerId(String mediaServerId) {
-        this.mediaServerId = mediaServerId;
-    }
-
-    public String getDatetime() {
-        return datetime;
-    }
-
-    public void setDatetime(String datetime) {
-        this.datetime = datetime;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerStaredABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerStaredABLHookParam.java
deleted file mode 100644
index a9ec44c..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnServerStaredABLHookParam.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-public class OnServerStaredABLHookParam {
-    private String localipAddress;
-    private String mediaServerId;
-    private String datetime;
-
-
-    public String getLocalipAddress() {
-        return localipAddress;
-    }
-
-    public void setLocalipAddress(String localipAddress) {
-        this.localipAddress = localipAddress;
-    }
-
-    public String getMediaServerId() {
-        return mediaServerId;
-    }
-
-    public void setMediaServerId(String mediaServerId) {
-        this.mediaServerId = mediaServerId;
-    }
-
-    public String getDatetime() {
-        return datetime;
-    }
-
-    public void setDatetime(String datetime) {
-        this.datetime = datetime;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnStreamArriveABLHookParam.java b/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnStreamArriveABLHookParam.java
deleted file mode 100644
index efe9b12..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/bean/hook/OnStreamArriveABLHookParam.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.bean.hook;
-
-import com.genersoft.iot.vmp.media.abl.bean.AblUrls;
-
-/**
- * 娴佸埌鏉ョ殑浜嬩欢
- */
-public class OnStreamArriveABLHookParam extends ABLHookParam{
-
-
-
-    /**
-     * 鎺ㄦ祦閴存潈Id
-     */
-    private String callId;
-
-    /**
-     * 鐘舵��
-     */
-    private Boolean status;
-
-
-    /**
-     *
-     */
-    private Boolean enableHls;
-
-
-    /**
-     *
-     */
-    private Boolean transcodingStatus;
-
-
-    /**
-     *
-     */
-    private String sourceURL;
-
-
-    /**
-     *
-     */
-    private Integer readerCount;
-
-
-    /**
-     *
-     */
-    private Integer noneReaderDuration;
-
-
-    /**
-     *
-     */
-    private String videoCodec;
-
-
-    /**
-     *
-     */
-    private Integer videoFrameSpeed;
-
-
-    /**
-     *
-     */
-    private Integer width;
-
-
-    /**
-     *
-     */
-    private Integer height;
-
-
-    /**
-     *
-     */
-    private Integer videoBitrate;
-
-
-    /**
-     *
-     */
-    private String audioCodec;
-
-
-    /**
-     *
-     */
-    private Integer audioChannels;
-
-
-    /**
-     *
-     */
-    private Integer audioSampleRate;
-
-
-    /**
-     *
-     */
-    private Integer audioBitrate;
-
-
-    private AblUrls url;
-
-
-    public String getCallId() {
-        return callId;
-    }
-
-    public void setCallId(String callId) {
-        this.callId = callId;
-    }
-
-    public Boolean getStatus() {
-        return status;
-    }
-
-    public void setStatus(Boolean status) {
-        this.status = status;
-    }
-
-    public Boolean getEnableHls() {
-        return enableHls;
-    }
-
-    public void setEnableHls(Boolean enableHls) {
-        this.enableHls = enableHls;
-    }
-
-    public Boolean getTranscodingStatus() {
-        return transcodingStatus;
-    }
-
-    public void setTranscodingStatus(Boolean transcodingStatus) {
-        this.transcodingStatus = transcodingStatus;
-    }
-
-    public String getSourceURL() {
-        return sourceURL;
-    }
-
-    public void setSourceURL(String sourceURL) {
-        this.sourceURL = sourceURL;
-    }
-
-    public Integer getReaderCount() {
-        return readerCount;
-    }
-
-    public void setReaderCount(Integer readerCount) {
-        this.readerCount = readerCount;
-    }
-
-    public Integer getNoneReaderDuration() {
-        return noneReaderDuration;
-    }
-
-    public void setNoneReaderDuration(Integer noneReaderDuration) {
-        this.noneReaderDuration = noneReaderDuration;
-    }
-
-    public String getVideoCodec() {
-        return videoCodec;
-    }
-
-    public void setVideoCodec(String videoCodec) {
-        this.videoCodec = videoCodec;
-    }
-
-    public Integer getVideoFrameSpeed() {
-        return videoFrameSpeed;
-    }
-
-    public void setVideoFrameSpeed(Integer videoFrameSpeed) {
-        this.videoFrameSpeed = videoFrameSpeed;
-    }
-
-    public Integer getWidth() {
-        return width;
-    }
-
-    public void setWidth(Integer width) {
-        this.width = width;
-    }
-
-    public Integer getHeight() {
-        return height;
-    }
-
-    public void setHeight(Integer height) {
-        this.height = height;
-    }
-
-    public Integer getVideoBitrate() {
-        return videoBitrate;
-    }
-
-    public void setVideoBitrate(Integer videoBitrate) {
-        this.videoBitrate = videoBitrate;
-    }
-
-    public String getAudioCodec() {
-        return audioCodec;
-    }
-
-    public void setAudioCodec(String audioCodec) {
-        this.audioCodec = audioCodec;
-    }
-
-    public Integer getAudioChannels() {
-        return audioChannels;
-    }
-
-    public void setAudioChannels(Integer audioChannels) {
-        this.audioChannels = audioChannels;
-    }
-
-    public Integer getAudioSampleRate() {
-        return audioSampleRate;
-    }
-
-    public void setAudioSampleRate(Integer audioSampleRate) {
-        this.audioSampleRate = audioSampleRate;
-    }
-
-    public Integer getAudioBitrate() {
-        return audioBitrate;
-    }
-
-    public void setAudioBitrate(Integer audioBitrate) {
-        this.audioBitrate = audioBitrate;
-    }
-
-    public AblUrls getUrl() {
-        return url;
-    }
-
-    public void setUrl(AblUrls url) {
-        this.url = url;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerKeepaliveEvent.java b/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerKeepaliveEvent.java
deleted file mode 100644
index 74465e4..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerKeepaliveEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.event;
-
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * zlm 蹇冭烦浜嬩欢
- */
-public class HookAblServerKeepaliveEvent extends ApplicationEvent {
-
-    public HookAblServerKeepaliveEvent(Object source) {
-        super(source);
-    }
-
-    private MediaServer mediaServerItem;
-
-    public MediaServer getMediaServerItem() {
-        return mediaServerItem;
-    }
-
-    public void setMediaServerItem(MediaServer mediaServerItem) {
-        this.mediaServerItem = mediaServerItem;
-    }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerStartEvent.java b/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerStartEvent.java
deleted file mode 100644
index 12bdac0..0000000
--- a/src/main/java/com/genersoft/iot/vmp/media/abl/event/HookAblServerStartEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.genersoft.iot.vmp.media.abl.event;
-
-import com.genersoft.iot.vmp.media.bean.MediaServer;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * zlm server_start浜嬩欢
- */
-public class HookAblServerStartEvent extends ApplicationEvent {
-
-    public HookAblServerStartEvent(Object source) {
-        super(source);
-    }
-
-    private MediaServer mediaServerItem;
-
-    public MediaServer getMediaServerItem() {
-        return mediaServerItem;
-    }
-
-    public void setMediaServerItem(MediaServer mediaServerItem) {
-        this.mediaServerItem = mediaServerItem;
-    }
-}

--
Gitblit v1.8.0