|
|
|
@ -89,6 +89,8 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine(ipCamera.DeviceUrl);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (var scope = _applicationServices.CreateScope())
|
|
|
|
|
{
|
|
|
|
|
var productNumber = "onvifcamera";
|
|
|
|
@ -123,13 +125,14 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
{
|
|
|
|
|
Name = "摄像头",
|
|
|
|
|
Number = ipCamera.Id,
|
|
|
|
|
Ip = ipCamera.Ip,
|
|
|
|
|
Icon = "camera",
|
|
|
|
|
ProductId = product.Id,
|
|
|
|
|
NodeId = node.Id
|
|
|
|
|
};
|
|
|
|
|
var fileName = $"ffmpeg-{Helper.Instance.GetRunTime()}{(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ".exe" : "")}";
|
|
|
|
|
var file = Path.Combine(this._env.WebRootPath, fileName);
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Push", "否", DeviceDataType.String, "推流"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Push", "是", DeviceDataType.String, "推流"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Record", "否", DeviceDataType.String, "录像"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("ffmpeg.file", file, DeviceDataType.String, "ffmpeg路径", hidden: true));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("ffmpeg.args", this._configuration["ffmpeg.args"], DeviceDataType.String, "ffmpeg.args", hidden: true));
|
|
|
|
@ -141,6 +144,7 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
device.AddorUpdateData(device.CreateData("subhls", $"http://{this._configuration["stream.hls"]}/live/sub{ipCamera.Id}.m3u8", DeviceDataType.String, "子码流hls"));
|
|
|
|
|
device.ConnectId = this._configuration["connectId"];
|
|
|
|
|
deviceRepo.Add(device);
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
var profiles = this._onvifDeviceManagement.GetProfiles(ipCamera.DeviceUrl, ipCamera.MediaUrl);
|
|
|
|
|
var needAuth = false;
|
|
|
|
@ -194,6 +198,8 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainSnapshotUri", ipCamera.MainSnapshotUri, DeviceDataType.String, "主码流截图地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubStreamUri", ipCamera.SubStreamUri, DeviceDataType.String, "子码流地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubSnapshotUri", ipCamera.SubSnapshotUri, DeviceDataType.String, "子码流截图地址"));
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var jpgBytes = ScreenShot(device);
|
|
|
|
|
using (var stream = new MemoryStream(jpgBytes))
|
|
|
|
|
{
|
|
|
|
@ -211,6 +217,11 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ex.PrintStack();
|
|
|
|
|
}
|
|
|
|
|
deviceRepo.SaveChanges();
|
|
|
|
|
var deviceDto = device.To<EditDeviceModel>();
|
|
|
|
|
deviceDto.ProductNumber = product.Number;
|
|
|
|
@ -226,6 +237,11 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
this.SendToServer(Methods.EditDataResponse, dataList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ex.PrintStack();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|