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