在前面的文章视频的采集流程中,视频数据采集完成后到编码器之前,如果需要渲染处理那里需要两路视频,WebRTC是实现了一个视频分发器VideoBroadcaster;用来分发采集的视频帧;
这篇文章主要以iOS为例介绍VideoBroadcaster分发视频流的过程,需要强调的是iOS的本地渲染没有使用VideoBroadcaster,而是直接通过系统提供的预览类直接显示;Android和pc端的实现都是经过
VideoBroadcaster流转数据后显示;
1. VideoBroadcaster 添加sink
在VideoBroadcaster类的AddOrUpdateSink方法中断点,当peerconnection添加视频的track后,首次断点的调用堆栈如下:

这里从堆栈的最上层开始分析,在VideoRtpSender类的SetSend()方法中,主要是找到source然后切换到work线程,其主要代码如下:
本文深入探讨了WebRTC中的VideoBroadcaster组件,解析了如何添加sink以及视频数据在VideoBroadcaster中的分发过程。在VideoBroadcaster添加sink时,详细介绍了MediaChannel、WebRtcVideoSendStream和AdaptedVideoTrackSource的角色。而在VideoBroadcaster的OnFrame方法中,阐述了视频数据如何被分发到各个sink,并处理旋转和填充黑帧的情况。
订阅专栏 解锁全文

522

被折叠的 条评论
为什么被折叠?



