syntax = "proto3"; package video.live.streamng.v1; option go_package = "v1"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; // EmptyStruct 空的message,对应真实service只返回error,没有具体返回值 message EmptyStruct { } // ChangeSrcReq 切换上行 message ChangeSrcReq { // 房间号 int64 room_id = 1; // src int64 src = 2; // 来源平台 string source = 3; // 操作人 string operate_name = 4; // 原因 string reason = 5; } // ClearStreamStatusReq 清理互推 message ClearStreamStatusReq { // 房间号 int64 room_id = 1; } // CloseReply CloseReply message CloseReply { } // CloseReq CloseReq message CloseReq { } // CreateOfficalStreamReply 创建流 message CreateOfficalStreamReply { // 是否成功 bool success = 1; } // CreateOfficalStreamReq 创建流 message CreateOfficalStreamReq { // 流名 string stream_name = 1; // key string key = 2; // 房间号 int64 room_id = 3; // 是否线下测试 string debug = 4; // 线下测试必传 int64 uid = 5; } // AdapterStream 上行流信息 message AdapterStream { // src int64 src = 1; // 房间号 int64 room_id = 2 [(gogoproto.jsontag) = "room_id"]; // 上行 int64 up_rank = 3 [(gogoproto.jsontag) = "up_rank"]; // 上行名称 string src_name = 4 [(gogoproto.jsontag) = "src_name"]; } // GetAdapterStreamByStreamNameReply 适配PHP代码 message GetAdapterStreamByStreamNameReply { // 流名map流具体信息 map list = 1; } // GetAdapterStreamByStreamNameReq 适配PHP代码 message GetAdapterStreamByStreamNameReq { // 流名 string stream_names = 1 [(gogoproto.jsontag) = "stream_names"]; } // LineList 线路信息 message LineList { // 上行 int64 src = 1; // 是否被使用 bool use = 2; // 描述 string desc = 3; } // GetLineListByRoomIDReply 获取线路信息 message GetLineListByRoomIDReply { // 线路信息, 多条 repeated LineList list = 1; } // GetLineListByRoomIDReq 获取线路信息 message GetLineListByRoomIDReq { // 房间号 int64 room_id = 1; } // GetMultiScreenShotReply 获取批量截图 message GetMultiScreenShotReply { // 房间号map截图地址 map list = 1; } // GetMultiScreenShotReq 获取批量截图 message GetMultiScreenShotReq { // 房间号 string room_ids = 1; // 时间戳 int64 ts = 2; // channel 是否为鉴黄 string channel = 3; } // GetMultiStreamInfoReply 批量获取房间信息 message GetMultiStreamInfoReply { // code int32 code = 1; // message string message = 2; // 房间号map流详细信息 map data = 3; } // GetMultiStreamInfoReq 批量获取房间信息 message GetMultiStreamInfoReq { // 房间号 repeated uint32 room_ids = 1; } // GetOriginScreenShotPicReply 获取原图 message GetOriginScreenShotPicReply { // 房间号map截图地址 map list = 1; } // GetOriginScreenShotPicReq 获取原图 message GetOriginScreenShotPicReq { // 房间号 string room_ids = 1; // 时间戳 int64 ts = 2; } // GetRoomIDByStreamNameReply 获取房间号 message GetRoomIDByStreamNameReply { // 房间号 int64 room_id = 1; } // GetRoomIDByStreamNameReq 获取房间号 message GetRoomIDByStreamNameReq { // 流名 string stream_name = 1; } // GetSingleScreeShotReply 获取单个截图 message GetSingleScreeShotReply { // 截图列表 repeated string list = 1; } // GetSingleScreeShotReq 获取单个截图 message GetSingleScreeShotReq { // 房间号 int64 room_id = 1; // 开始时间 string start_time = 2; // 结束时间 string end_time = 3; // channel string channel = 4; } // RoomSrcCheck 上行 message RoomSrcCheck { // 上行 int64 src = 1; // 是否被选择, 1或者0 int32 checked = 2; // 上行名称 string desc = 3; } // GetSrcByRoomIDReply 获取上行信息 message GetSrcByRoomIDReply { // 上行列表 repeated RoomSrcCheck list = 1; } // GetSrcByRoomIDReq 获取上行信息 message GetSrcByRoomIDReq { // 房间号 int64 room_id = 1; } // GetStreamInfoReply 获取单个流信息 message GetStreamInfoReply { // code int32 code = 1; // message string message = 2; // 流详细信息 StreamFullInfo data = 3; } // GetStreamInfoReq 获取单个流信息 message GetStreamInfoReq { // 房间号 uint32 room_id = 1; // 流名 string stream_name = 2; } // GetStreamLastTimeReply 获取最后推流时间 message GetStreamLastTimeReply { // 最后推流时间, -1 正在推流 int64 last_time = 1; } // GetStreamLastTimeReq 获取最后推流时间 message GetStreamLastTimeReq { // 房间号 int64 room_id = 1; } // GetStreamNameByRoomIDReply 获取流名 message GetStreamNameByRoomIDReply { // 流名 string stream_name = 1; } // GetStreamNameByRoomIDReq 获取流名 message GetStreamNameByRoomIDReq { // 房间号 int64 room_id = 1; } // GetUpStreamRtmpReply 获取上行推流地址 message GetUpStreamRtmpReply { // 上行推流地址 UpStreamRtmp up = 1; } // GetUpStreamRtmpReq 获取上行推流地址 message GetUpStreamRtmpReq { // 房间号 int64 room_id = 1; // 免流 string free_flow = 2; // ip string ip = 3; // 所在区域 int64 area_id = 4; // 关注数 int32 attentions = 5; // uid int64 uid = 6; // 平台 string platform = 7; } // StreamBase 流基本信息 message StreamBase { // 流名 string stream_name = 1; // 默认上行 uint32 default_upstream = 2 [(gogoproto.jsontag) = "default_upstream"]; // 正在推流上行 uint32 origin = 3; // 转推cdn repeated uint32 forward = 4; // 主流1或者备用流2 uint32 type = 5; // 推流码 string key = 6; // options uint32 options = 7; } // StreamFullInfo 流信息完整结构 message StreamFullInfo { // 房间号 uint32 room_id = 1; // 是否为冷热流 uint32 hot = 2; // 流列表 repeated StreamBase list = 3; } // PingReply PingReply message PingReply { } // PingReq PingReq message PingReq { } // UpStreamRtmp 上行推流地址详细信息 message UpStreamRtmp { // 推流地址 string addr = 1; // 推流码 string code = 2; // new link string new_link = 3; } // StreamCutReq 切流 message StreamCutReq { // 房间号 int64 room_id = 1; // 切流时间 int64 cut_time = 2; } // TimeTime 时间 message TimeTime { } message CheckLiveStreamReq { repeated int64 room_id = 1; } message CheckLiveStreamReply { map list = 1; } // Stream service service Stream { // GetSingleScreeShot rpc GetSingleScreeShot (GetSingleScreeShotReq) returns (GetSingleScreeShotReply); // GetMultiScreenShot rpc GetMultiScreenShot (GetMultiScreenShotReq) returns (GetMultiScreenShotReply); // GetOriginScreenShotPic rpc GetOriginScreenShotPic (GetOriginScreenShotPicReq) returns (GetOriginScreenShotPicReply); // CreateOfficeStream 创建正式流 rpc CreateOfficalStream (CreateOfficalStreamReq) returns (CreateOfficalStreamReply); // GetStreamInfo 获取单个流信息 rpc GetStreamInfo (GetStreamInfoReq) returns (GetStreamInfoReply); // GetMultiStreamInfo 批量获取流信息 rpc GetMultiStreamInfo (GetMultiStreamInfoReq) returns (GetMultiStreamInfoReply); // ChangeSrc 切换cdn rpc ChangeSrc (ChangeSrcReq) returns (EmptyStruct); // GetStreamLastTime 得到流到最后推流时间;主流的推流时间up_rank = 1 rpc GetStreamLastTime (GetStreamLastTimeReq) returns (GetStreamLastTimeReply); // GetStreamNameByRoomID 需要考虑备用流 + 考虑短号 rpc GetStreamNameByRoomID (GetStreamNameByRoomIDReq) returns (GetStreamNameByRoomIDReply); // GetRoomIDByStreamName 查询房间号 rpc GetRoomIDByStreamName (GetRoomIDByStreamNameReq) returns (GetRoomIDByStreamNameReply); // GetAdapterStreamByStreamName 适配结果输出, 此处也可以输入备用流, 该结果只输出直推上行 rpc GetAdapterStreamByStreamName (GetAdapterStreamByStreamNameReq) returns (GetAdapterStreamByStreamNameReply); // GetSrcByRoomID rpc GetSrcByRoomID (GetSrcByRoomIDReq) returns (GetSrcByRoomIDReply); // GetLineListByRoomID rpc GetLineListByRoomID (GetLineListByRoomIDReq) returns (GetLineListByRoomIDReply); // GetUpStreamRtmp UpStream rpc GetUpStreamRtmp (GetUpStreamRtmpReq) returns (GetUpStreamRtmpReply); // StreamCut 切流的房间和时间, 内部调用 rpc StreamCut (StreamCutReq) returns (EmptyStruct); // Ping Service rpc Ping (PingReq) returns (PingReply); // Close Service rpc Close (CloseReq) returns (CloseReply); // ClearRetweetRecord rpc ClearStreamStatus (ClearStreamStatusReq) returns (EmptyStruct); // CheckLiveStreamList rpc CheckLiveStreamList(CheckLiveStreamReq) returns (CheckLiveStreamReply); }