648540858
2024-04-02 a1c02605c18a069a4ca3ad2c5562853c37c0d14e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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 {
            //  检查ZLM状态
            logger.error("关闭RTP Server 失败: 请检查ZLM服务");
        }
    }
 
    @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;
    }
}