采集视频后在本地直接进行编码、解码(不进行网传),为什么显示出来有大量马赛克

博主在本地使用VFW API和mpg4c32.dll进行视频编码解码时遇到大量马赛克问题。经过讨论,可能的原因包括:编码解码过程中的错误、解码后数据缓冲区大小不正确、压缩比特率过低、编码后的数据与预期不符。建议检查编解码算法、数据缓冲区大小和比特率设置。
摘要由CSDN通过智能技术生成

RT  
  本人用VFW   API写的,编解码库采用微软的mpg4c32.dll,部分代码如下:  
   
  //初始化编码  
  BOOL   CSkySunDlg::InitVideoEncoder()  
  {  
  m_hicEnc   =   ICOpen(ICTYPE_VIDEO,   m_dwCompressor,   ICMODE_FASTCOMPRESS);  
  if(!m_hicEnc)  
  {  
  AfxMessageBox("ICOpen   Enc   Error!");  
  return   false;  
  }  
   
  m_biEncInput.bmiHeader.biSize                         =   sizeof(BITMAPINFOHEADER);  
  m_biEncInput.bmiHeader.biCompression           =   BI_RGB;  
  m_biEncInput.bmiHeader.biWidth                       =   QCIF_WIDTH;  
  m_biEncInput.bmiHeader.biHeight                     =   QCIF_HEIGHT;  
  m_biEncInput.bmiHeader.biPlanes                     =   1;  
  m_biEncInput.bmiHeader.biBitCount                 =   24;  
  m_biEncInput.bmiHeader.biSizeImage               =   QCIF_WIDTH*QCIF_HEIGHT*1*(24/8);  
  m_biEncInput.bmiHeader.biXPelsPerMeter       =   0;  
  m_biEncInput.bmiHeader.biYPelsPerMeter       =   0;  
  m_biEncInput.bmiHeader.biClrUsed                   =   0;  
  m_biEncInput.bmiHeader.biClrImportant         =   0;  
   
  m_biEncOutput.bmiHeader.biSize                       =   sizeof(BITMAPINFOHEADER);  
  m_biEncOutput.bmiHeader.biCompression         =   mmioFOURCC('M','P','4','3');  
  m_biEncOutput.bmiHeader.biWidth                     =   QCIF_WIDTH;  
  m_biEncOutput.bmiHeader.biHeight                   =   QCIF_HEIGHT;  
  m_biEncOutput.bmiHeader.biPlanes                   =   1;  
  m_biEncOutput.bmiHeader.biBitCount               =   24;  
  m_biEncOutput.bmiHeader.biSizeImage             =   QCIF_WIDTH*QCIF_HEIGHT*1*(24/8);  
  m_biEncOutput.bmiHeader.biXPelsPerMeter     =   0;  
  m_biEncOutput.bmiHeader.biYPelsPerMeter     =   0;  
  m_biEncOutput.bmiHeader.biClrUsed                 =   0;  
  m_biEncOutput.bmiHeader.biClrImportant       =   0;  
   
  if(   ICERR_OK   !=   ICCompressBegin(m_hicEnc,   &m_biEncInput,   &m_biEncOutput)   )  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值