实体信息介绍
更新时间:2024-06-06
实体说明
部分API接口的请求和响应主要基于实体信息,为了避免后续接口字段说明中重复出现大量的字段堆叠,这里先对实体信息进行详细说明。当前实体信息主要有四种:比赛信息、媒体信息、贴片信息和设备信息。
- 比赛信息:是一场比赛的所有信息,包括赛事基本信息、媒体信息、贴片信息等。
- 媒体信息:包含了直播流、录制、媒体状态等信息。
- 贴片信息:是在赛事直播中添加的文字水印、图片水印、比分板等贴片的信息
- 设备信息:一个设备的所有信息,包含设备名、设备id、设备场地等
比赛信息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 | 赛事的地点 |
示例
Text
1{
2 "id": "event-1234qwer5678",
3 "userId": "xxxxxxxxxxx",
4 "deviceId": "device-wqweqsxa21",
5 "name": "灰度测试",
6 "state": "notStarted",
7 "sportType": "soccer",
8 "startTime": 1706251800,
9 "endTime": 1706257200,
10 "media": {
11 // 见下述媒体详情
12 },
13 "graphics": {
14 // 见下述贴片详情
15 },
16 "createTime": "2024-01-26T14:36:30+08:00",
17 "updateTime": "2024-01-26T14:38:32.195862911+08:00",
18 "statsType": "unit",
19 "productType": "postpay",
20 "address": "上海市"
21}
媒体信息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列表 |
示例
Text
1{
2 "liveStream": [
3 "1080p"
4 ],
5 "recording": [
6 "1080p"
7 ],
8 "liveStreamOutput": [
9 {
10 "template": "1080p",
11 "url": {
12 "flv": "http://demo.pull.ibs.com/ibs_live/event-1234xxxx.flv?timestamp=1709198725&secret=d5532835f0f7133dee5b84fabb1d2680",
13 "hls": "http://demo.hls.ibs.com/ibs_live/event-1234xxxx.m3u8?timestamp=1709198725&secret=855c8d9fd3a602d20385d79672299eda"
14 }
15 }
16 ],
17 "recordingFile": [
18 {
19 "template": "1080p",
20 "url": "http://demo.bos.com/demo.pull.ibs.com/ibs_live/event-1234xxxx/event-1234xxxx_1080p.mp4",
21 "duration": 9305
22 }
23 ],
24 "recordingOriginFile": [
25 {
26 "template": "1080p",
27 "url": "http://demo.bos.com/demo.pull.ibs.com/ibs_origin/event-1234xxxx/event-1234xxxx_1080p.mp4",
28 "duration": 3948
29 }
30 ],
31 "mediaState": "recordGenerated",
32 "forwardUrl": [
33 "rtmp://demo.forward.com/live/test412_1"
34 ]
35}
贴片信息Graphics
字段说明
贴片是指在原视频比赛流的基础上,附加文字、图片、比分板、计时器等信息。贴片详细字段如下:
参数 | 类型 | 描述 | 备注说明 |
---|---|---|---|
patternId | String | 模版ID | 添加和修改贴片时,模版ID必填,否则不生效。目前支持两种模板:pattern-1 和 pattern-2 |
team | Object | 队伍贴片 | |
scoreboard | Object | 得分板贴片 | |
text | Object | 文字贴片 | |
image | Object | 图片贴片 | |
clock | Object | 计时器贴片 | |
penalty | Object | 点球贴片 |
目前IBS支持两种贴片模板,不同贴片的个数限制和位置基于给定的模板,具体模板样式参考如下:
模板一
贴片槽位位置:
效果展示:
模板二:
贴片槽位位置:
效果展示:
更详细的贴片模板样式信息,可以通过下述接口查询:
Plain Text
1GET /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> | 客队点球比分 |
示例
Text
1"graphics":{
2 "patternId":"pattern-1",
3 "team":{
4 "homeTeam":{
5 "name":"非凡排球",
6 "boxColor":"#FF0000"
7 },
8 "awayTeam":{
9 "name":"沙排联盟",
10 "boxColor":"#FFFF00"
11 }
12 },
13 "scoreboard":[
14 {
15 "index":1,
16 "homeTeamScore":2,
17 "awayTeamScore":4
18 }
19 ],
20 "text":[
21 {
22 "index":1,
23 "content":"排球比赛"
24 }
25 ],
26 "image":[
27 {
28 "index":1,
29 "imageUrl":"http://xxxwq/iamge_1.jpg"
30 },
31 {
32 "index":2,
33 "imageUrl":"http://xxxwq/image_2.jpg"
34 },
35 {
36 "index":3,
37 "imageUrls":[
38 "http://xxxx/image_3.jpg",
39 "http://xxx4/image_4.jpg"
40 ]
41 }
42 ],
43 "clock":[
44 {
45 "index":1,
46 "reverse":0
47 }
48 ],
49 "penalty":[
50 {
51 "index":1,
52 "homeTeamPenalty":[1,0,1],
53 "awayTeamPenalty":[1,0,1,1]
54 }
55 ]
56 }
设备信息Device
字段说明
参数名 | 类型 | 描述 | 备注 |
---|---|---|---|
id | String | 设备ID | 唯一标识一个设备 |
userId | String | 用户ID | |
state | String | 设备状态 | sleep(在线), live(直播中),offline(不在线) |
name | String | 设备名称 | |
description | String | 设备描述 | |
tag | String | 设备标签 | |
venueName | String | 场馆名称 | |
siteName | String | 场地名称 | |
address | String | 场馆地址 |
示例
Text
1{
2 "id": "device-wqweqsxa21",
3 "userId": "xxxxxxxxxxx",
4 "name": "百度测试机",
5 "state": "sleep",
6 "description": "测试使用",
7 "tag": "百度",
8 "venueName": "xxx体育馆",
9 "siteName": "1号场地",
10 "address": "北京市xx区xx街xx号"
11}