42 lines
2.1 KiB
Protocol Buffer
42 lines
2.1 KiB
Protocol Buffer
// 预期接收
|
||
syntax = "proto3";
|
||
package main;
|
||
option go_package = "./spb/talk";
|
||
|
||
// 视频类型
|
||
enum VideoTypeE {
|
||
NONE_V = 0;
|
||
H264 = 1; // 也称为 AVC,采用了多种高效的编码技术,如帧间压缩、运动估计、变换编码等,能够在保持较高画质的同时减小文件大小,具有广泛的兼容性和硬件支持
|
||
IMAGE = 2; // 一种简单的视频压缩格式,它将每一帧视频都压缩成单独的JPEG图像帧 经常用于低延迟的视频流应用 如网络摄像头、数字视频录像机、监控视频。它也常用于一些老旧的设备中。
|
||
VP8 = 3; // 由Google开发,开源,软件编码器,WebRTC默认编码器 广泛用于WebRTC视频会议、YouTube视频播放等。VP8 已被Google广泛推广,尤其在HTML5视频和实时视频应用中有着广泛应用。
|
||
}
|
||
// 音频类型
|
||
enum AudioTypeE {
|
||
NONE_A = 0;
|
||
AAC = 1; // AAC 是一种有损压缩音频编解码器,广泛应用于多媒体和流媒体传输。
|
||
G711 = 2; // 无损压缩算法,使用8 kHz的采样率,每个采样点使用8位数据。虽然压缩效率低但非常高的音质,广泛应用于电话和VoIP中。
|
||
OPUS = 3; // 开源,WebRTC默认编码器 低延迟、广泛的比特率范围(从6 kbps到510 kbps)以及适应性强的特性,特别适合用于实时通信(如VoIP)和高质量的音乐流媒体。
|
||
}
|
||
|
||
// 预期接收为渲染方发送,含义为:“我可以理解这些格式,你看看你方便提供什么格式”
|
||
message TalkExpectReq {
|
||
// 如果接收到NONE的话,意味着对方关闭了喇叭或者视频显示,发送方应该停止发送
|
||
// 支持的类型是数组
|
||
repeated VideoTypeE VideoType = 1;
|
||
repeated AudioTypeE AudioType = 2;
|
||
}
|
||
|
||
// 这是音视频提供方的回应,含义为:“马上我就会为你发送这个格式的音视频,你准备好解析器吧”
|
||
message TalkExpectResp {
|
||
// 宽度,单位像素
|
||
uint32 Width = 1;
|
||
// 高度,单位像素
|
||
uint32 Height = 2;
|
||
// 旋转角度 默认0
|
||
uint32 Rotate = 3;
|
||
|
||
// 即将发送的音视频格式
|
||
VideoTypeE VideoType = 4;
|
||
AudioTypeE AudioType = 5;
|
||
}
|