XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

补充杜比视界、无损音轨、AV1编码等相关信息 (#469)

* 补充杜比视界、无损音轨、AV1编码等相关信息 * 将视频编码代码单独列表

42bb61a
7rikka <takanashirikkax@gmail.com>
提交于

代码差异

1 个文件 +149 -51
Modified video/videostream_url.md +149 -51
@@ -47,7 +47,7 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
47 47 | 0 | flv格式 | 仅H.264编码<br />部分老视频存在分段现象<br />与mp4格式及dash格式互斥 |
48 48 | 1 | mp4格式 | 仅H.264编码<br />不存在视频分段<br />与flv格式及dash格式互斥 |
49 49 | 16 | dash格式 | H.264编码或H.265编码<br />部分老视频的清晰度上限低于flv格式<br />与mp4格式及flv格式互斥 |
50 | 64 | 是否需求 HDR 视频 | 必须为dash格式<br />需要`qn=125`<br />大多情况需求认证大会员账号 |
50 | 64 | 是否需求 杜比世界(HDR) 视频 | 必须为dash格式<br />需要`qn=125`<br />大多情况需求认证大会员账号 |
51 51 | 128 | 是否需求 4K 分辨率 | 该值与`fourk`字段协同作用<br />需要`qn=120`<br />大多情况需求认证大会员账号 |
52 52 | 256 | 是否需求杜比音频 | 必须为dash格式<br />大多情况需求认证大会员账号 |
53 53 | 512 | 是否需求杜比视界 | 必须为dash格式<br />大多情况需求认证大会员账号 |
@@ -56,6 +56,14 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
56 56
57 57 例如:请求dash格式且需要HDR的视频流,则`fnval=16|64=80`
58 58
59 ## 视频编码代码
60
61 | 值 | 含义 | 备注 |
62 | ---- | ---------- | ---------------- |
63 | 7 | AVC编码 | 8K视频无此格式 |
64 | 12 | HEVC编码 | |
65 | 13 | AV1编码 | |
66
59 67 ## 视频伴音音质代码
60 68
61 69 | 值 | 含义 |
@@ -63,6 +71,8 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
63 71 | 30216 | 64K |
64 72 | 30232 | 132K |
65 73 | 30280 | 192K |
74 | 30250 | 杜比全景声 |
75 | 30251 | Hi-Res无损 |
66 76
67 77 ## 获取视频流URL(web端)
68 78
@@ -126,17 +136,19 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
126 136 | message | str | 空 | 作用尚不明确 |
127 137 | quality | num | 当前的视频分辨率代码 | **值含义见上表** |
128 138 | format | str | 视频格式 | |
129 | timelength | num | 视频长度 | 单位为毫秒<br />不同分辨率/格式可能有略微差异 |
139 | timelength | num | 视频长度(毫秒值) | 单位为毫秒<br />不同分辨率/格式可能有略微差异 |
130 140 | accept_format | str | 视频支持的全部格式 | 每项用`,`分隔 |
131 141 | accept_description | array | 视频支持的分辨率列表 | |
132 142 | accept_quality | array | 视频支持的分辨率代码列表 | **值含义见上表** |
133 143 | video_codecid | num | 固定值:7 | 作用尚不明确 |
134 144 | seek_param | str | 固定值:start | 作用尚不明确 |
135 | seek_type | str | 固定值:offset | 作用尚不明确 |
136 | durl | array | 视频分段 | **注:仅flv/mp4存在此项** |
145 | seek_type | str | offset(dash、flv)<br/> second(mp4) | 作用尚不明确 |
146 | durl | array | 视频分段**注:仅flv、mp4存在此项** | **注:仅flv/mp4存在此项** |
137 147 | dash | obj | dash音视频流信息 | **注:仅dash存在此项** |
138 148 | support_formats | array | 支持格式的详细信息 | |
139 149 | high_format | | null | |
150 | last_play_time | num | 上次播放进度 | 毫秒值 |
151 | last_play_cid | num | 上次播放分p的cid | |
140 152
141 153 `data`中的`accept_description`数组:
142 154
@@ -171,14 +183,15 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
171 183 | new_description | str | 格式描述 | |
172 184 | display_desc | str | 格式描述 | |
173 185 | superscript | str | (?) | |
174 | codecs | array | (?) | |
186 | codecs | array | 可用编码格式列表 | |
175 187
176 188 `support_formats`中的`codecs`数组:
177 189
178 190 | 项 | 类型 | 内容 | 备注 |
179 191 | ---- | ---- | --------------- | ---- |
180 | 0 | str | (?) | |
181 | 1 | str | (?) | |
192 | 0 | str | 例:av01.0.13M.08.0.110.01.01.01.0 | 使用AV1编码 |
193 | 1 | str | 例子:avc1.640034 | 使用AVC编码 |
194 | 2 | str | 例子:hev1.1.6.L153.90 | 使用HEVC编码 |
182 195
183 196
184 197 ---
@@ -189,7 +202,7 @@ B站的视频为http流媒体,需要对应的api以视频id获取取流url,
189 202
190 203 | 项 | 类型 | 内容 | 备注 |
191 204 | ---- | ---- | ----------------- | ------------------------- |
192 | 0 | obj | 视频分段1信息 | **注:仅flv方式具有分段** |
205 | 0 | obj | 视频分段1信息 | **注:仅flv、mp4方式具有分段** |
193 206 | n | obj | 视频分段(n+1)信息 | |
194 207 | …… | obj | …… | |
195 208
@@ -250,48 +263,94 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \
250 263
251 264 ```json
252 265 {
253 "code": 0,
254 "message": "0",
255 "ttl": 1,
256 "data": {
257 "from": "local",
258 "result": "suee",
259 "message": "",
266 "code": 0,
267 "message": "0",
268 "ttl": 1,
269 "data": {
270 "from": "local",
271 "result": "suee",
272 "message": "",
273 "quality": 64,
274 "format": "flv720",
275 "timelength": 283801,
276 "accept_format": "hdflv2,flv,flv720,flv480,mp4",
277 "accept_description": [
278 "高清 1080P+",
279 "高清 1080P",
280 "高清 720P",
281 "清晰 480P",
282 "流畅 360P"
283 ],
284 "accept_quality": [
285 112,
286 80,
287 64,
288 32,
289 16
290 ],
291 "video_codecid": 7,
292 "seek_param": "start",
293 "seek_type": "offset",
294 "durl": [
295 {
296 "order": 1,
297 "length": 283801,
298 "size": 70486426,
299 "ahead": "",
300 "vhead": "",
301 "url": "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=a4d5f1713e1ba313041d034a958c2414&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=0,3&agrr=1&bw=249068&logo=80000000",
302 "backup_url": [
303 "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=a4d5f1713e1ba313041d034a958c2414&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&agrr=1&bw=249068&logo=40000000",
304 "https://upos-sz-mirrorcosb.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=7b8a6924948864944815ec0748cc108f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&agrr=1&bw=249068&logo=40000000"
305 ]
306 }
307 ],
308 "support_formats": [
309 {
260 310 "quality": 112,
261 311 "format": "hdflv2",
262 "timelength": 283701,
263 "accept_format": "hdflv2,flv,flv720,flv480,mp4",
264 "accept_description": [
265 "高清 1080P+",
266 "高清 1080P",
267 "高清 720P",
268 "清晰 480P",
269 "流畅 360P"
270 ],
271 "accept_quality": [
272 112,
273 80,
274 64,
275 32,
276 16
277 ],
278 "video_codecid": 7,
279 "seek_param": "start",
280 "seek_type": "offset",
281 "durl": [
282 {
283 "order": 1,
284 "length": 283701,
285 "size": 219827828,
286 "ahead": "",
287 "vhead": "",
288 "url": "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000",
289 "backup_url": [
290 "http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=ks3cbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=914ef921c5258e067c382601a4b1f81c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000"
291 ]
292 }
293 ]
294 }
312 "new_description": "1080P 高码率",
313 "display_desc": "1080P",
314 "superscript": "高码率",
315 "codecs": null
316 },
317 {
318 "quality": 80,
319 "format": "flv",
320 "new_description": "1080P 高清",
321 "display_desc": "1080P",
322 "superscript": "",
323 "codecs": null
324 },
325 {
326 "quality": 64,
327 "format": "flv720",
328 "new_description": "720P 高清",
329 "display_desc": "720P",
330 "superscript": "",
331 "codecs": null
332 },
333 {
334 "quality": 32,
335 "format": "flv480",
336 "new_description": "480P 清晰",
337 "display_desc": "480P",
338 "superscript": "",
339 "codecs": null
340 },
341 {
342 "quality": 16,
343 "format": "mp4",
344 "new_description": "360P 流畅",
345 "display_desc": "360P",
346 "superscript": "",
347 "codecs": null
348 }
349 ],
350 "high_format": null,
351 "last_play_time": 0,
352 "last_play_cid": 0
353 }
295 354 }
296 355 ```
297 356
@@ -390,12 +449,13 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \
390 449
391 450 | 字段 | 类型 | 内容 | 备注 |
392 451 | --------------- | ----- | ---------- | ------------ |
393 | duration | num | 677 | 视频长度(秒) |
452 | duration | num | 视频长度 | 秒值 |
394 453 | minBufferTime | num | 1.5 | 作用尚不明确 |
395 454 | min_buffer_time | num | 1.5 | 作用尚不明确 |
396 455 | video | array | 视频流信息 | |
397 456 | audio | array | 音频流信息 | |
398 | dolby | | null | |
457 | dolby | obj | 杜比全景声音轨信息 | |
458 | flac | obj | 无损音轨信息 | |
399 459
400 460 `dash`中的`video`数组:
401 461
@@ -437,7 +497,7 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \
437 497 | start_with_sap | num | **同上** | |
438 498 | SegmentBase | obj | 见下表 | url 对应 m4s 文件中,头部的位置 |
439 499 | segment_base | obj | **同上** | |
440 | codecid | num | 视频: 7或12<br />音频: 0 | 7=AVC,12=HEVC <br />出处是 FLV 格式里 VideoTag 中的 CodecId 域;<br />FLV 标准不支持 HEVC,但 codecId 值为 12 是各厂共识 |
500 | codecid | num | | |
441 501
442 502 `video`数组中的对象中的`backup_url`数组:
443 503
@@ -456,6 +516,44 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \
456 516
457 517 > 常规 MP4 文件的索引信息放在 moov box 中,其中包含每一帧 (不止是关键帧) 的一些信息。在 DASH 方式下,关键帧信息移到了 sidx box 里,其他的则分散到了各个 moof (movie fragment) box 中。<br>对这里的文件结构感兴趣的,可以参考标准文档 ISO/IEC 14496-12,如果不想那么深入的话可以百度「MP4 文件结构」。
458 518
519 `dash`中的`dolby`对象:
520
521 此项为”杜比视界“视频独有
522
523 | 字段 | 类型 | 内容 | 备注 |
524 | -------------- | ---- | --------------------------------------------- | ------------------------------------------------------------ |
525 | type | num | 2 | |
526 | audio | array | 杜比音轨列表 | |
527
528 `dolby`对象中的`audio`数组:
529
530 | 项 | 类型 | 内容 | 备注 |
531 | ---- | ---- | ------------------------ | ----------------------------------------------- |
532 | 0 | obj | 杜比音轨信息 | |
533
534 `audio`数组中的对象:
535
536 | 项 | 类型 | 内容 | 备注 |
537 | ---- | ---- | ------------------------ | ----------------------------------------------- |
538 | id | num | 音轨代码,固定为:30250 | |
539 | base_url | str | 音频流url | |
540 | backup_url | array | 音频流备用url列表 | |
541 | bandwidth | num | 音频所需最低带宽 | |
542 | mime_type | num | 音频格式类型 | |
543 | codecs | num | 音频编码信息(ec-3) | |
544 | segment_base | obj | **同上** | |
545 | size | num | 音轨文件大小 |单位为Byte |
546
547 `dash`中的`flac`对象:
548
549 | 项 | 类型 | 内容 | 备注 |
550 | ---- | ---- | ------------------------ | ----------------------------------------------- |
551 | display | bool | 是否在播放器显示切换Hi-Res无损音轨按钮 | |
552 | audio | obj | 音频流信息 | |
553
554 `flac`中的`audio`对象:
555
556 同:`video`及`audio`数组中的对象
459 557
460 558 **示例:**
461 559