RtpVideoStreamReceiver2构建
| 参数 | 说明 |
|---|---|
| current_queue | 视频接收流程的任务队列,所有 RTP/RTCP 接收相关的异步任务(如 NACK 重传请求、帧组装、统计更新)都在该队列上调度执行,保证任务执行的线程安全性和时序一致性,避免多线程混乱。 |
| clock | 时间管理时钟对象,用于获取精准时间戳,支撑核心功能: |
| transport | 网络传输对象,接收端需要发送 RTCP 报文(如 NACK、PLI 关键帧请求、RR 接收报告)时,通过该对象将 RTCP 包发送到网络,是接收端与底层网络的桥接接口。 |
| rtt_stats | RTCP 往返时延(RTT)统计对象,负责存储和更新通过 RTCP 交互获取的 RTT 数据 |
| packet_router | 数据包路由器(可选),核心作用:若提供该参数,当前视频流的RtpRtcp模块会被注册为 REMB(远端最大可用带宽)和传输反馈(Transport Feedback) 的候选发送方,参与全局带宽调控; |
| config | 视频接收流的核心配置对象,定义了接收端的关键行为和参数 |
| rtp_receive_statistics | RTP 接收统计核心对象,负责实时收集和计算视频 RTP 流的接收统计数据 |
| rtcp_packet_type_counter_observer | RTCP 包类型计数观察者,负责统计接收端收发的各类 RTCP 包(如 RR、NACK、PLI、FIR 等)的数量, |
| rtcp_cname_callback | RTCP CNAME(规范名)回调接口,当接收端从远端 RTCP 报文中解析到 CNAME 时,会触发该回调 |
| complete_frame_callback | 完整帧回调接口,是接收端的核心输出入口:当RtpVideoStreamReceiver2将乱序、重传的 RTP 包组装成完整的视频帧(符合解码要求)后,会通过该回调将完整帧传递给上层视频解码器,是视频接收流与解码器的桥接。 |
VideoReceiveStream::Config
| 参数 | 说明 |
|---|---|
| nack | NACK(负确认)丢包恢复配置,定义了 NACK 的核心策略:如 NACK 窗口大小(最多追踪多少个丢失包)、最大重传请求次数、重传超时时间等,是保障丢包场景下视频流畅性的核心配置。 |
| rtcp_mode | RTCP 报文发送模式,默认kCompound(复合模式):kCompound:发送传统复合 RTCP 报文(多个 RTCP 包合并为一个报文发送,兼容旧终端);kReducedSize:发送精简 RTCP 报文(仅包含必要字段,减少带宽开销,适用于现代终端)。 |
| red_payload_type | RED(冗余编码)的 RTP payload type,-1表示禁用 RED;RED 通过在一个 RTP 包中携带多个媒体帧的冗余数据,提升丢包场景下的容错性,接收端会解析该 payload type 的包提取有效媒体数据。 |
| rtx_ssrc | RTX(重传流)的 SSRC(同步源标识符),0表示禁用 RTX;RTX 用于单独传输重传的 RTP 包,避免重传包与原始包混淆,接收端通过该 SSRC 识别 RTX 重传包。 |
|