请问哪位大佬使用 宇视 网络摄像头SDK开发的?小弟目前使用C#语言进行YUV解码完全迷糊了,
对这方面的技术一点都不了解,请有经验的大佬们能够提供代码,并取得每帧的byte[]或bitmap。
DEMO如下:
[StructLayout(LayoutKind.Sequential)]
public struct NETDEV_PICTURE_DATA_S
{
/// <summary>
/// <para>pucData[0]:Y 平面指针</para>
/// <para>pucData[1]:U 平面指针</para>
/// <para>pucData[2]:V 平面指针</para>
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] pucData;
/// <summary>
/// <para>ulLineSize[0]:Y平面每行跨距</para>
/// <para>ulLineSize[1]:U平面每行跨距</para>
/// <para>ulLineSize[2]:V平面每行跨距</para>
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public Int32[] dwLineSize;
/// <summary>
/// 图片高度
/// </summary>
public Int32 dwPicHeight;
/// <summary>
/// 图片宽度
/// </summary>
public Int32 dwPicWidth;
/// <summary>
/// 用于渲染的时间数据类型
/// </summary>
public Int32 dwRenderTimeType;
/// <summary>
/// 用于渲染的时间数据
/// </summary>
public Int64 tRenderTime;
};
/// <summary>
/// 码流数据回调函数
/// <para>1.用户应及时处理输出的视频流数据,确保函数尽快返回,否则会影响播放器内的媒体流处理.</para>
/// <para>2.视频数据是yv12格式.排列顺序“Y0-Y1-......”,“U0-U1-......”,“V0-V1-......”</para>
/// </summary>
/// <param name="lpRealHandle">当前的实况播放句柄</param>
/// <param name="pstPictureData">存放解码后视频流数据信息缓冲区指针</param>
/// <param name="lpUserParam">用户设置参数,即用户在调用#NDPlayer_SetDecodeVideoDataCB函数时指定的用户参数</param>
private void DecodeVideoDataCallBack(IntPtr lpRealHandle, ref NETDEV_PICTURE_DATA_S pstPictureData, IntPtr lpUserParam)
{
//请大佬补充此处解码后返回的byte[]或bitmap图像数据
}