webrtc中的video rtp packet 接收组包过程

101 篇文章 109 订阅 ¥29.90 ¥99.00
本文介绍了WebRTC在接收视频RTP包后,如何进行解析、组包以及缓存的过程。主要涉及PhysicalSocket实现的UDP数据接收,RtpReceiverImpl的处理流程,包括RTPHeader解析、VideoReceiveStream::OnCompleteFrame中的H264帧处理,以及视频缓存队列PacketBuffer和FrameBuffer的使用。解析后的数据经过PacketBuffer插入,当形成完整H264帧时回调OnReceivedFrame,最终在FrameBuffer中进行解码显示。
摘要由CSDN通过智能技术生成

当前版本为webrtc58;

 

一:webrtc中,接收视频packet的基本过程是(这里说的的H264,vp8和vp9是一样的过程,在解析后会判断类型,构造RtpDepacketizer): 

//接收 video rtp_packet

通过 class PhysicalSocket : public AsyncSocket, public sigslot::has_slots<> ,真正实现网络UDP数据发送,接收;

 

// rtp packet 解析 为 RTPHeader +  ParsedPayload  ->   构造 WebRtcRTPHeader  ->  构造 VCMPacket -> packet_buffer_->InsertPacket(&packet)

bool RtpReceiverImpl::IncomingRtpPacket   ->   int32_t RTPReceiverVideo::ParseRtpPacket  ->   int32_t RtpStreamReceiver::OnReceivedPayloadData

 

// video rtp packet ->  h264 Frame

recv_video_rtp_packet ->  tracker_.CopyAndFixBitstream(&packet) (h264 rtp packet 解析) ->  packet_buffer_->InsertPacket(&packet)  ->  获取完整H264Frame   (VideoReceiveStr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chinabinlang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值