海康转码

该博客主要介绍了如何使用回调函数DecCBFun处理海康设备的视频流数据,解码后的视频数据为YUV(YV12)格式,并通过OpenCV的imshow进行显示。实时流回调函数fRealDataCallBack用于处理系统头和码流数据,通过PlayM4系列函数进行视频解码和播放操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//解码回调 视频为YUV数据(YV12),音频为PCM数据
void CALLBACK DecCBFun(long nPort,char * pBuf,long nSize,FRAME_INFO * pFrameInfo, long nReserved1,long nReserved2)
{
 	long lFrameType = pFrameInfo->nType;	

  if(lFrameType ==T_YV12)
  {
	Mat frame;
	frame.create(Size(pFrameInfo->nWidth, pFrameInfo->nHeight),CV_8UC1);
	memcpy(frame.data, pBuf, pFrameInfo->nWidth*pFrameInfo->nHeight);
	imshow("IP Camera", frame);
	waitKey(1);
  }
}


///实时流回调
void CALLBACK fRealDataCallBack(LONG lRealHandle,DWORD dwDataType,BYTE *pBuffer,DWORD dwBufSize,void *pUser)
{
  DWORD dRet;
  switch (dwDataType)
  {
  case NET_DVR_SYSHEAD:    //系统头
    if (!PlayM4_GetPort(&nPort)) //获取播放库未使用的通道号
    {
      break;
    }
    if(dwBufSize > 0)
    {
      if (!PlayM4_OpenStream(nPort,pBuffer,dwBufSize,1024*1024))
      {
        dRet=PlayM4_GetLastError(nPort);
        break;
      }
      //设置解码回调函数 只解码不显示
 			if (!PlayM4_SetDecCallBack(nPort,DecCB
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值