firefly-rk3399 开发记录3-编码与RTSP实现

1.帧捕获

在前面的实现过程中,采用了QVideoProbe捕获摄像头数据,在信号绑定之后,传输到QSmartVenc,编码模块是额外放在另外一个线程处理的

    QVencParm param;
    param.width  = 1280;
    param.height = 720;
    param.code   = MPP_VIDEO_CodingAVC;
    param.fmt    = MPP_FMT_YUV420P;
    m_venc.reset(new QSmartVenc(param));
    QThread *vencThread = new QThread(this);
    m_venc->moveToThread(vencThread);
    vencThread->start();

将probe数据绑定到编码模块

connect(m_probe.data(),&QVideoProbe::videoFrameProbed,m_venc.data(),&QSmartVenc::needHandleImage);

2.编码

编码是使用的瑞芯微MPP,参考历程mpi_enc_test,整体接口略显麻烦,基本可以跟着流程不动进行修改。其中需要注意一点的是stride在MPP中需要是16字节对齐,这里最好将输入分辨率也做16字节对齐,这样宽和高就刚好和stride匹配,避免后面填充的时候还有手动计算YUV分量位置.

  MppFrame frame = NULL;
    MppPacket packet = NULL;
    void *buf = mpp_buffer_get_ptr(frm_buf);
    
    f.map(QAbstractVideoBuffer::Rea
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值