-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathusecase.zh.html
482 lines (463 loc) · 26.1 KB
/
usecase.zh.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
<!DOCTYPE html>
<html lang="zh-hans">
<head>
<title>弹幕用例规范</title>
<meta charset='utf-8'>
<link rel="stylesheet" href="./local.css" />
<script src='https://www.w3.org/Tools/respec/respec-w3c' async class='remove'></script>
<script class='remove'>
var respecConfig = {
specStatus: "CG-DRAFT",
edDraftURI: "https://w3c.github.io/danmaku/usecase.zh.html",
shortName: "danmaku",
editors: [{
name: "黄之昊",
companyURL: "https://www.bilibili.com/",
company: "哔哩哔哩"
}, {
name: "徐嵩",
companyURL: 'http://www.migu.cn',
company: "中国移动咪咕"
},{
name: "薛富侨",
companyURL: "http://www.chinaw3c.org/",
company: "W3C"
}, {
name: "赵磊",
companyURL: "http://www.migu.cn",
company: "中国移动咪咕"
}, {
name: "谭兆歆",
companyURL: "https://www.bilibili.com/",
company: "哔哩哔哩"
}, {
name: "陈亚军",
companyURL: 'http://www.migu.cn',
company: "中国移动咪咕"
}],
wg: "Bullet Chatting Community Group",
wgURI: "https://www.w3.org/community/bullet-chatting/",
github: {
repoURL: "https://github.com/w3c/danmaku",
branch: "main"
},
};
</script>
</head>
<body>
<section id='abstract'>
<p>
此文档描述了弹幕的一系列用例与需求。
</p>
</section>
<section id='sotd'>
<p>
这是一份进行中的提案草稿。欢迎参加 <a href="https://www.w3.org/community/bullet-chatting/">W3C 弹幕社区组</a>关于弹幕的相关讨论。
</p>
</section>
<section id='introduction'>
<h2>引言</h2>
<p>
为了创造更好的多媒体体验,许多视频网站都添加了社交机制,使用户可以在媒体时间轴上的特定点发布评论和查看其他人的评论,其中一种机制被称为<a>弹幕</a>(dàn mù),在日语中也称为<span lang="ja">コメント</span>(<em>comment</em>)或者<span lang="ja">弾幕</span>(<em>danmaku</em>),在播放过程中,可能会出现大量评论和注释,并且直接渲染在视频上(参见<a href="#fig-an-example-of-bullet-chatting"></a>)。
</p>
<p>
<a>弹幕</a>最初是由日本视频网站Niconico(<span lang="ja">ニコニコ</span>)引入的。在中国,除了在Bilibili和AcFun等弹幕视频网站中使用之外,其他主流视频网站(例如腾讯视频,爱奇艺视频,优酷视频和咪咕视频)中的视频播放器也支持<a>弹幕</a>(请参阅<a href="#commercial"></a>)。
</p>
<figure id="fig-an-example-of-bullet-chatting">
<img alt="示例示意图" src="images/danmaku.png" width="600">
<figcaption>
图为弹幕样例截图
</figcaption>
</figure>
<!-- <p>
传统的播放器评论系统是独立于播放器之外的,因此评论的内容大多围绕在整个视频上。
但是弹幕但是其只会在视频中特定的一个时间点出现,因此在相同时刻发送的弹幕基本上也具有相同的主题。
弹幕的喜爱者多以80后、90、00后年轻人为主,这和中国计划生育的国情也有关。这代年轻人大多是独生子女,看视频本身是孤独的娱乐项目,在参与评论时就会有与其他观众同时评论的感觉,找到更多的共鸣感。
</p> -->
<section>
<h2>弹幕的属性</h2>
<p>
<a>单条弹幕</a>具有以下三种属性:
</p>
<ul>
<li>
<dfn>模式</dfn>:滚动弹幕、逆向弹幕、顶部弹幕、底部弹幕。
</li>
<li>
<dfn>基本属性</dfn>:正文、出现时间、持续时间、字体、字号、颜色等样式。
</li>
<li>
<dfn>容器</dfn>:块级元素,一般是与视频大小相同的区域。
</li>
</ul>
</section>
<section>
<h2>弹幕的特性</h2>
<p>
<a>弹幕</a>具有以下三种特性:
</p>
<ul>
<li>
<dfn>空间的独立性</dfn>:虽然在同一个元素内展现,但空间计算上每种弹幕<a>模式</a>处于不同<a>层</a>,每种<a>模式</a>也可以有多<a>层</a>,每层内的弹幕占位不会重叠。
</li>
<li>
<dfn>渲染的确定性</dfn>:如果弹幕<a>容器</a>和渲染的列表固定不变,在没有用户交互(比如暂停<a>单条弹幕</a>)的情况下,每次渲染每条弹幕所出现的位置和顺序都是固定的。
</li>
<li>
<dfn>各模式的统一性</dfn>:每种模式的弹幕的生存时间保持一致。
</li>
</ul>
</section>
<section id='basic-modes'>
<h2>弹幕的基本模式</h2>
<p>
<a>单条弹幕</a>的基本<a>模式</a>有四种:
</p>
<ol>
<li>
<dfn>滚动弹幕</dfn>:自右向左匀速滚动过屏幕的弹幕,以自上而下的优先度展示。
</li>
<li>
<dfn>逆向弹幕</dfn>:自左向右匀速滚动过屏幕的弹幕,以自上而下的优先度展示,逆向弹幕是相对于滚动弹幕的相反方向滚动的弹幕展示模式。
</li>
<li>
<dfn>顶部弹幕</dfn>:自上而下静止居中的弹幕、以自上而下的优先度展示。
</li>
<li>
<dfn>底部弹幕</dfn>:自下而上静止居中的弹幕、以自下而上的优先度展示。
</li>
</ol>
<p>
此外,弹幕还具有定制程度更高的高级模式,并不在本标准的描述范围。
</p>
</section>
</section>
<section id="terminology">
<h2>术语</h2>
<p>
本文档使用了如下术语:
</p>
<ul>
<li><dfn>弹幕</dfn> — 一种媒体体验的增强机制,通过该机制,可以在视频上的特定时间点以特定方式渲染和动画化大量的评论和注释。该术语还用于描述媒体之外的内容中的类似体验(例如,参见<a href="#interaction-within-a-webpage"></a>和 <a href="#interactive-wall"></a>)。</li>
<li><dfn>单条弹幕</dfn> — 弹幕集合中的一条单独的<a>弹幕</a>。</li>
<li><dfn>层</dfn> — 处于相同<a>模式</a>的<a>单条弹幕</a>集合。每层内的弹幕之间不会重叠,每种<a>模式</a>也可以有多个层。</li>
</ul>
</section>
<section>
<h2>为什么需要弹幕?</h2>
<section>
<h2>用户体验因素分析</h2>
<p>在直播文字互动的场景中常见的交互方式有:聊天室和弹幕两种方式。如下图示意图所示:</p>
<figure>
<img alt="聊天室示例示意图" src="images/why1.png" width="600">
<figcaption>
图为聊天室方式:输入文本内容后,内容列表将整体匀速的从下方向上滚动
</figcaption>
</figure>
<figure>
<img alt="弹幕示例示意图" src="images/why2.png" width="600">
<figcaption>
图为弹幕方式:输入文本内容后,单行文本将出现在视频右侧,在独立的通道中从右到左移动
</figcaption>
</figure>
<section>
<h2>弹幕展示的优势</h2>
<p>从下图中我们不难看出,当直播房间有海量用户时左侧聊天室的内容将会快速滚动,单条信息的驻留时间受整个聊天室的活跃度影响,用户越是活跃单条信息的停留时间越短。</p>
<figure>
<img alt="示例示意图" src="images/why3.png" width="600">
<figcaption>
图为聊天室单条信息的驻留时间示意图
</figcaption>
</figure>
<p>而弹幕模式则从以下几个方面改善了海量信息的展示问题:</p>
<ul>
<li>
<p>信息密度</p>
<p>从下图可以看出,与聊天室模式相比,弹幕模式有更宽的展示区域,在相同的信息以相同字号进行展示时弹幕模式有更好的阅读体验。</p>
<figure>
<img alt="示例示意图" src="images/why4.png" width="600">
<figcaption>
图为弹幕单条信息的驻留时间示意图
</figcaption>
</figure>
</li>
<li>
<p>信息更新频率</p>
<p>在聊天模式中,单条信息与全体信息以同样的频率整体向上滚动无法分离,而弹幕模式每条信息都在独立的通道中移动,并不受其他信息的更新频率所影响,可以通过算法较好的保障每条信息在屏幕内的展示时长。</p>
</li>
<li>
<p>视线移动</p>
<p>在聊天模式中,用户如果关注视频内容则无法阅读文字,反之亦然。而弹幕模式通过把文字覆盖于画面之上让用户可以同时阅读文字与视频内容,无需视线在两个区域间往返移动,有更好的沉浸体验。具体如下面两图对比不难看出。
</p>
<figure>
<img alt="示例示意图" src="images/why5.png" width="600">
<figcaption>
图为聊天室模式的视线移动示意图
</figcaption>
</figure>
<figure>
<img alt="示例示意图" src="images/why6.png" width="600">
<figcaption>
图为弹幕模式的视线移动示意图
</figcaption>
</figure>
</li>
<li>
<p>阅读习惯</p>
<p>在大多数语言中文字的阅读习惯是从左到右、从上到下,因此人们养成了横向阅读单行信息的习惯,弹幕模式下文字从右向左移动,人从左向右阅读,形成从左向右的合力,在这种模式下我们可以用较短时间理解文字的含义。如下图所示:
</p>
<figure>
<img alt="示例示意图" src="images/why7.png" width="600">
<figcaption>
图为弹幕的阅读方向示意图
</figcaption>
</figure>
<p>在聊天室模式下人从左到右阅读,而阅读中的文字则在不停的向上移动,形成一个倾斜向上的合力,这会对快速阅读产生了障碍。如下图所示:</p>
<figure>
<img alt="示例示意图" src="images/why8.png" width="600">
<figcaption>
图为聊天室的阅读方向示意图
</figcaption>
</figure>
</li>
</ul>
</section>
</section>
<section>
<h2>心理因素分析</h2>
<p>
从广泛的社会活动层面上来说,独自进行一项活动与和一群人一起进行一项活动相比,群体活动能够时刻影响人们对当前活动的评价以及对其的事后评价,一种“凝聚”的感觉会让人们对活动的评价更加积极。弹幕本质上来讲也是一种社会活动,相比传统视频,弹幕可以将视频和文字结合在一起,不仅可以更加吸引用户的注意力,同时可以可以提升用户的参与感。在不离开视频画面的前提下,通过与他人交流,还可以增加用户的社会存在感。
</p>
</section>
</section>
<section id="scenarios">
<h2>使用场景</h2>
本节主要描述弹幕的具体使用场景。
<section id="on-demand-video-interaction">
<h2>点播视频互动</h2>
<p>
在观看视频网站提供视频时,观看者在观看视频内容过程中根据内容启发会有一些想法或者吐槽点,就想要发表出来和更多的人分享,这时就需要弹幕来满足这个需求。通过弹幕,可以把同一时间观看者的评论通过固定方向滚动的方式显示在视频区域中,或者静止的显示在视频区域的顶部或底部,这样可以增加观看者和视频的互动特性以及观看者之间的互动。在相同时刻发送的弹幕基本上也具有相同的主题。
</p>
<figure>
<img alt="点播视频互动案例截图" src="images/video-on-demand.png" width="600">
<figcaption>
点播视频弹幕案例
</figcaption>
</figure>
<p>
此种场景,弹幕数据一般是离线数据(非实时),也存在少部分实时数据。
</p>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户需要可以输入弹幕的内容,设置弹幕的展现方式(包括字体大小、字体颜色、是否包含图片、弹幕展示的区域等),发送后能实时地展示在屏幕上。</li>
<li>
<b>从服务提供商角度看:</b>需要在视频上展示用户发送的弹幕,弹幕可能是历史用户在某一刻发送的,或则用户当下实时发送的。对于实时弹幕,需要把实时发送的数据和视频的时间线关联;需要保存用户发送的弹幕信息数据到服务端的持久化存储;需要同步此条弹幕给其他将要看到这一时刻的用户。对于离线弹幕,需要从服务端获取弹幕的数据,并渲染到指定的区域。对于Web页面展示的弹幕需要和APP等端的弹幕展示内容和时刻一致。
</li>
</ul>
</div>
</section>
<section id="live-streaming-interaction">
<h2>直播视频互动</h2>
<p>弹幕在视频直播场景中也能够成为主播与观众直接互动的方式。比起传统的实时评论,主播能够根据屏幕上弹幕的展现更直观了解观众的需求和反馈,更方便地调整接下来的行动和处理,也能够根据用户的输入进行交互操作。</p>
<figure>
<img alt="直播视频互动案例截图" src="images/video-live.png" width="600">
<figcaption>
直播视频弹幕案例-直播中通过发送弹幕指令投票来控制直播游戏
</figcaption>
</figure>
<p>
此种场景,弹幕数据一般是实时数据。
</p>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户发送的弹幕的内容可以实时的展示在屏幕上。
</li>
<li>
<b>从服务提供商角度看:</b>需要把用户发送的弹幕实时的展示出来,并且同步展示到其他用户的屏幕上。
</li>
</ul>
</div>
</section>
<section>
<h2>标识视频亮点</h2>
<p>
由于弹幕只会在视频中特定的一个时间点出现,如果某个时间点出现大量弹幕,说明该时间点具有亮点和高能,观众对此时间点事件异常感兴趣,也能够作为视频打点和推荐等功能的参考数据。
</p>
<figure>
<img alt="标识视频亮点案例截图" src="images/video-highlights.jpeg" width="600">
<figcaption>
标识视频亮点案例-可以通过弹幕的密度或者将弹幕的时间分布情况用图形表示,用来标识视频亮点
</figcaption>
</figure>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户可以在任意视频时间输入弹幕的内容,设置弹幕的展现方式,发送后能实时地展示在屏幕上。</li>
<li>
<b>从服务提供商角度看:</b>用户选择开启弹幕时,需要提供给用户弹幕列表,需要在视频上展示用户发送的弹幕,也可以将弹幕列表对应视频进度时间的弹幕数量以图形的方式展现给用户。
</li>
</ul>
</div>
</section>
<section>
<h2>视频内容增强</h2>
<p>
在视频点播或直播过程中,存在一些阶段,用户关注的不再是视频本身的画面内容,而是某个点所激发的情绪、情感,此时观看者通过弹幕叠加在视频上能够增强视频此时的效果,达到更好的体验。比如比赛胜利、剧情高潮时用以渲染气氛、或对惊悚恐怖部分的遮盖处理以降低恐惧感等。
</p>
<figure>
<img alt="视频内容增强案例截图" src="images/content-no-bulletchat.png" width="600">
<figcaption>
视频内容增强弹幕案例-截图为恐怖片的恐怖场景下,没有弹幕遮盖
</figcaption>
</figure>
<figure>
<img alt="视频内容增强案例截图" src="images/content.png" width="600">
<figcaption>
视频内容增强弹幕案例-截图为恐怖片的恐怖场景下,有弹幕的遮盖降低了恐怖的气氛
</figcaption>
</figure>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户可以选择开启弹幕或关闭弹幕。</li>
<li>
<b>从服务提供商角度看:</b>用户选择开启弹幕时,需要提供给用户弹幕列表,根据弹幕发送时对应的时间点在视频播放到对应时间点时展示弹幕。
</li>
</ul>
</div>
</section>
<section id="interaction-within-a-webpage">
<h2>Web页面互动</h2>
<p>
有时为了增加页面的效果,产品运营人员希望把相关内容做成有视觉冲击力的弹幕效果,这样可以在Web页面中对相关活动进行宣传重点,以此来增加页面的冲击力趣味性,吸引年轻人的关注,增加收益。
</p>
<p>
此种场景,弹幕是单独展现的,不依附于视频。
</p>
<figure>
<img alt="Web页面弹幕案例截图" src="images/web_bulletchat.png" width="600">
<figcaption>
Web页面弹幕案例-关于某一个活动专题的讨论
</figcaption>
</figure>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户需要可以输入弹幕的内容,设置弹幕的展现方式(包括字体大小、字体颜色、是否包含图片、弹幕展示的区域等),发送后能实时的展示在屏幕上。
</li>
<li>
<b>从服务提供商角度看:</b>弹幕可能是历史用户在某一刻发送的,或则用户当下实时发送的。对于实时弹幕,需要把实时发送的弹幕及时的展示在屏幕上;需要保存用户发送的弹幕信息数据到服务端的持久化存储;需要同步此条弹幕给其他即将访问此页面的用户。对于离线弹幕,需要从服务端获取弹幕的数据,并渲染到指定的区域。
</li>
</ul>
</div>
</section>
<section id="interactive-wall">
<h2>互动上墙</h2>
<p>
上墙是指网友通过发送弹幕内容,展示在线下会场准备好的显示屏上,增加线下活动或者会议的交互体验。上墙可以理解为是纯弹幕的应用,相当于大屏上不展示视频,甚至不展示内容,只展示活动现场或者网友对于线下活动的讨论内容,增强线下活动或者会议气氛,让参会者的参与感更强。
</p>
<p>
此种场景,弹幕也是单独展现的,不依附于视频。
</p>
<figure>
<img alt="弹幕互动上墙案例截图" src="images/bulletchat-wall.png" width="600">
<figcaption>
弹幕互动上墙案例-某活动现场,观众通过发送弹幕到大屏上参与活动
</figcaption>
</figure>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>在活动现场通过能够访问网页的设备输入弹幕内容和展现方式,发送后能实时的展示在屏幕上。
</li>
<li>
<b>从服务提供商角度看:</b>提供发送弹幕的页面,并将收到的内容实时展现在会场显示屏上。
</li>
</ul>
</div>
</section>
<section id="masking">
<h2>蒙版弹幕</h2>
<p>
观看视频的时候,可能会因为观众对于内容的喜爱或者吐槽而有大量的弹幕在同时出现在画面上,此时就会把视频本身的内容覆盖的严严实实,影响大家对于视频内容的观看,比如学习舞蹈的时候被弹幕覆盖看不清舞蹈的动作等。这种情况下,就可以借助计算机视觉和AI的能力,对视频内容进行分析,并将之前已经定义好的“视频主体内容”进行识别,生成蒙版并分发给客户端后,客户端利用CSS3的特性进行渲染从而达成弹幕不会覆盖定义的“视频主体内容”的效果,这种弹幕被称为“蒙版弹幕”,也被称为“防挡弹幕”。
</p>
<figure>
<img alt="蒙版弹幕" src="images/bulletchat-Anti-block.png" width="600">
<figcaption>
图为防挡弹幕中没有被弹幕遮挡的舞者
</figcaption>
</figure>
<div>
<p><b>需求</b></p>
<ul>
<li>
<b>从用户角度看:</b>用户可以选择启用蒙版弹幕或者关闭蒙版弹幕的功能。
</li>
<li>
<b>从服务提供商角度看:</b>需要借助计算机视觉和AI的能力识别视频主题内容,计算出蒙版区域,返回给客户端实现蒙版效果。
</li>
</ul>
</div>
</section>
<section id="non-text">
<h2>非文字弹幕</h2>
<p>
弹幕内容可以包含emoji表情和图片等非文字内容,更加形象丰富的表达观看者的想法和观点。
</p>
<figure>
<img alt="非文字弹幕" src="images/bulletchat-fig.png" width="600">
<figcaption>
图为弹幕内容中包含图片和emoji表情内容
</figcaption>
</figure>
</section>
</section>
<section>
<h2>建议的接口和属性</h2>
<p>请参考<a href="api.zh.html">建议的接口和属性</a>规范。</p>
</section>
<section id="subtitles">
<h2>弹幕和字幕的差别</h2>
<section>
<h2>弹幕 vs WebVTT</h2>
<p>[[webvtt1]]是一种用于标记文本轨道的文件格式,[[webvtt1]]的典型应用场景为视频字幕。而目前弹幕的典型应用场景也都是和视频关联的,弹幕一度被称为是字幕的一个子集,是一种特殊的字幕形式。</p>
<p>其实,并不是这样。从“<a href="#scenarios">使用场景</a>”可以看到,弹幕使用场景包含和视频关联的场景,也包括不和视频相关联的场景,如:“<a href="#interaction-within-a-webpage">Web页面</a>”和“<a href="#interactive-wall">互动上墙</a>”等场景,都是独立作为页面的一部分,而不依赖于视频等媒体元素。</p>
<p>弹幕如果作为WebVTT的一个子集,在使用形式上可能需要按照WebVTT的方式,在<code>video</code>元素中使用<code>track</code>元素引用<code>.vtt</code>文件的方式来引用弹幕文件。在“<a href="#scenarios">使用场景</a>”中的“<a href="#live-streaming-interaction">直播视频互动</a>”场景中,因为直播中的弹幕数据是实时用户发布的数据,而没有一个弹幕文件预先被<code>track</code>引用。即使在“<a href="#on-demand-video-interaction">点播视频互动</a>”场景中也是存在实时发送弹幕数据的场景的,所以预先被<code>track</code>弹幕文件是不现实的。</p>
<p>从弹幕和WebVTT的场景上来看,两者有着不同的交互方式。WebVTT是字幕,基本没有特殊的交互,只是展示视频时间轴上固定时间段内的内容的文本表达形式;而弹幕所承载的内容不是视频中内容的文本表达,而是对于视频内容的一种观看者主观理解的表达,有的弹幕是需要有交互的,比如观看者想看清楚某一条快速滚动的弹幕,他就可以鼠标悬停来实现弹幕不滚动,或者点击某一条弹幕查看更多的信息等,所以在交互方式上弹幕和WebVTT存在着明显的差别。</p>
<p>除此之外,弹幕的展现方式和WebVTT的字幕也有着很大的区别,WebVTT的字幕只能在视频的固定位置展示,同一时间只能展示一条。而弹幕是灵活的展现形式,可以固定的展示,但更多的是滚动的展现方式。一条WebVTT字幕展示的内容长度是有限制的,而弹幕可以同时展示数倍于WebVTT字幕的数量的内容,所以对于承载的内容规模,WebVTT也无法满足弹幕的需求,大规模的弹幕内容展示是弹幕的典型的用户场景,因此和WebVTT存在着明显的区别。</p>
<p>综上所述,弹幕和WebVTT从典型使用场景上看有些类似,但是从背后的实现功能和实现原理上又有很大区别,这也是在考虑弹幕标准化时没有作为WebVTT的子集或扩展的原因。</p>
</section>
<section>
<h2>弹幕 vs TTML</h2>
<p>
与 WebVTT 相同,[[ttml1]] 也是一种字幕格式,上文已经做了详细的对比。TTML主要用于视频,而弹幕是一种动态的、可交互的字幕形式,两者区别较大。TTML通过XML来描述字幕,虽然可读性较好,但是对Web开发者来说,他们更习惯使用JSON来描述弹幕等数据结构。
</p>
</section>
</section>
<section class="appendix" id="commercial">
<h2>弹幕的商业化运作</h2>
<p>
弹幕在中国及日本有着广泛的应用,主流的视频网站及其 app 都对弹幕有着较好的支持和应用。相关视频网站的月活可以参考如下(仅仅统计视频网站 app 月活):
</p>
<ul>
<li>爱奇艺:月活57516.77万</li>
<li>腾讯视频:月活46749.1万</li>
<li>优酷:月活44482.9万</li>
<li>芒果TV:月活10026.7万</li>
<li>哔哩哔哩动画:月活8065.2万</li>
<li>搜狐视频:月活3635.0万</li>
<li>Niconico(日本):月活1874万 [<a
href='https://ssl4.eir-parts.net/doc/9468/ir_material_for_fiscal_ym/64532/00.pdf'>数据来源</a>]</li>
</ul>
<p>数据来源:<a href='https://www.analysys.cn/article/detail/20019224'>2019年最新移动APP TOP1000</a></p>
</section>
</body>
</html>