实体说明
部分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 |
赛事的地点 |
|
示例
{
"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": "上海市"
}
字段说明
参数 |
类型 |
描述 |
备注说明 |
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 // 查询目前支持的赛事贴片样式模板信息
参数 |
类型 |
描述 |
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队),该参数优先于比分参数 |
参数 |
类型 |
描述 |
text |
List |
文本 |
+index |
int |
文本槽位index |
+content |
String |
文本信息 |
参数 |
类型 |
描述 |
image |
List |
图片 |
+index |
int |
图片槽位index |
+imageUrl |
String |
图片URL |
+imageUrls |
List<String> |
一个槽位上放置多个图片,水平排列,优先于imageUrl |
参数 |
类型 |
描述 |
clock |
List |
计时器 |
+index |
int |
计时器槽位index |
+reverse |
int |
计时模式,0(递增)/ 1(倒计时),默认为0 |
+initialTime |
int |
初始值,单位秒,默认为0 |
+text |
String |
时间前面显示额外的文本,如text="上半场",显示样式为: "上半场00:01" |
+placeHolderText |
String |
暂停时,显示的文本 |
参数 |
类型 |
描述 |
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]
}
]
}
设备信息Device
字段说明
参数名 |
类型 |
描述 |
备注 |
id |
String |
设备ID |
唯一标识一个设备 |
userId |
String |
用户ID |
|
state |
String |
设备状态 |
sleep(在线), live(直播中),offline(不在线) |
name |
String |
设备名称 |
|
description |
String |
设备描述 |
|
tag |
String |
设备标签 |
|
venueName |
String |
场馆名称 |
|
siteName |
String |
场地名称 |
|
address |
String |
场馆地址 |
|
示例
{
"id": "device-wqweqsxa21",
"userId": "xxxxxxxxxxx",
"name": "百度测试机",
"state": "sleep",
"description": "测试使用",
"tag": "百度",
"venueName": "xxx体育馆",
"siteName": "1号场地",
"address": "北京市xx区xx街xx号"
}