DM8168,用的是dvrrdk4.01,数据从网络摄像头进来。分辨率是1600*1200,不知道8168支不支持这种不是很常规的分辨率的配置,如果支持的话该怎么配置呢?请各位帮帮忙,多谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
DM8168,用的是dvrrdk4.01,数据从网络摄像头进来。分辨率是1600*1200,不知道8168支不支持这种不是很常规的分辨率的配置,如果支持的话该怎么配置呢?请各位帮帮忙,多谢!
Chu Hi,
网络摄像头进来,就是通过网络输入DM8168。DM8168解码是支持1600x1200的分辨率,需要修改最大支持的输入高度大于1200.
Chris Hi,
感谢您的回复,我试了本地的解码例子,分辨率是1600*1200,播放不了。接收数据的线程里有组合I帧的部分:
// If I frame is recieved in multiple packets we need to accumulate them into one buffer - First packet
if(pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail] == 0x67 && pObj->gIPNC_info->readSizeV < 200)
{
printf("\nGot a frame in multiple packets-Start\n");
tmpSize += pObj->gIPNC_info->readSizeV;
pObj->gIPNC_info->rVBTail = pObj->gIPNC_info->readSizeV;
if(pObj->codecType == VCODEC_TYPE_H264)
{
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+0] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+1] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+2] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+3] = 0x01;
pObj->gIPNC_info->rVBTail += 4;
tmpSize += 4;
pObj->gIPNC_info->readVidBuf += pObj->gIPNC_info->rVBTail;
}
continue;
}
// If I frame is recieved in multiple packets we need to accumulate them into one buffer - Middle packet
if(tmpSize > 0 && pObj->gIPNC_info->readVidBuf[0] == 0x68)
{
printf("\nGot a frame in multiple packets-middle\n");
tmpSize += pObj->gIPNC_info->readSizeV;
pObj->gIPNC_info->rVBTail = pObj->gIPNC_info->readSizeV;
if(pObj->codecType == VCODEC_TYPE_H264)
{
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+0] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+1] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+2] = 0x00;
pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+3] = 0x01;
pObj->gIPNC_info->rVBTail += 4;
tmpSize += 4;
pObj->gIPNC_info->readVidBuf += pObj->gIPNC_info->rVBTail;
}
continue;
}
// If I frame is recieved in multiple packets we need to accumulate them into one buffer - Last packet
if(tmpSize > 0 && pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail] == 0x65)
{
printf("\nGot a frame in multiple packets-End\n");
pObj->gIPNC_info->readSizeV += tmpSize;
tmpSize = 0; //Reset this for next frame that comes in multiple packets
}
一直打印Got a frame in multiple packets-Start和Got a frame in multiple packets-middle,没有Got a frame in multiple packets-End,I帧接收不完整,请问这会是什么原因导致的?
Chris Hi,
感谢您的回复,如果用1920*1080的摄像头,能接收到packets-End,换1600*1200或者1024*1024的不行。接收网络码流的代码是RDK的,我只改了初始化时的长宽,为什么接收会有问题呢?
Chris Hi,
感谢您的回复,能不能让您熟悉这一块的同事也帮忙测试一下,我们的四路视频分辨率都不一样:
1920*1080,1024*1024,1600*1200,2048*1536,多谢!