此文档描述了弹幕的一系列用例与需求。
这是一份进行中的提案草稿。欢迎参加 W3C 弹幕社区组关于弹幕的相关讨论。
为了创造更好的多媒体体验,许多视频网站都添加了社交机制,使用户可以在媒体时间轴上的特定点发布评论和查看其他人的评论,其中一种机制被称为弹幕(dàn mù),在日语中也称为コメント(comment)或者弾幕(danmaku),在播放过程中,可能会出现大量评论和注释,并且直接渲染在视频上(参见)。
弹幕最初是由日本视频网站Niconico(ニコニコ)引入的。在中国,除了在Bilibili和AcFun等弹幕视频网站中使用之外,其他主流视频网站(例如腾讯视频,爱奇艺视频,优酷视频和咪咕视频)中的视频播放器也支持弹幕(请参阅)。
单条弹幕具有以下三种属性:
弹幕具有以下三种特性:
此外,弹幕还具有定制程度更高的高级模式,并不在本标准的描述范围。
本文档使用了如下术语:
在直播文字互动的场景中常见的交互方式有:聊天室和弹幕两种方式。如下图示意图所示:
从下图中我们不难看出,当直播房间有海量用户时左侧聊天室的内容将会快速滚动,单条信息的驻留时间受整个聊天室的活跃度影响,用户越是活跃单条信息的停留时间越短。
而弹幕模式则从以下几个方面改善了海量信息的展示问题:
信息密度
从下图可以看出,与聊天室模式相比,弹幕模式有更宽的展示区域,在相同的信息以相同字号进行展示时弹幕模式有更好的阅读体验。
信息更新频率
在聊天模式中,单条信息与全体信息以同样的频率整体向上滚动无法分离,而弹幕模式每条信息都在独立的通道中移动,并不受其他信息的更新频率所影响,可以通过算法较好的保障每条信息在屏幕内的展示时长。
视线移动
在聊天模式中,用户如果关注视频内容则无法阅读文字,反之亦然。而弹幕模式通过把文字覆盖于画面之上让用户可以同时阅读文字与视频内容,无需视线在两个区域间往返移动,有更好的沉浸体验。具体如下面两图对比不难看出。
阅读习惯
在大多数语言中文字的阅读习惯是从左到右、从上到下,因此人们养成了横向阅读单行信息的习惯,弹幕模式下文字从右向左移动,人从左向右阅读,形成从左向右的合力,在这种模式下我们可以用较短时间理解文字的含义。如下图所示:
在聊天室模式下人从左到右阅读,而阅读中的文字则在不停的向上移动,形成一个倾斜向上的合力,这会对快速阅读产生了障碍。如下图所示:
从广泛的社会活动层面上来说,独自进行一项活动与和一群人一起进行一项活动相比,群体活动能够时刻影响人们对当前活动的评价以及对其的事后评价,一种“凝聚”的感觉会让人们对活动的评价更加积极。弹幕本质上来讲也是一种社会活动,相比传统视频,弹幕可以将视频和文字结合在一起,不仅可以更加吸引用户的注意力,同时可以可以提升用户的参与感。在不离开视频画面的前提下,通过与他人交流,还可以增加用户的社会存在感。
在观看视频网站提供视频时,观看者在观看视频内容过程中根据内容启发会有一些想法或者吐槽点,就想要发表出来和更多的人分享,这时就需要弹幕来满足这个需求。通过弹幕,可以把同一时间观看者的评论通过固定方向滚动的方式显示在视频区域中,或者静止的显示在视频区域的顶部或底部,这样可以增加观看者和视频的互动特性以及观看者之间的互动。在相同时刻发送的弹幕基本上也具有相同的主题。
此种场景,弹幕数据一般是离线数据(非实时),也存在少部分实时数据。
需求
弹幕在视频直播场景中也能够成为主播与观众直接互动的方式。比起传统的实时评论,主播能够根据屏幕上弹幕的展现更直观了解观众的需求和反馈,更方便地调整接下来的行动和处理,也能够根据用户的输入进行交互操作。
此种场景,弹幕数据一般是实时数据。
需求
由于弹幕只会在视频中特定的一个时间点出现,如果某个时间点出现大量弹幕,说明该时间点具有亮点和高能,观众对此时间点事件异常感兴趣,也能够作为视频打点和推荐等功能的参考数据。
需求
在视频点播或直播过程中,存在一些阶段,用户关注的不再是视频本身的画面内容,而是某个点所激发的情绪、情感,此时观看者通过弹幕叠加在视频上能够增强视频此时的效果,达到更好的体验。比如比赛胜利、剧情高潮时用以渲染气氛、或对惊悚恐怖部分的遮盖处理以降低恐惧感等。
需求
有时为了增加页面的效果,产品运营人员希望把相关内容做成有视觉冲击力的弹幕效果,这样可以在Web页面中对相关活动进行宣传重点,以此来增加页面的冲击力趣味性,吸引年轻人的关注,增加收益。
此种场景,弹幕是单独展现的,不依附于视频。
需求
上墙是指网友通过发送弹幕内容,展示在线下会场准备好的显示屏上,增加线下活动或者会议的交互体验。上墙可以理解为是纯弹幕的应用,相当于大屏上不展示视频,甚至不展示内容,只展示活动现场或者网友对于线下活动的讨论内容,增强线下活动或者会议气氛,让参会者的参与感更强。
此种场景,弹幕也是单独展现的,不依附于视频。
需求
观看视频的时候,可能会因为观众对于内容的喜爱或者吐槽而有大量的弹幕在同时出现在画面上,此时就会把视频本身的内容覆盖的严严实实,影响大家对于视频内容的观看,比如学习舞蹈的时候被弹幕覆盖看不清舞蹈的动作等。这种情况下,就可以借助计算机视觉和AI的能力,对视频内容进行分析,并将之前已经定义好的“视频主体内容”进行识别,生成蒙版并分发给客户端后,客户端利用CSS3的特性进行渲染从而达成弹幕不会覆盖定义的“视频主体内容”的效果,这种弹幕被称为“蒙版弹幕”,也被称为“防挡弹幕”。
需求
弹幕内容可以包含emoji表情和图片等非文字内容,更加形象丰富的表达观看者的想法和观点。
请参考建议的接口和属性规范。
[[webvtt1]]是一种用于标记文本轨道的文件格式,[[webvtt1]]的典型应用场景为视频字幕。而目前弹幕的典型应用场景也都是和视频关联的,弹幕一度被称为是字幕的一个子集,是一种特殊的字幕形式。
其实,并不是这样。从“使用场景”可以看到,弹幕使用场景包含和视频关联的场景,也包括不和视频相关联的场景,如:“Web页面”和“互动上墙”等场景,都是独立作为页面的一部分,而不依赖于视频等媒体元素。
弹幕如果作为WebVTT的一个子集,在使用形式上可能需要按照WebVTT的方式,在video
元素中使用track
元素引用.vtt
文件的方式来引用弹幕文件。在“使用场景”中的“直播视频互动”场景中,因为直播中的弹幕数据是实时用户发布的数据,而没有一个弹幕文件预先被track
引用。即使在“点播视频互动”场景中也是存在实时发送弹幕数据的场景的,所以预先被track
弹幕文件是不现实的。
从弹幕和WebVTT的场景上来看,两者有着不同的交互方式。WebVTT是字幕,基本没有特殊的交互,只是展示视频时间轴上固定时间段内的内容的文本表达形式;而弹幕所承载的内容不是视频中内容的文本表达,而是对于视频内容的一种观看者主观理解的表达,有的弹幕是需要有交互的,比如观看者想看清楚某一条快速滚动的弹幕,他就可以鼠标悬停来实现弹幕不滚动,或者点击某一条弹幕查看更多的信息等,所以在交互方式上弹幕和WebVTT存在着明显的差别。
除此之外,弹幕的展现方式和WebVTT的字幕也有着很大的区别,WebVTT的字幕只能在视频的固定位置展示,同一时间只能展示一条。而弹幕是灵活的展现形式,可以固定的展示,但更多的是滚动的展现方式。一条WebVTT字幕展示的内容长度是有限制的,而弹幕可以同时展示数倍于WebVTT字幕的数量的内容,所以对于承载的内容规模,WebVTT也无法满足弹幕的需求,大规模的弹幕内容展示是弹幕的典型的用户场景,因此和WebVTT存在着明显的区别。
综上所述,弹幕和WebVTT从典型使用场景上看有些类似,但是从背后的实现功能和实现原理上又有很大区别,这也是在考虑弹幕标准化时没有作为WebVTT的子集或扩展的原因。
与 WebVTT 相同,[[ttml1]] 也是一种字幕格式,上文已经做了详细的对比。TTML主要用于视频,而弹幕是一种动态的、可交互的字幕形式,两者区别较大。TTML通过XML来描述字幕,虽然可读性较好,但是对Web开发者来说,他们更习惯使用JSON来描述弹幕等数据结构。
弹幕在中国及日本有着广泛的应用,主流的视频网站及其 app 都对弹幕有着较好的支持和应用。相关视频网站的月活可以参考如下(仅仅统计视频网站 app 月活):
数据来源:2019年最新移动APP TOP1000