此文档描述了弹幕的一系列用例与需求。

这是一份进行中的提案草稿。欢迎参加 W3C 弹幕社区组关于弹幕的相关讨论。

引言

为了创造更好的多媒体体验,许多视频网站都添加了社交机制,使用户可以在媒体时间轴上的特定点发布评论和查看其他人的评论,其中一种机制被称为弹幕(dàn mù),在日语中也称为コメントcomment)或者弾幕danmaku),在播放过程中,可能会出现大量评论和注释,并且直接渲染在视频上(参见)。

弹幕最初是由日本视频网站Niconico(ニコニコ)引入的。在中国,除了在Bilibili和AcFun等弹幕视频网站中使用之外,其他主流视频网站(例如腾讯视频,爱奇艺视频,优酷视频和咪咕视频)中的视频播放器也支持弹幕(请参阅)。

示例示意图
图为弹幕样例截图

弹幕的属性

单条弹幕具有以下三种属性:

弹幕的特性

弹幕具有以下三种特性:

弹幕的基本模式

单条弹幕的基本模式有四种:

  1. 滚动弹幕:自右向左匀速滚动过屏幕的弹幕,以自上而下的优先度展示。
  2. 逆向弹幕:自左向右匀速滚动过屏幕的弹幕,以自上而下的优先度展示,逆向弹幕是相对于滚动弹幕的相反方向滚动的弹幕展示模式。
  3. 顶部弹幕:自上而下静止居中的弹幕、以自上而下的优先度展示。
  4. 底部弹幕:自下而上静止居中的弹幕、以自下而上的优先度展示。

此外,弹幕还具有定制程度更高的高级模式,并不在本标准的描述范围。

术语

本文档使用了如下术语:

为什么需要弹幕?

用户体验因素分析

在直播文字互动的场景中常见的交互方式有:聊天室和弹幕两种方式。如下图示意图所示:

聊天室示例示意图
图为聊天室方式:输入文本内容后,内容列表将整体匀速的从下方向上滚动
弹幕示例示意图
图为弹幕方式:输入文本内容后,单行文本将出现在视频右侧,在独立的通道中从右到左移动

弹幕展示的优势

从下图中我们不难看出,当直播房间有海量用户时左侧聊天室的内容将会快速滚动,单条信息的驻留时间受整个聊天室的活跃度影响,用户越是活跃单条信息的停留时间越短。

示例示意图
图为聊天室单条信息的驻留时间示意图

而弹幕模式则从以下几个方面改善了海量信息的展示问题:

  • 信息密度

    从下图可以看出,与聊天室模式相比,弹幕模式有更宽的展示区域,在相同的信息以相同字号进行展示时弹幕模式有更好的阅读体验。

    示例示意图
    图为弹幕单条信息的驻留时间示意图
  • 信息更新频率

    在聊天模式中,单条信息与全体信息以同样的频率整体向上滚动无法分离,而弹幕模式每条信息都在独立的通道中移动,并不受其他信息的更新频率所影响,可以通过算法较好的保障每条信息在屏幕内的展示时长。

  • 视线移动

    在聊天模式中,用户如果关注视频内容则无法阅读文字,反之亦然。而弹幕模式通过把文字覆盖于画面之上让用户可以同时阅读文字与视频内容,无需视线在两个区域间往返移动,有更好的沉浸体验。具体如下面两图对比不难看出。

    示例示意图
    图为聊天室模式的视线移动示意图
    示例示意图
    图为弹幕模式的视线移动示意图
  • 阅读习惯

    在大多数语言中文字的阅读习惯是从左到右、从上到下,因此人们养成了横向阅读单行信息的习惯,弹幕模式下文字从右向左移动,人从左向右阅读,形成从左向右的合力,在这种模式下我们可以用较短时间理解文字的含义。如下图所示:

    示例示意图
    图为弹幕的阅读方向示意图

    在聊天室模式下人从左到右阅读,而阅读中的文字则在不停的向上移动,形成一个倾斜向上的合力,这会对快速阅读产生了障碍。如下图所示:

    示例示意图
    图为聊天室的阅读方向示意图

心理因素分析

从广泛的社会活动层面上来说,独自进行一项活动与和一群人一起进行一项活动相比,群体活动能够时刻影响人们对当前活动的评价以及对其的事后评价,一种“凝聚”的感觉会让人们对活动的评价更加积极。弹幕本质上来讲也是一种社会活动,相比传统视频,弹幕可以将视频和文字结合在一起,不仅可以更加吸引用户的注意力,同时可以可以提升用户的参与感。在不离开视频画面的前提下,通过与他人交流,还可以增加用户的社会存在感。

使用场景

本节主要描述弹幕的具体使用场景。

点播视频互动

在观看视频网站提供视频时,观看者在观看视频内容过程中根据内容启发会有一些想法或者吐槽点,就想要发表出来和更多的人分享,这时就需要弹幕来满足这个需求。通过弹幕,可以把同一时间观看者的评论通过固定方向滚动的方式显示在视频区域中,或者静止的显示在视频区域的顶部或底部,这样可以增加观看者和视频的互动特性以及观看者之间的互动。在相同时刻发送的弹幕基本上也具有相同的主题。

点播视频互动案例截图
点播视频弹幕案例

此种场景,弹幕数据一般是离线数据(非实时),也存在少部分实时数据。

需求

  • 从用户角度看:用户需要可以输入弹幕的内容,设置弹幕的展现方式(包括字体大小、字体颜色、是否包含图片、弹幕展示的区域等),发送后能实时地展示在屏幕上。
  • 从服务提供商角度看:需要在视频上展示用户发送的弹幕,弹幕可能是历史用户在某一刻发送的,或则用户当下实时发送的。对于实时弹幕,需要把实时发送的数据和视频的时间线关联;需要保存用户发送的弹幕信息数据到服务端的持久化存储;需要同步此条弹幕给其他将要看到这一时刻的用户。对于离线弹幕,需要从服务端获取弹幕的数据,并渲染到指定的区域。对于Web页面展示的弹幕需要和APP等端的弹幕展示内容和时刻一致。

直播视频互动

弹幕在视频直播场景中也能够成为主播与观众直接互动的方式。比起传统的实时评论,主播能够根据屏幕上弹幕的展现更直观了解观众的需求和反馈,更方便地调整接下来的行动和处理,也能够根据用户的输入进行交互操作。

直播视频互动案例截图
直播视频弹幕案例-直播中通过发送弹幕指令投票来控制直播游戏

此种场景,弹幕数据一般是实时数据。

需求

  • 从用户角度看:用户发送的弹幕的内容可以实时的展示在屏幕上。
  • 从服务提供商角度看:需要把用户发送的弹幕实时的展示出来,并且同步展示到其他用户的屏幕上。

标识视频亮点

由于弹幕只会在视频中特定的一个时间点出现,如果某个时间点出现大量弹幕,说明该时间点具有亮点和高能,观众对此时间点事件异常感兴趣,也能够作为视频打点和推荐等功能的参考数据。

标识视频亮点案例截图
标识视频亮点案例-可以通过弹幕的密度或者将弹幕的时间分布情况用图形表示,用来标识视频亮点

需求

  • 从用户角度看:用户可以在任意视频时间输入弹幕的内容,设置弹幕的展现方式,发送后能实时地展示在屏幕上。
  • 从服务提供商角度看:用户选择开启弹幕时,需要提供给用户弹幕列表,需要在视频上展示用户发送的弹幕,也可以将弹幕列表对应视频进度时间的弹幕数量以图形的方式展现给用户。

视频内容增强

在视频点播或直播过程中,存在一些阶段,用户关注的不再是视频本身的画面内容,而是某个点所激发的情绪、情感,此时观看者通过弹幕叠加在视频上能够增强视频此时的效果,达到更好的体验。比如比赛胜利、剧情高潮时用以渲染气氛、或对惊悚恐怖部分的遮盖处理以降低恐惧感等。

视频内容增强案例截图
视频内容增强弹幕案例-截图为恐怖片的恐怖场景下,没有弹幕遮盖
视频内容增强案例截图
视频内容增强弹幕案例-截图为恐怖片的恐怖场景下,有弹幕的遮盖降低了恐怖的气氛

需求

  • 从用户角度看:用户可以选择开启弹幕或关闭弹幕。
  • 从服务提供商角度看:用户选择开启弹幕时,需要提供给用户弹幕列表,根据弹幕发送时对应的时间点在视频播放到对应时间点时展示弹幕。

Web页面互动

有时为了增加页面的效果,产品运营人员希望把相关内容做成有视觉冲击力的弹幕效果,这样可以在Web页面中对相关活动进行宣传重点,以此来增加页面的冲击力趣味性,吸引年轻人的关注,增加收益。

此种场景,弹幕是单独展现的,不依附于视频。

Web页面弹幕案例截图
Web页面弹幕案例-关于某一个活动专题的讨论

需求

  • 从用户角度看:用户需要可以输入弹幕的内容,设置弹幕的展现方式(包括字体大小、字体颜色、是否包含图片、弹幕展示的区域等),发送后能实时的展示在屏幕上。
  • 从服务提供商角度看:弹幕可能是历史用户在某一刻发送的,或则用户当下实时发送的。对于实时弹幕,需要把实时发送的弹幕及时的展示在屏幕上;需要保存用户发送的弹幕信息数据到服务端的持久化存储;需要同步此条弹幕给其他即将访问此页面的用户。对于离线弹幕,需要从服务端获取弹幕的数据,并渲染到指定的区域。

互动上墙

上墙是指网友通过发送弹幕内容,展示在线下会场准备好的显示屏上,增加线下活动或者会议的交互体验。上墙可以理解为是纯弹幕的应用,相当于大屏上不展示视频,甚至不展示内容,只展示活动现场或者网友对于线下活动的讨论内容,增强线下活动或者会议气氛,让参会者的参与感更强。

此种场景,弹幕也是单独展现的,不依附于视频。

弹幕互动上墙案例截图
弹幕互动上墙案例-某活动现场,观众通过发送弹幕到大屏上参与活动

需求

  • 从用户角度看:在活动现场通过能够访问网页的设备输入弹幕内容和展现方式,发送后能实时的展示在屏幕上。
  • 从服务提供商角度看:提供发送弹幕的页面,并将收到的内容实时展现在会场显示屏上。

蒙版弹幕

观看视频的时候,可能会因为观众对于内容的喜爱或者吐槽而有大量的弹幕在同时出现在画面上,此时就会把视频本身的内容覆盖的严严实实,影响大家对于视频内容的观看,比如学习舞蹈的时候被弹幕覆盖看不清舞蹈的动作等。这种情况下,就可以借助计算机视觉和AI的能力,对视频内容进行分析,并将之前已经定义好的“视频主体内容”进行识别,生成蒙版并分发给客户端后,客户端利用CSS3的特性进行渲染从而达成弹幕不会覆盖定义的“视频主体内容”的效果,这种弹幕被称为“蒙版弹幕”,也被称为“防挡弹幕”。

蒙版弹幕
图为防挡弹幕中没有被弹幕遮挡的舞者

需求

  • 从用户角度看:用户可以选择启用蒙版弹幕或者关闭蒙版弹幕的功能。
  • 从服务提供商角度看:需要借助计算机视觉和AI的能力识别视频主题内容,计算出蒙版区域,返回给客户端实现蒙版效果。

非文字弹幕

弹幕内容可以包含emoji表情和图片等非文字内容,更加形象丰富的表达观看者的想法和观点。

非文字弹幕
图为弹幕内容中包含图片和emoji表情内容

建议的接口和属性

请参考建议的接口和属性规范。

弹幕和字幕的差别

弹幕 vs WebVTT

[[webvtt1]]是一种用于标记文本轨道的文件格式,[[webvtt1]]的典型应用场景为视频字幕。而目前弹幕的典型应用场景也都是和视频关联的,弹幕一度被称为是字幕的一个子集,是一种特殊的字幕形式。

其实,并不是这样。从“使用场景”可以看到,弹幕使用场景包含和视频关联的场景,也包括不和视频相关联的场景,如:“Web页面”和“互动上墙”等场景,都是独立作为页面的一部分,而不依赖于视频等媒体元素。

弹幕如果作为WebVTT的一个子集,在使用形式上可能需要按照WebVTT的方式,在video元素中使用track元素引用.vtt文件的方式来引用弹幕文件。在“使用场景”中的“直播视频互动”场景中,因为直播中的弹幕数据是实时用户发布的数据,而没有一个弹幕文件预先被track引用。即使在“点播视频互动”场景中也是存在实时发送弹幕数据的场景的,所以预先被track弹幕文件是不现实的。

从弹幕和WebVTT的场景上来看,两者有着不同的交互方式。WebVTT是字幕,基本没有特殊的交互,只是展示视频时间轴上固定时间段内的内容的文本表达形式;而弹幕所承载的内容不是视频中内容的文本表达,而是对于视频内容的一种观看者主观理解的表达,有的弹幕是需要有交互的,比如观看者想看清楚某一条快速滚动的弹幕,他就可以鼠标悬停来实现弹幕不滚动,或者点击某一条弹幕查看更多的信息等,所以在交互方式上弹幕和WebVTT存在着明显的差别。

除此之外,弹幕的展现方式和WebVTT的字幕也有着很大的区别,WebVTT的字幕只能在视频的固定位置展示,同一时间只能展示一条。而弹幕是灵活的展现形式,可以固定的展示,但更多的是滚动的展现方式。一条WebVTT字幕展示的内容长度是有限制的,而弹幕可以同时展示数倍于WebVTT字幕的数量的内容,所以对于承载的内容规模,WebVTT也无法满足弹幕的需求,大规模的弹幕内容展示是弹幕的典型的用户场景,因此和WebVTT存在着明显的区别。

综上所述,弹幕和WebVTT从典型使用场景上看有些类似,但是从背后的实现功能和实现原理上又有很大区别,这也是在考虑弹幕标准化时没有作为WebVTT的子集或扩展的原因。

弹幕 vs TTML

与 WebVTT 相同,[[ttml1]] 也是一种字幕格式,上文已经做了详细的对比。TTML主要用于视频,而弹幕是一种动态的、可交互的字幕形式,两者区别较大。TTML通过XML来描述字幕,虽然可读性较好,但是对Web开发者来说,他们更习惯使用JSON来描述弹幕等数据结构。

弹幕的商业化运作

弹幕在中国及日本有着广泛的应用,主流的视频网站及其 app 都对弹幕有着较好的支持和应用。相关视频网站的月活可以参考如下(仅仅统计视频网站 app 月活):

数据来源:2019年最新移动APP TOP1000