mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-06 14:07:49 +08:00
Compare commits
3 Commits
8b7766e81c
...
755b3c480c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
755b3c480c | ||
|
|
c7904ff897 | ||
|
|
34d1dbb399 |
53
src/main/java/com/genersoft/iot/vmp/gb28181/bean/TalkRtpInfo.java
Executable file
53
src/main/java/com/genersoft/iot/vmp/gb28181/bean/TalkRtpInfo.java
Executable file
@ -0,0 +1,53 @@
|
||||
package com.genersoft.iot.vmp.gb28181.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TalkRtpInfo {
|
||||
|
||||
/**
|
||||
* 应用名, 待推送给设备的流应用名
|
||||
*/
|
||||
private String app;
|
||||
|
||||
/**
|
||||
* 流id, 待推送给设备的流id
|
||||
*/
|
||||
private String stream;
|
||||
|
||||
/**
|
||||
* rtp推流出去的ssrc
|
||||
*/
|
||||
private String ssrc;
|
||||
|
||||
/**
|
||||
* 对方rtp推流上来的流id
|
||||
*/
|
||||
private String receiveStreamId;
|
||||
|
||||
/**
|
||||
* 是否推送本地MP4录像,该参数非必选参数
|
||||
*/
|
||||
private Integer fromMp4;
|
||||
|
||||
/**
|
||||
* 类型: 0(ES流)、1(PS流)、2(TS流),默认1(PS流);该参数非必选参数
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* rtp payload type,默认96;该参数非必选参数
|
||||
*/
|
||||
private Integer pt;
|
||||
|
||||
/**
|
||||
* rtp es方式打包时,是否只打包音频;该参数非必选参数
|
||||
*/
|
||||
private Integer onlyAudio;
|
||||
|
||||
/**
|
||||
* 转发rtp(tcp模式)时,如果发送不出去,是否限制源端收流速度,此参数在多倍速rtp转发时作用较大
|
||||
*/
|
||||
private Integer enableOriginReceiveLimit;
|
||||
|
||||
}
|
||||
@ -10,6 +10,7 @@ import com.genersoft.iot.vmp.conf.SipConfig;
|
||||
import com.genersoft.iot.vmp.conf.UserSetting;
|
||||
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.TalkRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
|
||||
import com.genersoft.iot.vmp.media.abl.bean.ABLMedia;
|
||||
import com.genersoft.iot.vmp.media.abl.bean.ABLResult;
|
||||
@ -387,7 +388,7 @@ public class ABLMediaNodeServerService implements IMediaNodeServerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, TalkRtpInfo talkRtpInfo, Integer timeout) {
|
||||
logger.warn("[abl-startSendRtpTalk] 未实现");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.media.service;
|
||||
import com.genersoft.iot.vmp.common.CommonCallback;
|
||||
import com.genersoft.iot.vmp.common.StreamInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.TalkRtpInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||
import com.genersoft.iot.vmp.media.bean.RecordInfo;
|
||||
@ -67,7 +68,7 @@ public interface IMediaNodeServerService {
|
||||
|
||||
void startSendRtpStream(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
||||
|
||||
Integer startSendRtpTalk(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
||||
Integer startSendRtpTalk(MediaServer mediaServer, TalkRtpInfo talkRtpInfo, Integer timeout);
|
||||
|
||||
Long updateDownloadProcess(MediaServer mediaServer, String app, String stream);
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.media.service;
|
||||
import com.genersoft.iot.vmp.common.CommonCallback;
|
||||
import com.genersoft.iot.vmp.common.StreamInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.TalkRtpInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||
import com.genersoft.iot.vmp.media.bean.RecordInfo;
|
||||
@ -139,7 +140,7 @@ public interface IMediaServerService {
|
||||
|
||||
Integer startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
||||
|
||||
Integer startSendRtpTalk(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
||||
Integer startSendRtpTalk(MediaServer mediaServer, TalkRtpInfo talkRtpInfo, Integer timeout);
|
||||
|
||||
void startSendRtp(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ import com.genersoft.iot.vmp.conf.MediaConfig;
|
||||
import com.genersoft.iot.vmp.conf.UserSetting;
|
||||
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.TalkRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
|
||||
import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaInfo;
|
||||
@ -24,7 +25,6 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OriginType;
|
||||
import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
|
||||
import com.genersoft.iot.vmp.service.bean.ErrorCallback;
|
||||
import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
|
||||
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
|
||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
import com.genersoft.iot.vmp.storager.dao.MediaServerMapper;
|
||||
import com.genersoft.iot.vmp.streamProxy.bean.StreamProxy;
|
||||
@ -32,7 +32,6 @@ import com.genersoft.iot.vmp.utils.DateUtil;
|
||||
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
@ -803,15 +802,16 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, TalkRtpInfo talkRtpInfo, Integer timeout) {
|
||||
IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
|
||||
if (mediaNodeServerService == null) {
|
||||
log.info("[startSendRtpPassive] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType());
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到mediaServer对应的实现类");
|
||||
}
|
||||
return mediaNodeServerService.startSendRtpTalk(mediaServer, sendRtpItem, timeout);
|
||||
return mediaNodeServerService.startSendRtpTalk(mediaServer, talkRtpInfo, timeout);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void startSendRtp(MediaServer mediaServer, SendRtpInfo sendRtpItem) {
|
||||
IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
|
||||
|
||||
@ -9,6 +9,7 @@ import com.genersoft.iot.vmp.common.enums.MediaApp;
|
||||
import com.genersoft.iot.vmp.conf.UserSetting;
|
||||
import com.genersoft.iot.vmp.conf.exception.ControllerException;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.TalkRtpInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaInfo;
|
||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||
import com.genersoft.iot.vmp.media.bean.RecordInfo;
|
||||
@ -371,17 +372,17 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
||||
public Integer startSendRtpTalk(MediaServer mediaServer, TalkRtpInfo talkRtpInfo, Integer timeout) {
|
||||
Map<String, Object> param = new HashMap<>(12);
|
||||
param.put("vhost","__defaultVhost__");
|
||||
param.put("app", sendRtpItem.getApp());
|
||||
param.put("stream", sendRtpItem.getStream());
|
||||
param.put("ssrc", sendRtpItem.getSsrc());
|
||||
param.put("pt", sendRtpItem.getPt());
|
||||
param.put("type", sendRtpItem.isUsePs() ? "1" : "0");
|
||||
param.put("only_audio", sendRtpItem.isOnlyAudio() ? "1" : "0");
|
||||
param.put("recv_stream_id", sendRtpItem.getReceiveStream());
|
||||
param.put("enable_origin_recv_limit", "1");
|
||||
param.put("app", talkRtpInfo.getApp());
|
||||
param.put("stream", talkRtpInfo.getStream());
|
||||
param.put("ssrc", talkRtpInfo.getSsrc());
|
||||
param.put("pt", talkRtpInfo.getPt());
|
||||
param.put("type", talkRtpInfo.getType());
|
||||
param.put("only_audio", talkRtpInfo.getOnlyAudio());
|
||||
param.put("recv_stream_id", talkRtpInfo.getReceiveStreamId());
|
||||
param.put("enable_origin_recv_limit", talkRtpInfo.getEnableOriginReceiveLimit() != null && talkRtpInfo.getEnableOriginReceiveLimit() == 1 ? "1" : "0");
|
||||
ZLMResult<?> zlmResult = zlmServerFactory.startSendRtpTalk(mediaServer, param, null);
|
||||
if (zlmResult.getCode() != 0 ) {
|
||||
log.error("启动监听TCP被动推流失败: {}, 参数:{}", zlmResult.getMsg(), JSON.toJSONString(param));
|
||||
|
||||
@ -13,10 +13,10 @@
|
||||
<div id="shared" style="margin-right: 20px;">
|
||||
<el-form ref="passwordForm" :rules="rules" status-icon label-width="80px">
|
||||
<el-form-item label="新密码" prop="newPassword">
|
||||
<el-input v-model="newPassword" autocomplete="off" />
|
||||
<el-input v-model="newPassword" autocomplete="off" type="password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="confirmPassword">
|
||||
<el-input v-model="confirmPassword" autocomplete="off" />
|
||||
<el-input v-model="confirmPassword" autocomplete="off" type="password" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
@ -88,6 +88,14 @@ export default {
|
||||
}
|
||||
},
|
||||
onSubmit: function() {
|
||||
if (this.newPassword !== this.confirmPassword) {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '两次输入密码不一致!',
|
||||
type: 'error'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$store.dispatch('user/changePasswordForAdmin', {
|
||||
password: this.newPassword,
|
||||
userId: this.form.id
|
||||
|
||||
Loading…
Reference in New Issue
Block a user