> 文章列表 > 【GB28181】PJSIP库(六)使用视频:获取图像、本地预览、发送接收视频等

【GB28181】PJSIP库(六)使用视频:获取图像、本地预览、发送接收视频等

【GB28181】PJSIP库(六)使用视频:获取图像、本地预览、发送接收视频等

【目录】郭老二博文之:图像视频汇总

1、简介

PJSUA2 的媒体对象均派生自抽象基类pj::Media,媒体对象是指能够生成或读取媒体的对象。
类pj::VideoMedia派生自pj::Media,代表视频媒体。

PJSUA2 支持多种类型的视频媒体对象:

从相机捕获视频帧的VideoMedia;
在屏幕上渲染视频帧的VideoMedia;
向/从远程方发送和接收视频的VideoMedia。

2、视频会议桥

视频会议桥与音频会议桥的原理相同:应用程序将视频源连接到视频目标以允许视频从该源流到指定的目标。如果多个源正在传输到同一目的地,则来自源的视频帧将以特定的图块配置组合成一个视频帧。如果一个源正在传输到多个目的地,桥接器将负责将视频帧从源复制到多个目的地。该桥甚至会负责混合具有不同帧速率的视频。

在 PJSUA2 中,所有类的视频媒体对象pj::VideoMedia都注册到中央会议桥以便于操作。首先,注册的视频媒体不会连接到任何东西,因此媒体不会流出/流向任何对象。

视频媒体源可以使用pj::VideoMedia::startTransmit()和pj::VideoMedia::stopTransmit()启动和停止视频流的传输。

注册到会议桥的音频媒体对象将获得一个端口 ID 号,用于标识桥中的对象。应用程序可以使用 pj::AudioMedia::getPortId() 来检索端口 ID。除非应用程序想要创建自定义视频媒体,