commit
42d837b70f
4
pom.xml
4
pom.xml
@ -131,7 +131,7 @@
|
||||
<artifactId>jain-sip-ri</artifactId>
|
||||
<version>1.3.0-92</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/libs/jain-sip-ri-1.3.0-92.jar</systemPath>
|
||||
<systemPath>${pom.basedir}/libs/jain-sip-ri-1.3.0-92.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
@ -141,7 +141,7 @@
|
||||
|
||||
<!-- xml解析库 -->
|
||||
<dependency>
|
||||
<groupId>org.dom4j</groupId>
|
||||
<groupId>org.dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>2.1.3</version>
|
||||
</dependency>
|
||||
|
@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class VManageBootstrap extends LogManager {
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(VManageBootstrap.class, args);
|
||||
}
|
||||
}
|
||||
|
@ -185,11 +185,11 @@ public class SIPCommander implements ISIPCommander {
|
||||
/**
|
||||
* 云台指令码计算
|
||||
*
|
||||
* @param cmdCode 指令码
|
||||
* @param parameter1 数据1
|
||||
* @param parameter2 数据2
|
||||
* @param combineCode2 组合码2
|
||||
*/
|
||||
* @param cmdCode 指令码
|
||||
* @param parameter1 数据1
|
||||
* @param parameter2 数据2
|
||||
* @param combineCode2 组合码2
|
||||
*/
|
||||
public static String frontEndCmdString(int cmdCode, int parameter1, int parameter2, int combineCode2) {
|
||||
StringBuilder builder = new StringBuilder("A50F01");
|
||||
String strTmp;
|
||||
@ -211,13 +211,13 @@ public class SIPCommander implements ISIPCommander {
|
||||
/**
|
||||
* 云台控制,支持方向与缩放控制
|
||||
*
|
||||
* @param device 控制设备
|
||||
* @param channelId 预览通道
|
||||
* @param leftRight 镜头左移右移 0:停止 1:左移 2:右移
|
||||
* @param upDown 镜头上移下移 0:停止 1:上移 2:下移
|
||||
* @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大
|
||||
* @param moveSpeed 镜头移动速度
|
||||
* @param zoomSpeed 镜头缩放速度
|
||||
* @param device 控制设备
|
||||
* @param channelId 预览通道
|
||||
* @param leftRight 镜头左移右移 0:停止 1:左移 2:右移
|
||||
* @param upDown 镜头上移下移 0:停止 1:上移 2:下移
|
||||
* @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大
|
||||
* @param moveSpeed 镜头移动速度
|
||||
* @param zoomSpeed 镜头缩放速度
|
||||
*/
|
||||
@Override
|
||||
public boolean ptzCmd(Device device, String channelId, int leftRight, int upDown, int inOut, int moveSpeed,
|
||||
@ -333,13 +333,14 @@ public class SIPCommander implements ISIPCommander {
|
||||
|
||||
if (seniorSdp) {
|
||||
if("TCP-PASSIVE".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}else if ("TCP-ACTIVE".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}else if("UDP".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}
|
||||
content.append("a=recvonly\r\n");
|
||||
content.append("a=rtpmap:96 PS/90000\r\n");
|
||||
content.append("a=fmtp:126 profile-level-id=42e01e\r\n");
|
||||
content.append("a=rtpmap:126 H264/90000\r\n");
|
||||
content.append("a=rtpmap:125 H264S/90000\r\n");
|
||||
@ -348,7 +349,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
content.append("a=fmtp:99 profile-level-id=3\r\n");
|
||||
content.append("a=rtpmap:98 H264/90000\r\n");
|
||||
content.append("a=rtpmap:97 MPEG4/90000\r\n");
|
||||
content.append("a=rtpmap:96 PS/90000\r\n");
|
||||
if("TCP-PASSIVE".equals(streamMode)){ // tcp被动模式
|
||||
content.append("a=setup:passive\r\n");
|
||||
content.append("a=connection:new\r\n");
|
||||
@ -387,9 +387,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
|
||||
content.append("y="+ssrc+"\r\n");//ssrc
|
||||
|
||||
// String fromTag = UUID.randomUUID().toString();
|
||||
// Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, fromTag, null, ssrc);
|
||||
|
||||
Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "live", null, ssrc);
|
||||
|
||||
ClientTransaction transaction = transmitRequest(device, request, errorEvent);
|
||||
@ -416,12 +413,15 @@ public class SIPCommander implements ISIPCommander {
|
||||
try {
|
||||
MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
|
||||
String ssrc = null;
|
||||
String streamId = null;
|
||||
if (rtpEnable) {
|
||||
ssrc = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId);
|
||||
streamId = ssrc;
|
||||
}else {
|
||||
ssrc = streamSession.createPlayBackSsrc();
|
||||
streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
|
||||
}
|
||||
String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
|
||||
|
||||
// 添加订阅
|
||||
JSONObject subscribeKey = new JSONObject();
|
||||
subscribeKey.put("app", "rtp");
|
||||
@ -429,7 +429,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
|
||||
subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, subscribeKey, event);
|
||||
|
||||
//
|
||||
StringBuffer content = new StringBuffer(200);
|
||||
content.append("v=0\r\n");
|
||||
content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n");
|
||||
@ -449,13 +448,14 @@ public class SIPCommander implements ISIPCommander {
|
||||
|
||||
if (seniorSdp) {
|
||||
if("TCP-PASSIVE".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}else if ("TCP-ACTIVE".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}else if("UDP".equals(streamMode)) {
|
||||
content.append("m=video "+ mediaPort +" RTP/AVP 126 125 99 34 98 97 96\r\n");
|
||||
content.append("m=video "+ mediaPort +" RTP/AVP 96 126 125 99 34 98 97\r\n");
|
||||
}
|
||||
content.append("a=recvonly\r\n");
|
||||
content.append("a=rtpmap:96 PS/90000\r\n");
|
||||
content.append("a=fmtp:126 profile-level-id=42e01e\r\n");
|
||||
content.append("a=rtpmap:126 H264/90000\r\n");
|
||||
content.append("a=rtpmap:125 H264S/90000\r\n");
|
||||
@ -464,7 +464,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
content.append("a=fmtp:99 profile-level-id=3\r\n");
|
||||
content.append("a=rtpmap:98 H264/90000\r\n");
|
||||
content.append("a=rtpmap:97 MPEG4/90000\r\n");
|
||||
content.append("a=rtpmap:96 PS/90000\r\n");
|
||||
if("TCP-PASSIVE".equals(streamMode)){ // tcp被动模式
|
||||
content.append("a=setup:passive\r\n");
|
||||
content.append("a=connection:new\r\n");
|
||||
@ -533,9 +532,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
if (dialog == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Request byeRequest = dialog.createRequest(Request.BYE);
|
||||
SipURI byeURI = (SipURI) byeRequest.getRequestURI();
|
||||
String vh = transaction.getRequest().getHeader(ViaHeader.NAME).toString();
|
||||
|
@ -297,7 +297,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
|
||||
device.setStreamMode("UDP");
|
||||
}
|
||||
storager.updateDevice(device);
|
||||
cmder.catalogQuery(device, null);
|
||||
//cmder.catalogQuery(device, null);
|
||||
// 回复200 OK
|
||||
responseAck(evt);
|
||||
if (offLineDetector.isOnline(deviceId)) {
|
||||
|
@ -21,15 +21,6 @@ public interface DeviceChannelMapper {
|
||||
"'${ipAddress}', ${port}, '${password}', ${PTZType}, ${status})")
|
||||
int add(DeviceChannel channel);
|
||||
|
||||
// @Update("UPDATE device_channel " +
|
||||
// "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " +
|
||||
// "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " +
|
||||
// "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " +
|
||||
// "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status}, streamId=#{streamId}, " +
|
||||
// "hasAudio=#{hasAudio}" +
|
||||
// "WHERE deviceId=#{deviceId} AND channelId=#{channelId}")
|
||||
|
||||
|
||||
@Update(value = {" <script>" +
|
||||
"UPDATE device_channel " +
|
||||
"SET deviceId='${deviceId}'" +
|
||||
|
@ -44,7 +44,6 @@ public interface DeviceMapper {
|
||||
")")
|
||||
int add(Device device);
|
||||
|
||||
|
||||
@Update(value = {" <script>" +
|
||||
"UPDATE device " +
|
||||
"SET deviceId='${deviceId}'" +
|
||||
|
@ -169,7 +169,6 @@ public class PlayController {
|
||||
// 超时处理
|
||||
result.onTimeout(()->{
|
||||
logger.warn(String.format("设备预览/回放停止超时,streamId:%s ", streamId));
|
||||
|
||||
RequestMessage msg = new RequestMessage();
|
||||
msg.setId(DeferredResultHolder.CALLBACK_CMD_STOP + uuid);
|
||||
msg.setData("Timeout");
|
||||
|
@ -46,8 +46,8 @@
|
||||
<el-table-column label="状态" width="180" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium" v-if="scope.row.status == 1">在线</el-tag>
|
||||
<el-tag size="medium" type="info" v-if="scope.row.status == 0">离线</el-tag>
|
||||
<el-tag size="medium" v-if="scope.row.status == 1">开启</el-tag>
|
||||
<el-tag size="medium" type="info" v-if="scope.row.status == 0">关闭</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -101,7 +101,7 @@ export default {
|
||||
total: 0,
|
||||
beforeUrl: "/videoList",
|
||||
isLoging: false,
|
||||
autoList: false
|
||||
autoList: true
|
||||
};
|
||||
},
|
||||
|
||||
@ -181,7 +181,7 @@ export default {
|
||||
|
||||
//通知设备上传媒体流
|
||||
sendDevicePush: function (itemData) {
|
||||
console.log(itemData)
|
||||
console.log(itemData);
|
||||
let deviceId = this.deviceId;
|
||||
this.isLoging = true;
|
||||
let channelId = itemData.channelId;
|
||||
|
@ -67,7 +67,7 @@
|
||||
<div style="position: absolute; left: 7.25rem; top: 1.25rem" @mousedown="ptzCamera(0, 0, 1)" @mouseup="ptzCamera(0, 0, 0)"><i class="el-icon-zoom-in control-zoom-btn" style="font-size: 1.875rem;"></i></div>
|
||||
<div style="position: absolute; left: 7.25rem; top: 3.25rem; font-size: 1.875rem;" @mousedown="ptzCamera(0, 0, 2)" @mouseup="ptzCamera(0, 0, 0)"><i class="el-icon-zoom-out control-zoom-btn"></i></div>
|
||||
<div class="contro-speed" style="position: absolute; left: 4px; top: 7rem; width: 9rem;">
|
||||
<el-slider v-model="controSpeed"></el-slider>
|
||||
<el-slider v-model="controSpeed" :max="255"></el-slider>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -250,7 +250,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.control-wrapper {
|
||||
.control-wrapper-not-used {
|
||||
position: relative;
|
||||
width: 6.25rem;
|
||||
height: 6.25rem;
|
||||
|
@ -52,7 +52,7 @@
|
||||
<el-table-column label="操作" width="240" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" :ref="scope.row.deviceId + 'refbtn' " icon="el-icon-refresh" @click="refDevice(scope.row)">刷新通道</el-button>
|
||||
<el-button size="mini" icon="el-icon-s-open" type="primary" @click="showChannelList(scope.row)">查看通道</el-button>
|
||||
<el-button size="mini" icon="el-icon-s-open" v-bind:disabled="scope.row.online==0" type="primary" @click="showChannelList(scope.row)">查看通道</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -35,7 +35,7 @@ export default new VueRouter({
|
||||
path: '/channelList/:deviceId/:parentChannelId/:count/:page',
|
||||
name: 'channelList',
|
||||
component: channelList,
|
||||
},,
|
||||
},
|
||||
{
|
||||
path: '/parentPlatformList/:count/:page',
|
||||
name: 'parentPlatformList',
|
||||
|
Loading…
Reference in New Issue
Block a user