You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

232 lines
4.4 KiB

using System;
namespace EC.Entity.Video
{
public class MonitorCamera
{
public MonitorCamera()
{
}
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 站点id
/// </summary>
public string SiteId { get; set; }
/// <summary>
/// 相机名称
/// </summary>
public string CameraName { get; set; }
/// <summary>
/// 相机类型
/// </summary>
public int Type { get; set; }
/// <summary>
/// 相机ip
/// </summary>
public string Ip { get; set; }
/// <summary>
/// 相机端口
/// </summary>
public int Port { get; set; }
/// <summary>
/// 认证用户名
/// </summary>
public string User { get; set; }
/// <summary>
/// 认证密码
/// </summary>
public string Password { get; set; }
/// <summary>
/// 纬度
/// </summary>
public decimal Latitude { get; set; }
/// <summary>
/// 经度
/// </summary>
public decimal Longitude { get; set; }
/// <summary>
/// 高度
/// </summary>
public decimal Height { get; set; }
/// <summary>
/// Rtsp地址
/// </summary>
public string PreRtsp { get; set; }
/// <summary>
/// 分析 Rtsp 地址
/// </summary>
public string AnalysisRtsp { get; set; }
/// <summary>
/// 录像 Rtsp 地址通道3
/// </summary>
public string RecordRtsp { get; set; }
/// <summary>
/// 云台控制ip
/// </summary>
public string CloudCtrlIp { get; set; }
/// <summary>
/// 云台控制端口
/// </summary>
public int CloudCtrlPort { get; set; }
/// <summary>
/// 流媒体服务器id
/// </summary>
public string StreamingMediaId { get; set; }
/// <summary>
/// 录像机id
/// </summary>
public string VideoRecorderId { get; set; }
/// <summary>
///
/// </summary>
public int Factory { get; set; }
/// <summary>
/// 相机预览通道
/// </summary>
public int Channel { get; set; }
/// <summary>
/// 样式
/// </summary>
public int Style { get; set; }
/// <summary>
/// 左夹角
/// </summary>
public double LeftAngle { get; set; }
/// <summary>
/// 右夹角
/// </summary>
public double RightAngle { get; set; }
/// <summary>
/// 视野中央有效距离
/// </summary>
public double ViewDistance { get; set; }
/// <summary>
/// 采样帧率
/// </summary>
public int FrameRate { get; set; }
/// <summary>
/// 最大跟踪范围
/// </summary>
public int MaxRange { get; set; }
/// <summary>
/// 状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 零方位角(正北夹角)
/// </summary>
public double ZeroAzimuth { get; set; }
/// <summary>
/// 安装垂直角(上下-90°~90°)
/// </summary>
public double FixedAngle { get; set; }
/// <summary>
/// 最大仰角
/// </summary>
public double MaxElevation { get; set; }
/// <summary>
/// 最大可视距离
/// </summary>
public double MaxVisibleDistance { get; set; }
/// <summary>
/// 变倍因子
/// </summary>
public double ZoomFactor { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateBy { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string UpdateBy { get; set; }
/// <summary>
/// 更新日期
/// </summary>
public DateTime? UpdateTime { get; set; }
public MonitorCamera(string cameraIp, int port, string userName, string passWord, int factory = 0, int type = 0)
{
Ip = cameraIp;
Port = port;
User = userName;
Password = passWord;
Factory = factory;
Type = type;
}
public string RtspURL(int width = 640)
{
if (width < 1200)
{
if (!string.IsNullOrEmpty(RecordRtsp))
{
return RecordRtsp;
}
}
if (!string.IsNullOrEmpty(PreRtsp))
{
return PreRtsp;
}
string rtspformat = "rtsp://{0}:{1}@{2}:554";
//switch (Factory)
//{
// case (int)Video.HK:
// rtspformat = "rtsp://{0}:{1}@{2}:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_2";
// break;
// case (int)VidoeType.DH:
// rtspformat = "rtsp://{0}:{1}@{2}:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif";
// break;
// //case VidoeType.YS:
// // return "";
//}
string url = string.Format(rtspformat, User, Password, Ip);
return url;
}
}
}