显示H264实时流

接着上面写,第二天用第二种方法把视频显示出来了,在接收网络数据流后,再加上如下三个字节,就可以正确解码

 unsigned char start_code[3] = {0x00, 0x00, 0x01};
 memcpy(m_pMediaDataBuffer+m_nUsefulBytes, start_code, 3);

 

解码后显示方法如下,需要做一个转换(这里化了很上的时间,最开始没有进行如下的转换,一直画不出来)
 if (nGotPicture)
  { 
   int size=avpicture_get_size(PIX_FMT_YUV420P, m_pCodecContext->width, m_pCodecContext->height);
   if(m_pFillbuf == NULL)
   {
    m_pFillbuf =  av_malloc(size);
   }
            avpicture_fill(m_pDrawPicture, m_pFillbuf, PIX_FMT_YUV420P, m_pCodecContext->width, m_pCodecContext->height);
   img_convert(m_pDrawPicture, PIX_FMT_YUV420P, m_pOutPicture, m_pCodecContext->pix_fmt, m_pCodecContext->width, m_pCodecContext->height); 
   DrawYUV420P(m_hVideoWnd, m_pDrawPicture);
  }

 

对于上篇写着的两种方法,第二种方法适用一些,第一种方法在接H264时获取AVInputFormat总是错误.

 

后面几天的工作:

用directshoe filter显示H264实时流。再进行音频的传输功能

最后是音视同步

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值