|
@@ -0,0 +1,144 @@
|
|
|
+package com.fdkankan.mvp.streamProxy;
|
|
|
+
|
|
|
+import com.fdkankan.mvp.bean.ResultData;
|
|
|
+import com.fdkankan.mvp.bean.WvpServerInfo;
|
|
|
+import com.fdkankan.mvp.constant.ApiConstant;
|
|
|
+import com.fdkankan.mvp.factory.InstanceFactory;
|
|
|
+import com.fdkankan.mvp.util.forest.HttpClient;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 拉流代理相关
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author dengsixing
|
|
|
+ * @since 2022/8/31
|
|
|
+ **/
|
|
|
+public class StreamProxyUtil {
|
|
|
+
|
|
|
+ private static HttpClient httpClient = InstanceFactory.httpClient;
|
|
|
+ private static WvpServerInfo wvpServerInfo = InstanceFactory.wvpServerInfo;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ 保存拉流代理
|
|
|
+ * </p>
|
|
|
+ * @author dengsixing
|
|
|
+ * @param name 拉流代理名称
|
|
|
+ * @param app app名称
|
|
|
+ * @param streamId 流id
|
|
|
+ * @param streamUrl 拉流地址
|
|
|
+ * @param mediaServerId 流媒体服务节点id
|
|
|
+ * @param rtpType 拉流方式 0-tcp,1-udp
|
|
|
+ * @param enable 是否启用
|
|
|
+ * @param enableHls 是否转hls
|
|
|
+ * @param enableMp4 是否开启mp4录制
|
|
|
+ * @return com.fdkankan.mvp.bean.ResultData
|
|
|
+ **/
|
|
|
+ public static ResultData saveStreamProxy(
|
|
|
+ String name, String app, String streamId,
|
|
|
+ String streamUrl, String mediaServerId, String rtpType,
|
|
|
+ boolean enable, boolean enableHls, boolean enableMp4){
|
|
|
+
|
|
|
+ String url = wvpServerInfo.getAddress() + ApiConstant.SAVE_STREAM_PROXY;
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("app", app);
|
|
|
+ params.put("enable", enable);
|
|
|
+ params.put("enable_hls", enableHls);
|
|
|
+ params.put("enable_mp4", enableMp4);
|
|
|
+ params.put("enable_remove_none_reader", false);
|
|
|
+ params.put("ffmpeg_cmd_key", "ffmpeg_cmd");
|
|
|
+ params.put("mediaServerId", mediaServerId);
|
|
|
+ params.put("name", name);
|
|
|
+ params.put("rtp_type", rtpType);
|
|
|
+ params.put("stream", streamId);
|
|
|
+ params.put("type", "default");
|
|
|
+ params.put("url", streamUrl);
|
|
|
+ ResultData resultData = httpClient.postJson(url, params);
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ 停用拉流代理
|
|
|
+ * </p>
|
|
|
+ * @author dengsixing
|
|
|
+ * @param app
|
|
|
+ * @param streamId
|
|
|
+ * @return com.fdkankan.mvp.bean.ResultData
|
|
|
+ **/
|
|
|
+ public static ResultData stopStreamProxy(String app, String streamId){
|
|
|
+ String url = wvpServerInfo.getAddress() + ApiConstant.STOP_STREAM_PROXY;
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("app", app);
|
|
|
+ params.put("stream", streamId);
|
|
|
+ ResultData resultData = httpClient.get(url, params);
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ 启用拉流代理
|
|
|
+ * </p>
|
|
|
+ * @author dengsixing
|
|
|
+ * @param app
|
|
|
+ * @param streamId
|
|
|
+ * @return com.fdkankan.mvp.bean.ResultData
|
|
|
+ **/
|
|
|
+ public static ResultData startStreamProxy(String app, String streamId){
|
|
|
+ String url = wvpServerInfo.getAddress() + ApiConstant.START_STREAM_PROXY;
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("app", app);
|
|
|
+ params.put("stream", streamId);
|
|
|
+ ResultData resultData = httpClient.get(url, params);
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ 移除拉流代理
|
|
|
+ * </p>
|
|
|
+ * @author dengsixing
|
|
|
+ * @param app
|
|
|
+ * @param streamId
|
|
|
+ * @return com.fdkankan.mvp.bean.ResultData
|
|
|
+ **/
|
|
|
+ public static ResultData delStreamProxy(String app, String streamId){
|
|
|
+ String url = wvpServerInfo.getAddress() + ApiConstant.DEL_STREAM_PROXY;
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("app", app);
|
|
|
+ params.put("stream", streamId);
|
|
|
+ ResultData resultData = httpClient.deleteForm(url, params);
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ 分页查询拉流代理
|
|
|
+ * </p>
|
|
|
+ * @author dengsixing
|
|
|
+ * @param page 页码
|
|
|
+ * @param count 每页条数
|
|
|
+ * @param online 是否启用(0-否,1是) 默认全部
|
|
|
+ * @return com.fdkankan.mvp.bean.ResultData
|
|
|
+ **/
|
|
|
+ public static ResultData listStreamProxy(int page, int count, Boolean online){
|
|
|
+ String url = wvpServerInfo.getAddress() + ApiConstant.DEL_STREAM_PROXY;
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("page", page);
|
|
|
+ params.put("count", count);
|
|
|
+ if(Objects.nonNull(online)){
|
|
|
+ params.put("online", online);
|
|
|
+ }
|
|
|
+ ResultData resultData = httpClient.get(url, params);
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|