mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-24 05:57:49 +08:00
[1078] 优化多媒体数据上传处理
This commit is contained in:
parent
9d47fe30f5
commit
04bcb6dcb8
@ -37,14 +37,14 @@ public class JTMediaEventInfo {
|
|||||||
jtMediaEventInfo.setCode(buf.readUnsignedByte());
|
jtMediaEventInfo.setCode(buf.readUnsignedByte());
|
||||||
jtMediaEventInfo.setEventCode(buf.readUnsignedByte());
|
jtMediaEventInfo.setEventCode(buf.readUnsignedByte());
|
||||||
jtMediaEventInfo.setChannelId(buf.readUnsignedByte());
|
jtMediaEventInfo.setChannelId(buf.readUnsignedByte());
|
||||||
|
if (buf.readableBytes() > 0) {
|
||||||
|
ByteBuf byteBuf = buf.readSlice(28);
|
||||||
|
jtMediaEventInfo.setPositionBaseInfo(JTPositionBaseInfo.decode(byteBuf));
|
||||||
|
|
||||||
ByteBuf byteBuf = buf.readSlice(28);
|
byte[] bytes = new byte[buf.readableBytes()];
|
||||||
jtMediaEventInfo.setPositionBaseInfo(JTPositionBaseInfo.decode(byteBuf));
|
buf.readBytes(bytes);
|
||||||
|
jtMediaEventInfo.setMediaData(bytes);
|
||||||
byte[] bytes = new byte[buf.readableBytes()];
|
}
|
||||||
buf.readBytes(bytes);
|
|
||||||
jtMediaEventInfo.setMediaData(bytes);
|
|
||||||
|
|
||||||
return jtMediaEventInfo;
|
return jtMediaEventInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ public class JTMediaEventInfo {
|
|||||||
", code=" + code +
|
", code=" + code +
|
||||||
", eventCode=" + eventCode +
|
", eventCode=" + eventCode +
|
||||||
", channelId=" + channelId +
|
", channelId=" + channelId +
|
||||||
", fileSize=" + mediaData.length +
|
", fileSize=" + (mediaData == null ? 0 : mediaData.length) +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.genersoft.iot.vmp.jt1078.codec.decode;
|
package com.genersoft.iot.vmp.jt1078.codec.decode;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import io.netty.buffer.CompositeByteBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -33,6 +34,7 @@ public enum MultiPacketManager {
|
|||||||
// 所有分包接收完毕,排序后返回
|
// 所有分包接收完毕,排序后返回
|
||||||
multiPackets.sort(Comparator.comparing(MultiPacket::getNumber));
|
multiPackets.sort(Comparator.comparing(MultiPacket::getNumber));
|
||||||
ByteBuf byteBuf = Unpooled.buffer();
|
ByteBuf byteBuf = Unpooled.buffer();
|
||||||
|
System.out.println(byteBuf.maxFastWritableBytes());
|
||||||
for (MultiPacket multiPacket : multiPackets) {
|
for (MultiPacket multiPacket : multiPackets) {
|
||||||
byteBuf.writeBytes(multiPacket.getByteBuf());
|
byteBuf.writeBytes(multiPacket.getByteBuf());
|
||||||
}
|
}
|
||||||
@ -48,7 +50,7 @@ public enum MultiPacketManager {
|
|||||||
timer.schedule(new TimerTask() {
|
timer.schedule(new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
long expireTime = System.currentTimeMillis() - 2 * 1000;
|
long expireTime = System.currentTimeMillis() - 20 * 1000;
|
||||||
if (!packetTimeMap.isEmpty()) {
|
if (!packetTimeMap.isEmpty()) {
|
||||||
for (String key : packetTimeMap.keySet()) {
|
for (String key : packetTimeMap.keySet()) {
|
||||||
if (packetTimeMap.get(key) < expireTime) {
|
if (packetTimeMap.get(key) < expireTime) {
|
||||||
|
|||||||
@ -31,6 +31,16 @@ public class J0801 extends Re {
|
|||||||
protected Rs decode0(ByteBuf buf, Header header, Session session) {
|
protected Rs decode0(ByteBuf buf, Header header, Session session) {
|
||||||
JTMediaEventInfo mediaEventInfo = JTMediaEventInfo.decode(buf);
|
JTMediaEventInfo mediaEventInfo = JTMediaEventInfo.decode(buf);
|
||||||
log.info("[JT-多媒体数据上传]: {}", mediaEventInfo);
|
log.info("[JT-多媒体数据上传]: {}", mediaEventInfo);
|
||||||
|
File file = new File("/home/lin/" + header.getSn() + ".jpg");
|
||||||
|
try {
|
||||||
|
FileOutputStream fileOutputStream = new FileOutputStream(file);
|
||||||
|
fileOutputStream.write(mediaEventInfo.getMediaData());
|
||||||
|
fileOutputStream.flush();
|
||||||
|
fileOutputStream.close();
|
||||||
|
}catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0801", null, mediaEventInfo);
|
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0801", null, mediaEventInfo);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -737,8 +737,8 @@ public class jt1078ServiceImpl implements Ijt1078Service {
|
|||||||
shootingCommand.setCommand(1);
|
shootingCommand.setCommand(1);
|
||||||
shootingCommand.setTime(0);
|
shootingCommand.setTime(0);
|
||||||
shootingCommand.setSave(0);
|
shootingCommand.setSave(0);
|
||||||
shootingCommand.setResolvingPower(0xff);
|
shootingCommand.setResolvingPower(0x03);
|
||||||
shootingCommand.setQuality(1);
|
shootingCommand.setQuality(5);
|
||||||
shootingCommand.setBrightness(125);
|
shootingCommand.setBrightness(125);
|
||||||
shootingCommand.setContrastRatio(60);
|
shootingCommand.setContrastRatio(60);
|
||||||
shootingCommand.setSaturation(60);
|
shootingCommand.setSaturation(60);
|
||||||
@ -749,19 +749,24 @@ public class jt1078ServiceImpl implements Ijt1078Service {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
List<Long> ids = (List<Long>) jt1078Template.shooting(phoneNumber, j8801, 300);
|
List<Long> ids = (List<Long>) jt1078Template.shooting(phoneNumber, j8801, 300);
|
||||||
log.info("[JT-抓图] 抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
log.info("[JT-抓图] 抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
||||||
|
log.info("[JT-抓图] 请求上传图片,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
||||||
J8805 j8805 = new J8805();
|
J8805 j8805 = new J8805();
|
||||||
j8805.setMediaId(ids.get(0));
|
j8805.setMediaId(ids.get(0));
|
||||||
j8805.setDelete(1);
|
j8805.setDelete(1);
|
||||||
log.info("[JT-抓图] 请求上传图片,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
JTMediaEventInfo mediaEventInfo = (JTMediaEventInfo)jt1078Template.uploadMediaDataForSingle(phoneNumber, j8805, 600);
|
||||||
JTMediaEventInfo mediaEventInfo = (JTMediaEventInfo)jt1078Template.uploadMediaDataForSingle(phoneNumber, j8805, 300);
|
|
||||||
if (mediaEventInfo == null) {
|
if (mediaEventInfo == null) {
|
||||||
log.info("[]");
|
log.info("[]");
|
||||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), ErrorCode.ERROR100.getMsg());
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), ErrorCode.ERROR100.getMsg());
|
||||||
}
|
}
|
||||||
log.info("[JT-抓图] 图片上传完成,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
log.info("[JT-抓图] 图片上传完成,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
||||||
try {
|
try {
|
||||||
outputStream.write(mediaEventInfo.getMediaData());
|
if (outputStream.isReady()) {
|
||||||
outputStream.flush();
|
outputStream.write(mediaEventInfo.getMediaData());
|
||||||
|
outputStream.flush();
|
||||||
|
}else {
|
||||||
|
log.info("[JT-抓图] 请求可能已经结束,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.info("[JT-抓图] 数据写入异常,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId, e);
|
log.info("[JT-抓图] 数据写入异常,抓图编号: {}, 设备编号: {}, 通道编号: {}", ids.get(0), phoneNumber, channelId, e);
|
||||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "数据写入异常");
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "数据写入异常");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user