实体信息介绍
更新时间:2024-03-22
实体说明
部分API接口的请求和响应主要基于实体信息,为了避免后续接口字段说明中重复出现大量的字段堆叠,这里先对实体信息进行详细说明。当前实体信息主要有三种:比赛信息、媒体信息和贴片信息。
- 比赛信息:是一场比赛的所有信息,包括赛事基本信息、媒体信息、贴片信息等。
- 媒体信息:包含了直播流、录制、媒体状态等信息。
- 贴片信息:是在赛事直播中添加的文字水印、图片水印、比分板等贴片的信息
比赛信息Event
字段说明
参数名 | 类型 | 描述 | 备注 |
---|---|---|---|
id | String | 赛事ID | 唯一标识一场赛事 |
userId | String | 用户ID | |
deviceId | String | 设备ID | |
secondaryDeviceIdList | List<String> | 从机位设备ID列表 | |
name | String | 赛事名称 | |
state | String | 赛事状态 | active(进行中), notStarted(待开始),finished(已结束),cancelled(已取消), statsCompleted(统计完成,也表示完成态) |
sportType | String | 赛事类型 | 可选项 soccer;basketball;volleyball;rugby;baseball;badminton;tennis;futsal;icehockey; softball;marathon;other |
description | String | 描述 | |
startTime | Long | 赛事开始时间,秒级时间戳 | |
endTime | Long | 赛事结束时间,秒级时间戳 | |
errorMessage | String | 错误信息 | |
media | Object | 媒体信息 | 见下述媒体详细字段 |
callbackUrl | String | 事件回调url | |
graphics | Object | 贴片信息 | 见下述贴片详细字段 |
createTime | time | 创建时间 | |
updateTime | time | 更新时间 | |
secondaryDeviceEventList | List<String> | 从机位的赛事信息 | |
statsType | String | 统计类型 | |
productType | String | 产品类别 | postpay(后付费)、prepay(预付费) |
address | String | 赛事的地点 |
示例
{
"id": "event-1234qwer5678",
"userId": "xxxxxxxxxxx",
"deviceId": "device-wqweqsxa21",
"name": "灰度测试",
"state": "notStarted",
"sportType": "soccer",
"startTime": 1706251800,
"endTime": 1706257200,
"media": {
// 见下述媒体详情
},
"graphics": {
// 见下述贴片详情
},
"createTime": "2024-01-26T14:36:30+08:00",
"updateTime": "2024-01-26T14:38:32.195862911+08:00",
"statsType": "unit",
"productType": "postpay",
"address": "上海市"
}
媒体信息Media
字段说明
参数 | 类型 | 描述 | 备注说明 |
---|---|---|---|
liveStream | List<String> | 直播流输出规格配置 | 目前不支持选择,默认1080p。 |
recording | List<String> | 录制规格配置 | 目前不支持选择,默认1080p。 |
liveStreamOutput | List<Object> | 直播流输出信息 | |
+template | String | 直播流输出规格 | |
+url | Map | 直播流输出url(分协议) | |
recordingFile | List<Object> | 输出流录制文件信息 | |
+template | String | 录制输出规格 | |
+url | String | 录制文件url | |
+duration | Int | 录制时长(单位秒) | |
recordingOriginFile | List | 原始流录制文件信息 | |
+template | String | 录制输出规格 | |
+url | String | 录制文件url | |
+duration | Int | 录制时长(单位秒) | |
mediaState | String | 媒体状态 | liveStreamUnready(直播未开始,直播流未就绪),liveStreaming(直播中,直播流已就绪), recordGenerating(直播结束,录制文件生成中),recordGenerated(直播结束,录制文件已生成) |
forwardUrl | List | 转推地址 | rtmp协议类型的url列表 |
示例
{
"liveStream": [
"1080p"
],
"recording": [
"1080p"
],
"liveStreamOutput": [
{
"template": "1080p",
"url": {
"flv": "http://demo.pull.ibs.com/ibs_live/event-1234xxxx.flv?timestamp=1709198725&secret=d5532835f0f7133dee5b84fabb1d2680",
"hls": "http://demo.hls.ibs.com/ibs_live/event-1234xxxx.m3u8?timestamp=1709198725&secret=855c8d9fd3a602d20385d79672299eda"
}
}
],
"recordingFile": [
{
"template": "1080p",
"url": "http://demo.bos.com/demo.pull.ibs.com/ibs_live/event-1234xxxx/event-1234xxxx_1080p.mp4",
"duration": 9305
}
],
"recordingOriginFile": [
{
"template": "1080p",
"url": "http://demo.bos.com/demo.pull.ibs.com/ibs_origin/event-1234xxxx/event-1234xxxx_1080p.mp4",
"duration": 3948
}
],
"mediaState": "recordGenerated",
"forwardUrl": [
"rtmp://demo.forward.com/live/test412_1"
]
}
贴片信息Graphics
字段说明
贴片是指在原视频比赛流的基础上,附加文字、图片、比分板、计时器等信息。贴片详细字段如下:
参数 | 类型 | 描述 | 备注说明 |
---|---|---|---|
patternId | String | 模版ID | 添加和修改贴片时,模版ID必填,否则不生效。目前支持两种模板:pattern-1 和 pattern-2 |
team | Object | 队伍贴片 | |
scoreboard | Object | 得分板贴片 | |
text | Object | 文字贴片 | |
image | Object | 图片贴片 | |
clock | Object | 计时器贴片 | |
penalty | Object | 点球贴片 |
目前IBS支持两种贴片模板,不同贴片的个数限制和位置基于给定的模板,具体模板样式参考如下:
模板一
贴片槽位位置:
效果展示:
模板二:
贴片槽位位置:
效果展示:
更详细的贴片模板样式信息,可以通过下述接口查询:
GET /v1/graphics/pattern // 查询目前支持的赛事贴片样式模板信息
- 队伍贴片Graphicsa-> team
参数 | 类型 | 描述 |
---|---|---|
homeTeam | Object | 主队信息 |
+name | String | 名称 |
+boxColor | String | 对应box颜色 |
awayTeam | Obejct | 客队信息 |
+name | String | 名称 |
+boxColor | String | 对应box颜色 |
- 得分板贴片Graphicsa->scoreboard
参数 | 类型 | 描述 |
---|---|---|
scoreboard | List | 得分板 |
+index | int | 比分槽位index |
+homeTeamScore | int | 主队比分 |
+awayTeamScore | int | 客队比分 |
+text | String | 比分位置用文字替换(如 A队 vs B队),该参数优先于比分参数 |
- 文本贴片Graphicsa->text
参数 | 类型 | 描述 |
---|---|---|
text | List | 文本 |
+index | int | 文本槽位index |
+content | String | 文本信息 |
- 图片贴片Graphicsa->image
参数 | 类型 | 描述 |
---|---|---|
image | List | 图片 |
+index | int | 图片槽位index |
+imageUrl | String | 图片URL |
+imageUrls | List<String> | 一个槽位上放置多个图片,水平排列,优先于imageUrl |
- 计时器贴片Graphicsa->clock
参数 | 类型 | 描述 |
---|---|---|
clock | List | 计时器 |
+index | int | 计时器槽位index |
+reverse | int | 计时模式,0(递增)/ 1(倒计时),默认为0 |
+initialTime | int | 初始值,单位秒,默认为0 |
+text | String | 时间前面显示额外的文本,如text="上半场",显示样式为: "上半场00:01" |
+placeHolderText | String | 暂停时,显示的文本 |
- 点球贴片Graphicsa->penalty
参数 | 类型 | 描述 |
---|---|---|
penalty | List | 点球 |
+index | int | 点球槽位index |
+homeTeamPenalty | List<Integer> | 主队点球比分,1代表射进,0代表射失 |
+awayTeamPenalty | List<Integer> | 客队点球比分 |
示例
"graphics":{
"patternId":"pattern-1",
"team":{
"homeTeam":{
"name":"非凡排球",
"boxColor":"#FF0000"
},
"awayTeam":{
"name":"沙排联盟",
"boxColor":"#FFFF00"
}
},
"scoreboard":[
{
"index":1,
"homeTeamScore":2,
"awayTeamScore":4
}
],
"text":[
{
"index":1,
"content":"排球比赛"
}
],
"image":[
{
"index":1,
"imageUrl":"http://xxxwq/iamge_1.jpg"
},
{
"index":2,
"imageUrl":"http://xxxwq/image_2.jpg"
},
{
"index":3,
"imageUrls":[
"http://xxxx/image_3.jpg",
"http://xxx4/image_4.jpg"
]
}
],
"clock":[
{
"index":1,
"reverse":0
}
],
"penalty":[
{
"index":1,
"homeTeamPenalty":[1,0,1],
"awayTeamPenalty":[1,0,1,1]
}
]
}