ffmpeg编码报错

int frame_decoded = 0;
  int result = avcodec_decode_video2(av_context_.get(),
  av_frame_.get(),
  &frame_decoded,
  &packet);
  if (result < 0) {
  LOG(LS_ERROR) << "avcodec_decode_video2 error: " << result;
  ReportError();


  return WEBRTC_VIDEO_CODEC_ERROR;
  }
  // |result| is number of bytes used, which should be all of them.
  if (result != packet.size) {
  LOG(LS_ERROR) << "avcodec_decode_video2 consumed " << result << " bytes "
  "when " << packet.size << " bytes were expected.";
  ReportError();
  return WEBRTC_VIDEO_CODEC_ERROR;
  }


  if
  (!frame_decoded) {
  LOG(LS_WARNING) << "avcodec_decode_video2 successful but no frame was "
  "decoded.";
  return WEBRTC_VIDEO_CODEC_OK;

  }


前面编码成功,后面av_frame_->buf[0] 获取编码数据,发现指针是空值。


后来发现是前面需要把// Use ref counted frames (av_frame_unref).
  av_context_->refcounted_frames = 1;  // true 这个参数这样初始化,才可以。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值