社区
CSS
帖子详情
视频出现黑边怎么去?
菜鸟zero队
2019-04-08 03:15:52
视屏引入后,有黑边出现,给其固定宽度,也没有用,100%也没有用,怎么办
?各位大佬求解决方案
...全文
560
1
打赏
收藏
视频出现黑边怎么去?
视屏引入后,有黑边出现,给其固定宽度,也没有用,100%也没有用,怎么办?各位大佬求解决方案
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
北境程序员
2019-09-04
打赏
举报
回复
object-fit: fill;加这个属性就可以了
IPhone手机
视频
转换工具(WinX iPhone Video Converter) v5.0.2 特别版.zip
WinX iPhone Video Converter 中文注册版是一个全面的,客户友好的
视频
转换工具,转换广泛的
视频
到iPhone(包括iPhone4/4S/5/5S/5C)与惊人速度快。有了它,玩iPhone的
视频
在旅途中会出的问题。 WinX iPhone Video Converter主要功能 : WinX iPhone Video Converter 软件能够转换普通
视频
格式,如AVI,MP4,WMV,MPEG,FLV,高清格式AVCHD www.dayanzai.me,M2TS,高清电视,BDAV,MKV到iPhone。此外,你也可以转换JVC,索尼,松下和佳能摄像机的
视频
到iPhone(iPhone4S/5/5S/5C),iPad的(空气/新迷你),苹果电视(1-3),苹果高清电视时,itunes ,苹果一般的MP4,MOV,M4V
视频
。你甚至使提取音频为MP3和捕捉屏幕截图为PNG图片,通过这款iPhone
视频
转换器,增加乐趣。 支持高清
视频
1080p高清/4K
视频
,MKV,AVCHD格式,TS,MOD,TOD,蓝光
视频
(MTS,M2TS)等 支持标清
视频
YouTube上的
视频
www.dayanzai.me,支持AVI,WMV,MP4,VOB,MPEG,MOV,3GP,谷歌电视,的WebM,ASF等 输出
视频
配置 MP4,H.264,MOV,M4V,MP3,iPhone,iPad,苹果电视,itunes的 编辑
视频
调整
视频
/音频参数,添加字幕,合并,修剪,裁剪等 WinX iPhone Video Converter特色: 转换成标准的
视频
到iPhone 这款iPhone转换器是能够转换几乎所有标准的
视频
格式转换为iPhone手机,也就是说,转换AVI到iPhone5S/5℃,WMV到iPhone手机的FLV到iPhone,MPEG到iPhone手机,这一特性使得它能够把任何
视频
在您的iPhone和享受他们随时随地。 转换高清
视频
到iPhone 除了定期的影片,你仍然可以高清
视频
转换到iPhone。它同样转换的AVCHD,M2TS,高清电视,BDTV,MKV到iPhone5S/5C,iPad的空气/迷你www.dayanzai.me,苹果电视/3,苹果电视的高清无任何
视频
和音频质量损失,同时播放你的苹果便携设备。 玩高清摄像机的
视频
在iPhone上 使您可以转换所有您最喜爱的自我拍摄的
视频
到iPhone,包括JVC,索尼,松下和佳能MOD,TOD,MTS,M2TS www.dayanzai.me
视频
到iPhone。你难忘的时刻将很容易
出现
这种摄像机到iPhone
视频
转换器。 编辑/裁剪/合并/
视频
和添加字幕 该iPhone
视频
转换器,可以进行
视频
剪辑,减少
黑边
通过修剪和裁剪,合并多个
视频
来创建一个新的。除了使内部字幕轨道,它允许你添加从互联网上下载到的影片外挂字幕文件。 转换速度快 多核CPU和超线程技术的采用,给你极致高速转换的经验。该iPhone
视频
转换软件,为您带来高达15倍的实时
视频
转换的速度把
视频
到iPhone。 高
视频
和音频质量的原 有了这个坚实的
视频
到iPhone转换软件,你心爱的
视频
将被显示为原有的在您的iPhone。内置高品质引擎和可选的高级反交错加速器将输出
视频
和音频,永远不会让你失望。 WinX iPhone Video Converter中文语言选择: 安装后如果默认不是中文界面,可以在软件的右上角“感叹号”图标中选择语言。 WinX iPhone Video Converter截图:
Disney Plus Ultrawide Fullscreen Support-crx插件
语言:English 将迪士尼Plus上的21:9
视频
切换为超宽显示器上的全屏显示(删除黑条) 在Chrome工具栏上添加了一个按钮,以切换当前不支持的迪士尼以及超宽显示器上的
视频
的全屏缩放。 这对于21:9标题(迪士尼电影中的大多数电影)有用,在
出现
标题框的情况下,标题不再在侧面和顶部带有黑条,从而使您可以利用超宽显示器的整个尺寸来获得更好的显示效果观看体验。 只需添加扩展名,然后在查看迪士尼加电影的同时单击新按钮即可查看效果。 版本2.3修复了字幕丢失错误
海康
视频
卡动态库
using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; namespace DS40XXSDK { #region enum ///
/// 板卡类型 ///
public enum BOARD_TYPE_DS : uint { DS400XM = 0, //M卡 DS400XH = 1, //H卡 DS4004HC = 2, //4004HC DS4008HC = 3, //4008HC DS4016HC = 4, //4016HC DS4001HF = 5, //4001HF DS4004HF = 6, //4004HF DS4002MD = 7, //4002MD DS4004MD = 8, //4004MD DS4016HCS = 9, //4016HCS DS4002HT = 10, //4002HT DS4004HT = 11, //4004HT DS4008HT = 12, //4008HT DS4004HC_PLUS = 13, //4004HC+ DS4008HC_PLUS = 14, //4008HC+ DS4016HC_PLUS = 15, //4016HC+ DS4008HF = 16, //4008HF DS4008MD = 17, //4008MD DS4008HS = 18, //4008HS DS4016HS = 19, //4016HS INVALID_BOARD_TYPE = 0xffffffff, } ///
///
视频
预览格式 ///
public enum TypeVideoFormat { vdfRGB8A_233 = 0x00000001, vdfRGB8R_332 = 0x00000002, vdfRGB15Alpha = 0x00000004, ///
/// 16位RGB
视频
压缩格式 ///
vdfRGB16 = 0x00000008, ///
/// 24位RGB
视频
压缩格式 ///
vdfRGB24 = 0x00000010, vdfRGB24Alpha = 0x00000020, vdfYUV420Planar = 0x00000040, ///
/// YUV422
视频
压缩格式 ///
vdfYUV422Planar = 0x00000080, vdfYUV411Planar = 0x00000100, vdfYUV420Interspersed = 0x00000200, vdfYUV422Interspersed = 0x00000400, vdfYUV411Interspersed = 0x00000800, vdfYUV422Sequence = 0x00001000, /* U0, Y0, V0, Y1: For VO overlay */ vdfYUV422SequenceAlpha = 0x00002000, /* U0, Y0, V0, Y1: For VO overlay, with low bit for alpha blending */ vdfMono = 0x00004000, /* 8 bit monochrome */ vdfYUV444Planar = 0x00008000, }; ///
///
视频
制式 ///
public enum VideoStandard_t : uint { ///
/// 无
视频
信号 ///
StandardNone = 0x80000000, ///
/// NTSC制式 ///
StandardNTSC = 0x00000001, ///
/// PAL制式 ///
StandardPAL = 0x00000002, StandardSECAM = 0x00000004, } ; ///
/// 编码图像分辨率 ///
public enum PictureFormat_t { ENC_CIF_FORMAT = 0, ENC_QCIF_FORMAT = 1, ENC_2CIF_FORMAT = 2, ENC_4CIF_FORMAT = 3, ENC_QQCIF_FORMAT = 4, ENC_CIFQCIF_FORMAT = 5, ENC_CIFQQCIF_FORMAT = 6, ENC_DCIF_FORMAT = 7 }; ///
/// 码流控制方式 ///
public enum BitrateControlType_t { ///
/// 变码率 ///
brCBR = 0, ///
/// 恒定码率 ///
brVBR = 1, }; public enum FrameType_t { PktError = 0, PktIFrames = 0x0001, PktPFrames = 0x0002, PktBBPFrames = 0x0004, PktAudioFrames = 0x0008, PktMotionDetection = 0x00010, PktDspStatus = 0x00020, PktOrigImage = 0x00040, PktSysHeader = 0x00080, PktBPFrames = 0x00100, PktSFrames = 0x00200, PktSubIFrames = 0x00400, PktSubPFrames = 0x00800, PktSubBBPFrames = 0x01000, PktSubSysHeader = 0x02000 }; #endregion #region struct ///
/// 板卡信息结构体 ///
public struct DS_BOARD_DETAIL { ///
/// 板卡类型 ///
BOARD_TYPE_DS type; ///
/// 序列号 /// BYTE sn[16]; ///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] byte[] sn; ///
/// 板卡包含的DSP个数 ///
uint dspCount; ///
/// 板卡上第一个DSP的索引 ///
uint firstDspIndex; ///
/// 板卡包含的编码通道个数 ///
uint encodeChannelCount; ///
/// 板卡上第一个编码通道的索引 ///
uint firstEncodeChannelIndex; ///
/// 板卡包含的解码通道个数 ///
uint decodeChannelCount; ///
/// 板卡上第一个解码通道的索引 ///
uint firstDecodeChannelIndex; ///
/// 板卡包含的
视频
输出通道个数 ///
uint displayChannelCount; ///
/// 板卡上第一个
视频
输出通道的索引 ///
uint firstDisplayChannelIndex; uint reserved1; uint reserved2; uint reserved3; ///
/// 硬件版本,format:major.minor.build,major:bit 16-19,minor: bit 8-15,build: bit 0-7 ///
uint version; } ///
/// DSP信息结构体 ///
public struct DSP_DETAIL { ///
/// 此DSP所包含的编码通道个数 ///
uint encodeChannelCount; ///
/// 此DSP上第一个编码通道在所有编码通道中的索引 ///
uint firstEncodeChannelIndex; ///
/// 此DSP所包含的解码通道个数 ///
uint decodeChannelCount; ///
/// 此DSP上第一个解码通道在所有解码通道中的索引 ///
uint firstDecodeChannelIndex; ///
/// 此DSP包含的显示通道个数 ///
uint displayChannelCount; ///
/// 此DSP上第一个显示通道在所有显示通道中的索引 ///
uint firstDisplayChannelIndex; uint reserved1; uint reserved2; uint reserved3; uint reserved4; } ///
/// 特殊功能结构体 ///
public struct CHANNEL_CAPABILITY { ///
/// 音频预览 ///
byte[] bAudioPreview; ///
/// 报警信号 ///
byte[] bAlarmIO; ///
/// 看家狗 ///
byte[] bWatchDog; } ///
/// 版本信息 ///
public struct PVERSION_INFO { ///
/// DSP版本号,DSP的BUILD号,用于软件升级时标明该版本的最后修改时间 ///
UInt64 DspVersion, DspBuildNum; ///
/// Driver版本号,Driver的BUILD号,用于软件升级时标明该版本的最后修改时间 ///
UInt64 DriverVersion, DriverBuildNum; ///
/// SDK版本号,SDK的BUILD号,用于软件升级时标明该版本的最后修改时间 ///
UInt64 SDKVersion, SDKBuildNum; } ///
/// 显示窗口内的矩形区域 ///
//[StructLayout(LayoutKind. //public struct RECT //{ // public Int32 left; // public Int32 top; // public Int32 right; // public Int32 bottom; //} ///
/// 帧统计信息结构体 ///
public struct PFRAMES_STATISTICS { ///
///
视频
帧 ///
UInt64 VideoFrames; ///
/// 音频帧 ///
UInt64 AudioFrames; ///
/// 丢失帧 ///
UInt64 FramesLost; ///
/// 丢失的码流(字节) ///
UInt64 QueueOverflow; ///
/// 当前的帧率(bps) ///
UInt64 CurBps; } ///
/// 版本信息结构体 ///
public struct PHW_VERSION { ///
/// DSP程序的版本号和Build号 ///
UInt64 DspVersion, DspBuildNum; ///
/// 驱动程序的版本号和Build号 ///
UInt64 DriverVersion, DriverBuildNum; ///
/// SDK 的版本号和Build号 ///
UInt64 SDKVersion, SDKBuildNum; } ///
/// 系统时间 ///
public struct SYSTEMTIME { ushort wYear; ushort wMonth; ushort wDayOfWeek; ushort wDay; ushort wHour; ushort wMinute; ushort wSecond; ushort wMilliseconds; } #endregion #region delegate ///
/// 原始图像流设置 /// /// typedef void (*IMAGE_STREAM_CALLBACK)(UINT channelNumber,void *context); ///
///
通道号 ///
设备上下文 public delegate void IMAGE_STREAM_CALLBACK(uint channelNumber, IntPtr context); ///
/// 编码数据流直接读取回调函数 /// /// typedef int (*STREAM_DIRECT_READ_CALLBACK)(UInt64 channelNumber,void *DataBuf,DWORD Length,int FrameType,void *context); ///
///
通道号 ///
缓冲区地址 ///
缓冲区长度 ///
缓冲区数据帧类型 ///
设备上下文 ///
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] //public delegate int STREAM_DIRECT_READ_CALLBACK(uint channelNumber, byte[] DataBuf, uint Length, FrameType_t FrameType, IntPtr context); public delegate int STREAM_DIRECT_READ_CALLBACK(int channelNumber, IntPtr DataBuf, int Length, FrameType_t FrameType, IntPtr context); //public unsafe delegate int STREAM_DIRECT_READ_CALLBACK(uint channelNumber, void * DataBuf, uint Length, int FrameType, IntPtr context); ///
/// 直接读取码流回调函数 /// /// typedef int (*STREAM_READ_CALLBACK)(UInt64 channelNumber, void *context) ///
///
通道号 ///
设备上下文 ///
public delegate int STREAM_READ_CALLBACK(UInt64 channelNumber, IntPtr context); ///
/// 移动侦测结果回调函数 /// /// typedef void (*MOTION_DETECTION_CALLBACK)(UInt64 channelNumber, BOOL bMotionDetected,void *context) ///
///
通道号 ///
/// 移动侦测发生标志,如果当前通道所设置的移动侦测 /// 区域内产生了移动侦测,则被置为True;如果当前通道所设置的移动侦测区域内自上 /// 一次产生移动侦测后delay秒内没有发生移动侦测,则被置为False。 /// ///
设备上下文 public delegate void MOTION_DETECTION_CALLBACK(UInt64 channelNumber, bool bMotionDetected, IntPtr context); ///
/// 画图回调函数 /// /// #define DRAWFUN(x) void (CALLBACK* x)(Int32 nPort,HDC hDc,Int32 nUser) ///
///
通道号 ///
offscreen表面设备上下文,相当于显示窗口中的DC ///
用户数据 public delegate void DrawFun(Int32 nPort, IntPtr HDC, Int32 nUser); ///
/// 解码回调函数 /// /// typedef void (*DECODER_VIDEO_CAPTURE_CALLBACK)(UINT nChannelNumber, void *DataBuf,UINT width,UINT height,UINT nFrameNum,UINT nFrameTime, SYSTEMTIME *pFrameAbsoluteTime,void *context) ///
///
解码通道句柄 ///
缓冲区地址 ///
图像宽度 ///
图像高度 ///
捕获的当前帧的序号 ///
捕获的当前帧的相对时间,单位:毫秒 ///
捕获的当前帧的绝对时间 ///
设备上下文 public delegate void DECODER_VIDEO_CAPTURE_CALLBACK(uint nChannelNumber, IntPtr DataBuf, uint width, uint height, uint nFrameNum, uint nFrameTime, SYSTEMTIME pFrameAbsoluteTime, IntPtr context); ///
/// 创建索引完成回调函数 /// /// typedef void (*FILE_REF_DONE_CALLBACK)(UINT nChannel,UINT nSize) ///
///
通道号 ///
索引大小(暂时无效,以后可以增加索引导出、导入功能) public delegate void FILE_REF_DONE_CALLBACK(uint nChannel, uint nSize); #endregion ///
/// DS40xxSDK.dll ///
public class HikVisionSDK { ///
/// 状态 ///
public static readonly List
state = new List
(new string[]{ "", "正在打开", "音频信号丢失", "
视频
信号丢失", "有物体移动", //0-4 "自动分割录像", "开始录像", "停止录像", "启动声音监听", "停止声音监听", //5-9 "启动
视频
预览", "停止
视频
预览", "启动录像", "停止录像", "启动
视频
报警", //10-14 "关闭
视频
报警", "启动音频报警", "停止音频报警", "启动移动侦测", "停止移动侦测", //15-19 "启动
视频
遮挡", "关闭
视频
遮挡", "开始屏幕输出", "停止屏幕输出", "启动
视频
LOGO", //20-24 "停止
视频
LOGO", "开始
视频
OSD", "停止
视频
OSD", "切换为黑白
视频
", "切换为彩色
视频
", //25-29 "切换为黑屏显示", "切换为白屏显示", "
视频
色彩复位", "启动全屏显示", "采集卡已经加载", //30-34 "采集卡已经卸截", "
视频
服务启动成功", "
视频
服务已停止", "静音", "音量恢复", //35-39 "云台控制命令发送", "系统
出现
未知错误", "录像文件大小", "配置端口号成功", "连接服务端成功", //40-44 "正在连接", "开始接收图象", "异常退出", "接收完毕,退出", "无法联系服务端", //45-49 "服务端拒绝访问", "无效", "停止客户端连接", "图像抓取成功", "初始化服务端网络连接成功", //50-54 "
视频
服务启动失败", "退出全屏预览", "", "", "" //55-59 }); //可以用新版函数替代功能或者无效的API //GetTotalChannels:可用GetEncodeChannelCount替代 //GetTotalDSPs:可用GetDspCount 替代 //SetupDateTime:4.0版本起无效 //HW_GetChannelNum:无效,请使用GetBoardDetail //HW_GetDeviceSerialNo:无效,请使用GetBoardDetail //HW_SetVideoOutStandard:无效,请使用SetDisplayStandard或SetDefaultVideoStandard //HW_SetDspDeadlockMsg:无效 //HW_ResetDsp:无效 //HW_SetDisplayPara:DISPLAY_PARA结构中bToVideoOut无效,MD卡模拟
视频
输出功能 //已经整合到
视频
矩阵之中。 #region 流类型宏定义 ///
///
视频
流 /// #define STREAM_TYPE_VIDEO ///
private const int STREAM_TYPE_VIDEO = 1; ///
/// 音频流 /// #define STREAM_TYPE_AUDIO ///
private const int STREAM_TYPE_AUDIO = 2; ///
/// 音
视频
复合流 /// #define STREAM_TYPE_AVSYNC ///
private const int STREAM_TYPE_AVSYNC = 3; #endregion #region 1.板卡初始化及卸载 ///
/// 1.1初始化DSP InitDSPs /// 说 明: 初始化系统中每一块板卡,应在应用软件程序启动时完成。如果返回值为0则表 /// 明初始化失败,可能没有找到相应的DSP软件模块。 /// /// int __stdcall InitDSPs() ///
///
系统内可用的编码通道个数。
[DllImport("DS40xxSDK.dll")] public static extern int InitDSPs(); ///
/// 1.2卸载DSP DeInitDSPs /// 说 明: 关闭每一块板卡上的功能,应在应用软件程序退出时调用。 /// /// int __stdcall DeInitDSPs() ///
///
0
[DllImport("DS40xxSDK.dll")] public static extern int DeInitDSPs(); #endregion #region 2.板卡信息获取 ///
/// 2.1获取系统中板卡的张数GetBoardCount /// 说 明: 获取系统中所有板卡的张数,包含编码卡和解码卡。 /// /// unsigned int __stdcall GetBoardCount() ///
///
系统中板卡的总张数。
[DllImport("DS40xxSDK.dll")] public static extern uint GetBoardCount(); ///
/// 2.2获取系统中DSP的个数GetDspCount /// 说 明: 获取系统中所有板卡的DSP的个数。 /// /// unsigned int __stdcall GetDspCount() ///
///
系统中DSP的总个数
[DllImport("DS40xxSDK.dll")] public static extern uint GetDspCount(); ///
/// GetTotalDSPs:可用GetDspCount 替代 /// 获得实际可用DSP ///
///
[DllImport("DS40xxSDK.dll")] public static extern int GetTotalDSPs(); ///
/// 2.3获取系统中编码通道的个数GetEncodeChannelCount /// 说 明: 获取系统中所有编码卡的编码通道总个数,包含H系列和HC系列编码卡。 /// /// unsigned int __stdcall GetEncodeChannelCount() ///
///
系统中编码通道的个数
[DllImport("DS40xxSDK.dll")] public static extern uint GetEncodeChannelCount(); ///
/// 2.4获取系统中解码通道的个数GetDecodeChannelCount /// 说 明: 获取系统中MD卡的解码通道个数 /// /// unsigned int __stdcall GetDecodeChannelCount() ///
///
[DllImport("DS40xxSDK.dll")] public static extern uint GetDecodeChannelCount(); ///
/// 2.5获取系统中解码显示通道的个数GetDisplayChannelCount /// 说 明: 获取系统中MD卡显示通道的个数,即模拟
视频
输出通道的个数 /// /// unsigned int __stdcall GetDisplayChannelCount() ///
///
系统中显示通道的个数
[DllImport("DS40xxSDK.dll")] public static extern uint GetDisplayChannelCount(); ///
/// 2.6获取板卡详细信息GetBoardDetail /// 说 明: 获取某张板卡的详细信息 /// /// int __stdcall GetBoardDetail(UINT boardNum,DS_BOARD_DETAIL *pBoardDetail) ///
///
板卡索引 ///
板卡信息 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetBoardDetail(uint boardNum, ref DS_BOARD_DETAIL pBoardDetail); ///
/// 2.7获取DSP详细信息GetDspDetail /// 说 明: 获取某个DSP的详细信息 /// /// int __stdcall GetDspDetail(UINT dspNum,DSP_DETAIL *pDspDetail) ///
///
DSP索引 ///
DSP信息 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetDspDetail(uint dspNum, ref DSP_DETAIL pDspDetail); ///
/// 2.8获取板卡型号及序列号信息GetBoardInfo /// 说 明: 获取板卡的型号及序列号信息 /// /// int __stdcall GetBoardInfo(HANDLE hChannelHandle, UInt64 *BoardType, UCHAR *SerialNo) ///
///
通道句柄 ///
板卡型号 ///
/// 板卡ID号, 内容为板卡序列号的ASCII的数值,次序为SerialNo[0] 对应最高位, /// SerialNo[11]对应最低位。比如卡号为“40000002345”的值对应为 4,0,0,0,0,1,0,0,2,3,4,5 的整形数组。 /// ///
成功为0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetBoardInfo(IntPtr hChannelHandle, UInt64 BoardType, byte[] SerialNo); ///
/// 2.9获取板卡特殊功能信息GetCapability /// 说 明: 获取板卡特殊功能信息 /// /// int __stdcall GetCapability(HANDLE hChannelHandle, CHANNEL_CAPABILITY *Capability) ///
///
通道句柄 ///
特殊功能 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetCapability(IntPtr hChannelHandle, CHANNEL_CAPABILITY Capability); ///
/// 2.10获取板卡SDK信息GetSDKVersion /// 说 明: 获取当前所使用的DSP、Driver、SDK版本号 /// /// int __stdcall GetSDKVersion(PVERSION_INFO VersionInfo) ///
///
版本信息 ///
成功返回0;失败返回错误号。
[DllImport("DS40xxSDK.dll")] public static extern int GetSDKVersion(ref PVERSION_INFO VersionInfo); ///
/// 2.11获取板卡SDK及DSP错误报告GetLastErrorNum*,此函数只对H卡有效 /// 说 明: 获取SDK及DSP错误报告。此函数只对H卡有效,用于HC卡上返回0且无效 /// /// int __stdcall GetLastErrorNum(HANDLE hChannelHandle, UInt64 *DspError, UInt64 *SdkError) ///
///
通道句柄 ///
DSP错误 ///
SDK错误 ///
DSP错误信息、SDK错误信息
[DllImport("DS40xxSDK.dll")] public static extern int GetLastErrorNum(IntPtr hChannelHandle, ref int DspError, ref int SdkError); #endregion #region 3.编码卡API #region 3.1通道打开及关闭 ///
/// 3.1.1打开通道ChannelOpen /// 说 明: 打开通道,获取编码通道的操作句柄,与通道相关的操作需使用相对应的句柄。 /// /// HANDLE __stdcall ChannelOpen(int ChannelNum) ///
///
通道号(从0开始) ///
成功返回有效句柄(值可能为0);失败返回0xFFFFFFFF。
[DllImport("DS40xxSDK.dll")] public static extern IntPtr ChannelOpen(int ChannelNum); ///
/// 3.1.2关闭通道ChannelClose /// 说 明: 关闭通道,释放相关资源 /// /// int __stdcall ChannelClose(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int ChannelClose(IntPtr hChannelHandle); #endregion #region 3.2
视频
预览 #region 3.2.1 Overlay预览模式 // 释 义: overlay预览模式 //Overlay通常被称为重叠页面或者是覆盖层,是一种需要特定的硬件支持的页面,通常 //被用于显示实时
视频
于主页面之上,而不需要Blit操作到主页面或用任何方法改变主页面的 //内容。使用该方式进行预览可以提高预览的画质和降低CPU利用率。 ///
/// 3.2.1.1设置
视频
预览模式SetPreviewOverlayMode /// 说 明: SDK自3.2版本起在部分显卡中实现了HC卡以overlay方式预览的功能(此功 /// 能不支持与H卡混插的状态下),可以提高预览的画质和降低CPU利用率。当预览画面小 /// 于704*576时,需要调用该函数来启动overlay模式,如不设置则自动切换到offscreen模式 /// 进行预览显示,当预览画面大于704*576时,SDK自动切换到overlay模式 /// /// int __stdcall SetPreviewOverlayMode(BOOL bTrue) ///
///
是否设置overlay预览方式,也适用于MD卡 ///
0表示显卡支持板卡的overlay预览方式;其他值表示显卡不支持
[DllImport("DS40xxSDK.dll")] public static extern int SetPreviewOverlayMode(bool bTrue); ///
/// 3.2.1.2设置overlay关键色SetOverlayColorKey /// 注意:需要在StartVideoPreview前调用该函数。 /// 说 明: 板卡在显示范围小于704*576时,调用SetPreviewOverlayMode可以开启overlay /// 预览模式,需调用SetOverlayColorKey设置overlay关键色;当显示范围大于704*576时, /// 板卡自动切换到overlay预览模式,关键色默认设置为RGB(10,10,10),也可调用 /// SetOverlayColorKey修改关键色。在这两种情况下,都需要将显示窗口的底色设置为和关键 /// 色相一致。否则图像将难以显示。 /// /// /// int __stdcall SetOverlayColorKey(COLORREF DestColorKey) ///
///
overlay关键色参数(RGB(*,*,*)) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetOverlayColorKey(int DestColorKey); //public static extern int SetOverlayColorKey(Color DestColorKey); ///
/// 3.2.1.3恢复当前丢失的表面RestoreOverlay /// 说 明: 恢复当前丢失的表面,例如:当系统按下CTRL+ALT+DEL时系统的OVERLAY /// 表面会被强制关闭,调用该函数可以恢复OVERLAY表面 /// /// int __stdcall RestoreOverlay() ///
///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int RestoreOverlay(); #endregion #region 3.2.2 开启及停止
视频
预览 ///
/// 3.2.2.1开启
视频
预览StartVideoPreview /// 说 明: 启动
视频
预览,调用SetPreviewOverlayMode后,可进行overlay模式预览,否则, /// 将默认采用offscreen模式预览。当画面大于704*576时,SDK自动切换到overlay预览模式。 /// /// int __stdcall StartVideoPreview(HANDLE hChannelHandle,HWND WndHandle, RECT *rect,BOOLEAN bOverlay, int VideoFormat, int FrameRate) ///
///
通道句柄 ///
显示窗口句柄 ///
/// 显示窗口内的矩形区域 /// Rect.right 必须为8的倍数 /// Rect.bottom必须为16的倍数 /// ///
是否启用Overlay预览模式 ///
视频
预览格式(目前无效) ///
视频
预览帧率(PAL:1-25,NTSC:1-30) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StartVideoPreview(IntPtr hChannelHandle, IntPtr WndHandle, ref Rectangle rect, bool bOverlay, int VideoFormat, int FrameRate); //public static extern int StartVideoPreview(IntPtr hChannelHandle, IntPtr WndHandle, ref RECT rect, bool bOverlay, int VideoFormat, int FrameRate); ///
/// 3.2.2.2停止
视频
预览StopVideoPreview /// 说 明: 停止
视频
预览 /// /// int __stdcall StopVideoPreview(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StopVideoPreview(IntPtr hChannelHandle); #endregion #region 3.2.3
视频
参数的设置及获取 ///
/// 3.2.3.1设置
视频
参数SetVideoPara /// 说 明: 设置
视频
参数 /// /// int __stdcall SetVideoPara(HANDLE hChannelHandle, int Brightness, int Contrast, int Saturation, int Hue) ///
///
通道句柄 ///
亮度值(0-255) ///
对比度(0-127) ///
饱和度(0-127) ///
色调(0-255) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetVideoPara(IntPtr hChannelHandle, int Brightness, int Contrast, int Saturation, int Hue); ///
/// 3.2.3.2获取
视频
参数GetVideoPara /// 说 明: 获取
视频
参数 /// /// int __stdcall GetVideoPara(HANDLE hChannelHandle, VideoStandard_t *VideoStandard, int*Brightness, int *Contrast, int *Saturation, int *Hue) ///
///
通道句柄 ///
视频
制式 ///
亮度指针值(0-255) ///
对比度指针值(0-127) ///
饱和度指针值(0-127) ///
色调指针值(0-255) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetVideoPara(IntPtr hChannelHandle, VideoStandard_t VideoStandard, out int Brightness, out int Contrast, out int Saturation, out int Hue); #endregion #endregion #region 3.3
视频
信号设置(制式、状况、输入位置等) ///
/// 3.3.1设置
视频
制式SetVideoStandard,此函数只对H卡有效 /// 说 明: 设置
视频
制式,在某一制式的摄像头已经接好的情况下启动系统时可不必调用该 /// 函数,如果没有接摄像头的情况下启动系统然后再接NTSC制式的摄像头则必须调用该函 /// 数,或者中途调换不同制式的摄像头也必须调用该函数。 /// /// int __stdcall SetVideoStandard(HANDLE hChannelHandle, VideoStandard_t VideoStandard) ///
///
通道句柄 ///
视频
制式 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetVideoStandard(IntPtr hChannelHandle, VideoStandard_t VideoStandard); ///
/// 3.3.2设置系统默认的
视频
制式SetDefaultVideoStandard /// 注意:该函数只能在系统初始化(InitDSPs)之前运行,否则无效 /// 说 明: 设置系统默认的
视频
制式,系统中所有的
视频
输入通道如果无
视频
输入或者在系 /// 统启动的时候,通道会按照所设置的系统默认
视频
制式进行处理。 /// /// int __stdcall SetDefaultVideoStandard(VideoStandard_t VideoStandard) ///
///
视频
制式,默认为PAL ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetDefaultVideoStandard(VideoStandard_t VideoStandard); ///
/// 3.3.3设置
视频
信号灵敏度SetVideoDetectPrecision /// 说 明: 设置
视频
信号检测的灵敏度。如果
视频
信号的强度比较弱,或者信号通断的切换 /// 比较频繁,会
出现
“无
视频
信号”的提示字样,为了避免提示字样影响图像,可以更改
视频
/// 信号检测的灵敏度。灵敏度取值越大,检测精度越低,
出现
“无
视频
信号”提示字样的频率 /// 越低。当将value值设置为0xffffffff时,将不会再
出现
“无
视频
信号”的提示字样。 /// /// int __stdcall SetVideoDetectPrecision(HANDLE hChannel,unsigned int value) ///
///
通道句柄 ///
灵敏度。取值范围:0-100,默认为20 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetVideoDetectPrecision(IntPtr hChannel, uint value); ///
/// 3.3.4获取
视频
信号输入情况GetVideoSignal /// 说 明: 获取
视频
信号的输入情况,用于
视频
丢失报警 /// /// int __stdcall GetVideoSignal(HANDLE hChannelHandle) ///
///
通道句柄 ///
信号正常返回0;返回其他值说明信号异常或有错误
[DllImport("DS40xxSDK.dll")] public static extern int GetVideoSignal(IntPtr hChannelHandle); ///
/// 3.3.5调整
视频
信号输入位置SetInputVideoPosition /// 说 明: 设置
视频
信号的输入位置。(x,y)为系统处理图像的左上角在摄像机输入的原 /// 始图像中的坐标,某些摄像机输入的图像在预览时可能在左边会有
黑边
,可以通过此函数进 /// 行调节,x必须设置为2的整数倍。(x,y)的取值和摄像机的型号有关,如果指定的值和 /// 摄像机的输入参数不匹配,可能会导致图像静止、水平垂直方向滚动或者黑屏,请谨慎使用。 /// /// int __stdcall SetInputVideoPosition(HANDLE hChannel,UINT x,UINT y) ///
///
通道句柄 ///
X轴坐标,默认值为8 ///
Y轴坐标,默认值为2 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetInputVideoPosition(IntPtr hChannel, uint x, uint y); ///
/// 3.3.6设置反隔行变换及强度SetDeInterlace /// 说 明: 设置是否采用反隔行算法,已经采用反隔行时的强度 /// /// 释 义: 反隔行变换 /// 如果该通道的图像需要进行4CIF的预览或编码,此时的图像中会同时包含奇、偶两 /// 场的数据,由于奇场图像和偶场图像不同步,导致图像中运动的部分发生错位、边缘模糊, /// 此时需要对图像进行反隔行变换来去掉这种现象。如果用户能够确定使用的是逐行扫描格式 /// 的摄像机,或者主要应用在静止场景,此时可以关掉反隔行变换功能,或者降低强度,这样 /// 可以提高系统运行效率,并降低反隔行变换对图像质量带来的损失。 /// /// int __stdcall SetDeInterlace(HANDLE hChannelHandle,UINT mode,UINT level) ///
///
通道句柄 ///
/// 0表示该通道不进行反隔行变换,此时level参数无效; /// 1表示使用旧的算法; /// 2表示使用默认算法(系统默认值)。 /// ///
/// mode=1时有效,其它时无效。 /// 0-10,反隔行变换的强度逐渐加强,0最弱,对图像的损失最小,10最强,对图像的损失最大。 /// ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetDeInterlace(IntPtr hChannelHandle, uint mode, uint level); #endregion #region 3.4
视频
编码参数设置 // 释 义: 双编码功能(主、子通道) // 对一路
视频
图像进行两路
视频
编码,两路
视频
可以有不同的码流类型、不同分辨率、不 //同码率等。3.0版本对双编码功能做了增强,子通道的所有参数都可以任意设置。 //双编码中主通道和子通道唯一的区别在于:子通道占用的系统资源比主通道少,优先级 //比主通道低。当系统忙时,会尽量保证主通道编码,并先从子通道开始丢帧。由于占用资源 //少,因此可以利用子通道来实现多路高分辨率的非实时编码。例如:可以把DS-4000HC中 //的每个子通道全部设置为4CIF分辨率(SetSubStreamType),而不使用主通道编码,这样就 //可以实现全部通道的4CIF编码。在一般场景下,每路图像都可以达到15帧以上。 ///
/// 3.4.1主、子通道切换SetupSubChannel /// 说 明: 配合双编码模式使用。当设置某个通道为双编码模式时,如主通道编码CIF,子 /// 通道编码QCIF,这时可对主/子通道分别设置某些参数。关键帧间隔、OSD、LOGO等参数 /// 对主/子通道是一样的;在设置帧率、量化系数、变码流/定码流模式、码流大小等参数时应 /// 调用此函数分别对主/子通道进行设置,缺省是对主通道进行设置 /// /// int __stdcall SetupSubChannel(HANDLE hChannelHandle, int iSubChannel) ///
///
通道句柄 ///
子通道号(0表示主通道,1表示主通道) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetupSubChannel(IntPtr hChannelHandle, int iSubChannel); ///
/// 3.4.2获取双编码时数据流类型GetSubChannelStreamType /// 说 明: 配合双编码模式使用,当设置双编码模式时,启动录像后,DSP会向上送两种 /// 数据流,调用此函数得到主通道和子通道的数据流类型,供应用程序使用。 /// /// int __stdcall GetSubChannelStreamType(void *DataBuf, int FrameType) ///
///
数据缓存区 ///
帧类型 ///
/// 0 其他数据 /// 1 主通道数据流的文件头 /// 2 子通道数据流的文件头 /// 3 主通道数据流的
视频
帧类型 /// 4 子通道数据流的
视频
帧类型 /// 5 数据流的音频帧 ///
[DllImport("DS40xxSDK.dll")] public static extern int GetSubChannelStreamType(IntPtr DataBuf, int FrameType); #region 3.4.3编码流类型的设置及获取(不支持动态修改) ///
/// 3.4.3.1设置主通道编码流类型SetStreamType /// 说 明: 设置主通道编码流类型。此函数需在启动编码前进行设置 /// /// int __stdcall SetStreamType(HANDLE hChannelHandle, USHORT Type) ///
///
通道句柄 ///
流类型 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetStreamType(IntPtr hChannelHandle, ushort Type); ///
/// 3.4.3.2获取主通道编码流类型GetStreamType /// 说 明: 获取主通道编码流类型 /// /// int __stdcall GetStreamType(HANDLE hChannelHandle, USHORT *StreamType) ///
///
通道句柄 ///
流类型 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetStreamType(IntPtr hChannelHandle, ref ushort StreamType); ///
/// 3.4.3.3设置子通道编码流类型SetSubStreamType /// 说 明: 设置子通道编码流类型,此函数需在启动编码前进行设置 /// /// int __stdcall SetSubStreamType(HANDLE hChannelHandle, USHORT Type) ///
///
通道句柄 ///
流类型 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetSubStreamType(IntPtr hChannelHandle, ref ushort Type); ///
/// 3.4.3.4获取子通道编码流类型GetSubStreamType /// 说 明: 获取子通道编码流类型 /// /// int __stdcall GetSubStreamType(HANDLE hChannelHandle, USHORT *StreamType) ///
///
通道句柄 ///
流类型 ///
[DllImport("DS40xxSDK.dll")] public static extern int GetSubStreamType(IntPtr hChannelHandle, ref ushort StreamType); #endregion #region 3.4.4(支持动态修改)的编码参数设置 ///
/// 3.4.4.1设置编码图像质量SetDefaultQuant /// 说 明: 设置图像量化系数,用于调整图像质量。量化系数越小图像质量越高。系统默认量化系数值为18,18,23。 /// 释 义: 量化系数 /// 量化系数是强烈影响MPEG标准中编码图像质量和码率的参数,当量化系数越低,图 /// 像质量就会越高,码率也就越高,反之,图形质量就会越低,码率也就越低 /// /// int __stdcall SetDefaultQuant(HANDLE hChannelHandle, int IQuantVal, int PQuantVal, int BQuantVal) ///
///
通道句柄 ///
I帧量化系数,取值范围:12-30 ///
P帧量化系数。取值范围:12-30(目前无效) ///
B帧量化系数。取值范围:12-30(目前无效) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetDefaultQuant(IntPtr hChannelHandle, int IQuantVal, int PQuantVal, int BQuantVal); ///
/// 3.4.4.2设置编码帧结构、帧率SetIBPMode /// 说 明: 设置编码帧结构和帧率。支持动态修改 /// 释 义: 关键帧间隔 /// 关键帧为编码码流中采用帧内压缩的图像帧,其特点是图像清晰度好,但数据量大,通 /// 常作为帧间编码的原始参考帧。关键帧间隔是连续的帧间编码的帧个数,因H264(MPEG4) /// 编码是有损压缩,关键帧的个数会影响图像质量,因此关键帧的间隔需要合理设计。 /// /// int __stdcall SetIBPMode(HANDLE hChannelHandle, int KeyFrameIntervals, int BFrames, int PFrames, int FrameRate) ///
///
通道句柄 ///
关键帧间隔。取值范围1-400,系统默认为100 ///
B帧数量,取值为0或者2,系统默认为2 ///
P帧数量。目前暂取值无效 ///
帧率,帧率范围1-25(PAL)、1-30(NTSC) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetIBPMode(IntPtr hChannelHandle, int KeyFrameIntervals, int BFrames, int PFrames, int FrameRate); #region 3.4.4.3设置编码分辨率 ///
/// 3.4.4.3.1设置主通道分辨率SetEncoderPictureFormat /// 说 明: 设置主通道编码分辨率。支持动态修改。 /// /// int __stdcall SetEncoderPictureFormat(HANDLE hChannelHandle, PictureFormat_t PictureFormat) ///
///
通道句柄 ///
编码图像分辨率(4CIF、DCIF、2CIF、CIF、QCIF) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetEncoderPictureFormat(IntPtr hChannelHandle, PictureFormat_t PictureFormat); ///
/// 3.4.4.3.2设置子通道编码分辨率SetSubEncoderPictureFormat /// 说 明: 设置双编码模式时子通道的编码分辨率,支持动态修改。 /// /// int __stdcall SetSubEncoderPictureFormat(HANDLE hChannelHandle, PictureFormat_t PictureFormat) ///
///
子通道句柄 ///
子通道编码图像分辨率(4CIF、DCIF、2CIF、CIF、 QCIF) ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetSubEncoderPictureFormat(IntPtr hChannelHandle, PictureFormat_t PictureFormat); #endregion #region 3.4.4.4设置码率及码流控制模式 ///
/// 3.4.4.4.1设置码流最大比特率SetupBitrateControl /// 说 明: 设置编码的最大比特率。设置为0时码流控制无效,设置为某一最大比特率时, /// 当编码码流超过该值时,DSP会自动调整编码参数来保证不超过最大比特率,当编码码流 /// 低于最大比特率时,DSP不进行干涉。调整误差<10% /// /// int __stdcall SetupBitrateControl(HANDLE hChannelHandle, UInt64 MaxBps) ///
///
通道句柄 ///
最大比特率。取值:10000以上 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetupBitrateControl(IntPtr hChannelHandle, Int32 MaxBps); ///
/// 3.4.4.4.2设置码流控制方式SetBitrateControlMode /// 说 明: 设置编码码流控制方式。配合SetupBitrateControl使用。当设置为变码率(brVBR) /// 时,最大比特率将作为编码码流上限,由DSP在码流上限下自动控制码率,一般会自动回 /// 落到最低的状态(由设定的图像质量参数和关键帧间隔决定),能最大程度地降低带宽和存 /// 储空间,但存储容量一般难以估算;当设置为定码率(brCBR)时,以最大比特率作为编码 /// 码率参数恒定输出码流,不会自动回落到低码流状态,存储容量可根据设定码率的大小进行估算。 /// /// int __stdcall SetBitrateControlMode(HANDLE hChannelHandle, BitrateControlType_t brc) ///
///
通道句柄 ///
码流控制方式,分为变码率(brVBR)和恒定码率 (brCBR)两种方式 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetBitrateControlMode(IntPtr hChannelHandle, BitrateControlType_t brc); #endregion ///
/// 3.4.5强制设定I帧CaptureIFrame /// 说 明: 将当前编码帧强制设定为I帧模式,可从码流中提取该帧单独用于网络传送。 /// /// int __stdcall CaptureIFrame(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int CaptureIFrame(IntPtr hChannelHandle); ///
/// 3.4.6获取帧统计信息GetFramesStatistics /// 说 明: 获取帧统计信息 /// /// int __stdcall GetFramesStatistics(HANDLE hChannelHandle,PFRAMES_STATISTICS framesStatistics) ///
///
通道句柄 ///
帧统计信息 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetFramesStatistics(IntPtr hChannelHandle, PFRAMES_STATISTICS framesStatistics); #endregion #endregion #region 3.5数据捕获 #region 3.5.1抓图(获取单帧图像数据) #region 3.5.1.1抓取BMP格式图像 ///
/// 3.5.1.1.1获取原始yuv422格式数据GetOriginalImage /// 说 明: 获得原始yuv422格式图像,DS4000HC原始图像是4CIF图像格式(包括QCIF编码), /// DS-4000HS原始图像为CIF图像格式,DS400xH卡的原始图象是CIF图象格式。 /// /// int __stdcall GetOriginalImage(HANDLE hChannelHandle, UCHAR *ImageBuf, UInt64 *Size) ///
///
通道句柄 ///
原始yuv422格式图像指针 ///
原始yuv422格式图像尺寸,函数调用前是ImageBuf的大小,调用后是实际图像所占用的字节数 ///
成功返回0,失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int GetOriginalImage(IntPtr hChannelHandle, byte[] ImageBuf, out int Size); ///
/// 3.5.1.1.2图像格式转换YUVtoBMP SaveYUVToBmpFile /// 说 明: 用户程序可调用此函数来生成24位的bmp文件,如果是DS4000HC卡抓图则 /// Width 为704,Height 为576PAL/480NTSC,如果是DS400xH卡抓图则Width可能为352 /// 或176,Height为288、240、144或120,要根据缓冲区的大小来判断。 /// /// int __stdcall SaveYUVToBmpFile(char *FileName, unsigned char *yuv, int Width, int Height) ///
///
文件名 ///
yuv422格式图像指针 ///
图像宽度 ///
图像高度 ///
[DllImport("DS40xxSDK.dll")] public static extern int SaveYUVToBmpFile(string FileName, byte[] yuv, int Width, int Height); ///
/// 3.5.1.2抓取JPEG格式图像GetJpegImage /// 说 明: 抓取JPEG格式图像 /// /// int __stdcall GetJpegImage(HANDLE hChannelHandle,UCHAR *ImageBuf, UInt64 *Size,UINT nQuality) ///
///
通道句柄 ///
JPEG图像指针 ///
JPEG图像尺寸,函数调用前是ImageBuf的大小,调用后是实际图像所占用的字节数 ///
JPEG图像质量,取值范围1-100,取值100时质量最好 ///
[DllImport("DS40xxSDK.dll")] public static extern int GetJpegImage(IntPtr hChannelHandle, byte[] ImageBuf, out int Size, uint nQuality); #endregion #region 3.5.2原始图像数据流捕获(获取YUV420格式数据流) ///
/// 3.5.2.1注册原始图像数据流回调函数RegisterImageStreamCallback /// 说 明: 注册获取原始图像数据流函数,用户可以获取实时的YUV420格式的预览数据 /// /// int __stdcall RegisterImageStreamCallback (IMAGE_STREAM_CALLBACK ImageStreamCallback,void *context) ///
///
原始图像数据流回调函数 ///
设备上下文 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int RegisterImageStreamCallback(IMAGE_STREAM_CALLBACK ImageStreamCallback, IntPtr context); ///
/// 3.5.2.2开启及停止原始数据流捕获SetImageStream /// 说明: 开启或停止原始图像数据流捕获,此函数依赖主机的处理速度。DS-4000HS只能捕获不大于CIF格式的数据流 /// /// 函 数: int __stdcall SetImageStream(HANDLE hChannel,BOOL bStart,UINT fps, UINT width,UINT height,unsigned char *imageBuffer) ///
///
通道句柄 ///
是否启动捕获 ///
帧率 ///
图像宽度,必须是4CIF宽度的1/8,1/4,1/2或原始大小704 ///
图象高度,必须是4CIF高度的1/8,1/4,1/2或原始大小576PAL/480NTSC ///
数据存储缓存 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetImageStream(IntPtr hChannel, bool bStart, uint fps, uint width, uint height, char[] imageBuffer); #endregion #region 3.5.3编码数据流捕获(获取编码后H.264格式数据流)即录像 //注意:注册直接回调或者消息回调后,需要启动编码数据流捕获函数才能进行数据回调。三 //种数据回调方式,只需选取其中一种使用即可。对于HC系列板卡(包括HC、HC+、HCS、 //HS),推荐使用第一种读取方式。对于H系列板卡,只能使用后两种读取方式。 #region 3.5.3.1编码数据流捕获方式设置 ///
/// 3.5.3.1.1.1注册编码图像数据流直接读取回调函数 /// 说 明: DS4000HC系列板卡新增的一种数据流读取方式,当启动数据捕获后, /// StreamDirectReadCallback会提供数据流的地址、长度、帧类型等,供用户程序直接处理。 /// /// 函 数: int __stdcall RegisterStreamDirectReadCallback (STREAM_DIRECT_READ_CALLBACK StreamDirectReadCallback,void *Context) ///
///
编码数据流直接读取回调函数 ///
设备上下文 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int RegisterStreamDirectReadCallback(STREAM_DIRECT_READ_CALLBACK StreamDirectReadCallback, IntPtr context); #endregion #region 3.5.3.1.2方式二、消息读取方式 ///
/// 3.5.3.1.2.1设置消息读取伐值,此函数只对H卡有效 /// 说 明: 设置消息读取的伐值,可以将缓冲区的数据在OnDataReady中一次性取走 /// /// int __stdcall SetupNotifyThreshold(HANDLE hChannelHandle, int iFramesThreshold) ///
///
通道句柄 ///
读取消息伐值,范围1-10 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int SetupNotifyThreshold(IntPtr hChannelHandle, int iFramesThreshold); ///
/// 3.5.3.1.2.2注册消息读取码流函数 /// 说 明: 当数据准备好时,SDK会向hWnd窗口发送MessageId消息,目标窗口收到 /// Message后调用ReadStreamData读取一帧数据。如果HC卡与H卡混插,可以先调用 /// RegisterStreamDirectReadCallback函数来注册HC卡取码流回调函数,再调用 /// RegisterMessageNotifyHandle函数来注册H卡取码流消息函数。 /// HC系列板卡建议使用方式一进行数据捕获。 /// /// int __stdcall RegisterMessageNotifyHandle(HWND hWnd, UINT MessageId) ///
///
通道句柄 ///
自定义消息 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int RegisterMessageNotifyHandle(IntPtr hWnd, uint MessageId); #endregion #region 3.5.3.1.3方式三、另一种直接读取方式 ///
/// 3.5.3.1.3.1注册直接读取码流回调函数 /// 说 明: 另一种数据流读取方式 /// /// int __stdcall RegisterStreamReadCallback (STREAM_READ_CALLBACK StreamReadCallback, void *Context) ///
///
直接读取码流回调函数 ///
设备上下文 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int RegisterStreamReadCallback(STREAM_READ_CALLBACK StreamReadCallback, IntPtr Context); #endregion ///
/// 3.5.3.2读取码流函数 /// 说 明: 读指定长度的数据流,适用于方式二及方式三。当调用StartVideoCapture 或 /// StartMotionDetection后,SDK线程会向已注册的用户窗口消息处理函数发送指定的消息, /// 并提供消息来源的通道号。当用户程序收到该消息时,可调用本函数来读取数据,Length 在 /// 作为输入时必须提供缓冲的大小,ReadStreamData会判断缓冲是否足够,如果缓冲足够大 /// 则返回值为当前的读取的帧长度,否则返回错误。 /// 在HC卡中,如果已经先调用了RegisterStreamDirectReadCallback()函数,则不需调用 /// ReadStreamData来读取数据,因为音
视频
数据会在RegisterStreamDirectReadCallback所注册 /// 的回调函数中直接返回。 /// /// int __stdcall ReadStreamData(HANDLE hChannelHandle, void *DataBuf, DWORD *Length, int *FrameType) ///
///
通道句柄 ///
自定义的数据缓存区 ///
输入:缓存区的大小;输出:一帧数据的大小 ///
帧类型 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int ReadStreamData(IntPtr hChannelHandle, byte[] DataBuf, out UInt64 Length, out int FrameType); #region 3.5.3.3开启及停止录像 ///
/// 3.5.3.3.1启动主通道编码数据流捕获 /// 说 明: 启动主通道编码数据流捕获。用户程序可以使用直接读取方式,使用 /// StreamDirectReadCallback回调函数直接对数据流进行处理;也可以与H卡一样,通过消息 /// 读取方式,等SDK向用户程序发送在RegisterMessageNotifyHandle中注册的消息,用户程 /// 序使用ReadStreamData来读取数据流。 /// /// int __stdcall StartVideoCapture(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StartVideoCapture(IntPtr hChannelHandle); ///
/// 3.5.3.3.2停止主通道编码数据流捕获 /// 说 明: 停止主通道编码数据流捕获 /// /// int __stdcall StopVideoCapture(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StopVideoCapture(IntPtr hChannelHandle); ///
/// 3.5.3.3.3启动子通道编码数据流捕获 /// 说 明: 启动子通道编码数据流捕获 /// /// int __stdcall StartSubVideoCapture(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StartSubVideoCapture(IntPtr hChannelHandle); ///
/// 3.5.3.3.4停止子通道编码数据流捕获 /// 说 明: 停止子通道编码数据流捕获 /// /// int __stdcall StopSubVideoCapture(HANDLE hChannelHandle) ///
///
通道句柄 ///
成功返回0;失败返回错误号
[DllImport("DS40xxSDK.dll")] public static extern int StopSubVideoCapture(IntPtr hChannelHandle); #endregion #endregion #endregion #endregion #region 3.6移动侦测 // 释 义: 移动侦测 //DS4000HC提供运动强度信息来处理运动检测,设置移动侦测区域时以32*32像素块为 //单位,按4CIF(704*576)分辨率计算,每行有22个块(704/32),PAL时18行(576/32), //NTSC时15行(480/32),与编码格式无关。经过测试,这种方法比H卡提高了灵敏度和可 //靠性,并简化了返回的数据,返回的值是18个DWORD,对应屏幕高度576/32=18行(PAL), //每个DWORD的0-21位对应屏幕宽度704/32=22, 其中1为运动,0为静止,也可以调用原有 //MotionAnalyzer分析结果 //4.0版本的SDK新增了接口函数SetupMotionDetectionEx,
MabinogiHelper:Mabinogi 游戏的帮手
MabinogiHelper ##版本 洛奇助手iOS 正式版 v1.1 于2015-01-15 加入主题色的选择 优化显示细节 重做app图标与启动图片 针对iPhone4s/5/5s/6/6p进行了初步适配优化 数据缓存方案 重写看板数据获取 优化界面 修复iOS7与iOS8的适配 修复第一次启动广告版可能
出现
的问题 洛奇助手iOS Beta v1.1 于2015-01-03 修复5s启动后上下留
黑边
问题 修复iOS7.1提示不支持设备问题 修复一些显示细节问题 修复广告版一些物品图片Error 当前itemsdb版本号 v211 广告版支持所有当前国服服务器 洛奇助手iOS Beta v1.0 于2014-12-31 ##概述 洛奇助手是为洛奇玩家量身定做的辅助性APP 目前由个人开发维护 无任何商业性质 当前使用SDK7.0 只支持iOS7.0以上设备
视频
演示 ##进度 当前版本
视频
有
黑边
怎么办?如何裁剪
视频
画面的
黑边
?
很多时候我们在网上下载的
视频
是存在
黑边
的,有一些是左右
黑边
,有一些是上下
黑边
。有时候做
视频
的时候保存的合适不对或尺寸不对,也会导致商品
出现
黑边
,造成手机无法播放。
视频
存在
黑边
是很影响我们观看
视频
的,大大的
黑边
使的
视频
看起来很小,而且看着也不舒服。那么
视频
怎么去
黑边
呢?去掉
视频
黑边
,其实并不难,只要使用迅捷
视频
转换器裁剪
视频
画面的
黑边
就好了。那么该怎样操作呢?今天小编就是要来解决这个问题的啦,只...
CSS
61,110
社区成员
60,736
社区内容
发帖
与我相关
我的任务
CSS
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
复制链接
扫一扫
分享
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章