CN112637657A - 交互视频的播放控制方法、装置和系统 - Google Patents

交互视频的播放控制方法、装置和系统 Download PDF

Info

Publication number
CN112637657A
CN112637657A CN201910906907.7A CN201910906907A CN112637657A CN 112637657 A CN112637657 A CN 112637657A CN 201910906907 A CN201910906907 A CN 201910906907A CN 112637657 A CN112637657 A CN 112637657A
Authority
CN
China
Prior art keywords
time
interactive video
bifurcation
video
playing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910906907.7A
Other languages
English (en)
Inventor
卢俊瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN201910906907.7A priority Critical patent/CN112637657A/zh
Priority to US17/762,282 priority patent/US20220417619A1/en
Priority to PCT/CN2020/116677 priority patent/WO2021057693A1/zh
Publication of CN112637657A publication Critical patent/CN112637657A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本说明书实施例提供一种交互视频的播放控制方法、装置和系统,在接收到服务器发送的分叉消息之后,判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值,如果是,则立刻在客户端上显示分叉选项,而不是等当前播放时间达到交互视频执行剧情分叉操作的执行时间才在客户端上显示分叉选项,通过这种方式,减少了客户端播放交互视频的时延,使不同的客户端能够在相对统一的时间轴上播放交互视频,便于客户端之间的交互。

Description

交互视频的播放控制方法、装置和系统
技术领域
本说明书涉及计算机软件技术领域,尤其涉及交互视频的播放控制方法、装置和系统。
背景技术
交互视频是指通过各种技术手段,将交互体验融入到线性的视频中的新型视频。如图1所示,是一个实际应用场景下的交互视频的示意图。交互视频在播放到一定进度时,可以在播放界面上提供若干个分支选项供用户选择,用户在直播间观看交互视频的视频内容时,可以自主选择不同的分支,以观看不同的剧情走向。
发明内容
基于此,本说明书提供了交互视频的播放控制方法、装置和系统。
根据本说明书实施例的第一方面,提供一种交互视频的播放控制方法,所述方法包括:
接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
若是,响应所述分叉消息,以在客户端上显示分叉选项。
根据本说明书实施例的第二方面,提供一种交互视频的播放控制装置,所述装置包括:
接收模块,用于接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
判断模块,用于判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
显示模块,用于若是,响应所述分叉消息,以在客户端上显示分叉选项。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
根据本说明书实施例的第四方面,提供一种客户端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
根据本说明书实施例的第五方面,提供一种交互视频的播放控制系统,所述系统包括:
服务器;以及
任一实施例所述的客户端;
所述服务器用于在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时,向所述客户端发送分叉消息。
应用本说明书实施例方案,在接收到服务器发送的分叉消息之后,判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值,如果是,则立刻在客户端上显示分叉选项,而不是等当前播放时间达到交互视频执行剧情分叉操作的执行时间才在客户端上显示分叉选项,通过这种方式,减少了客户端播放交互视频的时延,使不同的客户端能够在相对统一的时间轴上播放交互视频,便于客户端之间的交互。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是一个实施例的交互视频的示意图。
图2是本说明书一个实施例的交互视频的播放控制方法流程图。
图3是本说明书一个实施例的播放节点的示意图。
图4是本说明书一个实施例的具有不同播放延时的客户端的播放过程示意图。
图5是本说明书一个实施例的交互视频的播放控制装置的框图。
图6是本说明书一个实施例的用于实施本说明书方法的计算机设备的结构示意图。
图7是本说明书一个实施例的交互视频的播放控制系统的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图2所示,是本说明书一个实施例的交互视频的播放控制方法流程图。
所述方法包括:
步骤S201:接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
步骤S202:判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
步骤S203:若是,响应所述分叉消息,以在客户端上显示分叉选项。
本说明书实施例相关的术语的定义如下:
播放节点(简称节点):按照一定的组织架构进行排列和关联的节点,可在制作交互视频时预先定义好,一个交互视频至少需要3个节点,即,一个分叉节点和该分叉节点对应的至少两个子节点(即,该分叉节点为这两个子节点的父节点),还可以包括其他节点,如聚合节点和普通节点。其中,包括多个子节点的节点即为分叉节点,包括多个父节点的节点即为聚合节点,至多仅包括一个父节点且至多仅包括一个子节点的节点即为非分叉节点。根据节点所处的位置,还可以将节点分为开始节点、中间节点和结束节点,其中,开始节点即为根节点,开始节点没有父节点;结束节点即为叶子节点,结束节点没有子节点;既有子节点又有父节点的节点即为中间节点。
一个实施例的播放节点的示意图如图3所示。图中包括S、A、B、E1、E2、E3和E4共7个播放节点,其中,节点S为开始节点,节点A和B为节点S的子节点,节点E1和E2为节点A的子节点,节点E3和E4为节点B的子节点,节点S为非分叉节点,节点R、A和B均为分叉节点,节点E1、E2、E3和E4均为结束节点。
相邻播放节点:一个播放节点及其父节点互为相邻播放节点,同样,一个播放节点及其子节点也互为相邻播放节点。
播放路径:连接两个播放节点的路径。例如,连接节点S和节点R的路径即为节点S到节点R之间的播放路径SR,又例如,连接节点S和节点A的路径即为节点S到节点A之间的播放路径SR→RA。相邻两个播放节点之间的播放路径也称为一条播放子路径,如图3中的SR为播放节点S与播放节点R之间的播放子路径、RA为播放节点R与播放节点A之间的播放子路径。分叉节点包括多条播放路径,普通节点和聚合节点均包括一条播放路径。一个节点及其子节点之间的播放路径称为从属于该节点的播放路径。从属于该节点的子节点的播放路径也是从属于该节点的播放路径。
默认播放路径:每个分叉节点对应一条默认播放路径,若用户在预设时间段内没有选择播放路径,则系统自动为用户选择一条预先设定好的播放路径,即默认播放路径,直到用户重新选择播放路径。例如,在图3中,节点R的默认播放路径可以设为RA→AE1,节点B的默认播放路径可以设为BE3。默认播放路径上相邻两个播放节点之间的路径为默认播放子路径。
一个交互视频包括多个视频文件,每条播放子路径对应交互视频的一个视频文件,所有播放子路径对应的视频文件共同构成了交互视频的视频内容,各个播放节点以及播放节点之间的播放路径构成了交互视频的播放逻辑。从属于同一个分叉节点的播放子路径为并列的播放子路径,对应交互视频中并列的多个分叉剧情,用户可以以择一的方式选择其中一条播放子路径(即,分叉)来自主选择交互视频的剧情走向。例如在图3所示的播放节点中,在节点R,用户可以选择RA对应的选项来使交互视频播放RA对应的分支剧情;在节点A,用户可以选择AE1对应的选项来使交互视频播放AE1对应的分支剧情。
播放时间偏移量:当前时刻相对于交互视频起始播放时刻的时间偏移量。例如,交互视频在20:00:00开始播放,当前时刻为20:10:00,则播放时间偏移量为10分钟。
服务器可以维护一个视频播放列表(即,节目单),用于记录各个交互视频的播放时间信息和播放场次信息,并载入指令控制机。对于在交互视频开播之前就已经在直播间内的客户端,该客户端可以在进入直播间时与直播平台建立长连接,并监听长连接的消息,等待统一的开播指令,指令控制机循环自执行,在判断服务器当前时间到达播出时间时,则陆续向各个客户端准时发送开播指令,开播指令中包括当前播放的视频文件的地址(例如,m3u8),客户端访问该地址之后从而开始播放相应的视频文件。
交互视频在播放过程中,服务器不断检测当前脚本时间,当脚本时间达到交互视频执行剧情分叉操作的执行时间时,通过调用长连接向客户端发送分叉消息,以通知客户端交互视频当前进展到分叉节点。
用户在播放交互视频的过程中,一般都会存在网络延迟和卡顿的情况。因此,用户的“视频体验轴”与“脚本时间轴”之间存在差异(即,延迟时间)。但是,在有些情况下无止境的延迟是无法容忍的。
这是因为,不同用户需要在相对统一的时间轴上去观看交互视频以及进行交互(例如,互发弹幕)。这样才能让同时观看交互视频的用户之间能够产生双向的沟通和对话,进而一起分析剧情,一起抒发情绪、表达感想。这也就要求用户观看到的视频的内容相差不能太大,而如果用户之间观看到视频内容偏差很大,那么他们之间的双向沟通就越来越困难。举个例子,剧情中出现了一个很好笑的“包袱”,张三看到这个“包袱”后马上哈哈大笑;李四5分钟后才看到这个包袱,那么也就在张三大笑之后的五分钟之后才笑了起来。如此场景下,让张三和李四通过发弹幕去交流视频体验、交流观感,必然是很难达到的。于是,需要限制这一个延迟的时间。
因此,客户端接收到分叉消息之后,会先判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值。如果是,表示客户端当前的播放时延已经大于所能容忍的容差时长,将不利于各个客户端在统一的时间维度上交流交互视频的剧情。因此,为了减小该客户端的播放时延,客户端会立即响应所述分叉消息,以在客户端上显示分叉选项。与此同时,由于当前播放时间还未达到执行时间,因此,交互视频仍然会继续播放。也就是说,在交互视频继续播放的同时显示分叉选项。其中,分叉选项用于客户端选择交互视频的播放路径,每个分叉选项对应一条播放路径。
进一步地,若所述当前播放时间与所述执行时间的差值小于预设的时间阈值,判断所述当前播放时间是否达到所述执行时间;若是,响应所述分叉消息,以在客户端上显示分叉选项。
在本实施例中,若当前播放时间与所述执行时间的差值小于预设的时间阈值,表示对应用户的播放时延小于可容忍的最大时长(即,容差时长)。因此,可以在当前播放时间达到执行时间之后,才在客户端上显示分叉选项。也就是说,当接收到分叉消息之后,并不是立即响应所述分叉消息,以在客户端上显示分叉选项,而是等交互视频在分叉节点之前的内容播放完毕,才开始在客户端上显示分叉选项。如果当前播放时间未达到所述执行时间,继续播放交互视频,直到所述当前播放时间达到所述执行时间时,在客户端上显示分叉选项。
容差时长可以设为10秒。在实际应用中,10秒的容差时长只是一个举例,这个值可以根据实际的经验总结和业务上不同的需要做调整。比如有的播放节点上容差时长是5秒,有的设置成20秒或者30秒。特别地,如果各条播放路径不需要合并到一个统一的结局,也就是说,交互视频的后续内容不需要用户之间做同步,那么,可以把容差时长的值设置成一个极大的值。
在一个实施例中,客户端还可以对分叉选项的显示时间进行倒计时,倒计时结束之后,则自动选择默认分叉选项对应的播放路径(即,默认播放路径)。假设T为分叉选项的显示倒计时,T1为所述执行时间,T2为所述当前播放时间,T3为所述时间阈值(即,容差时长),则T=T3-(T1-T2)。
在一个实施例中,若所述当前播放时间与所述执行时间的差值大于预设的时间阈值,在接收到所述分叉消息之后,向服务器追帧。“追帧”从用户角度上,感受到的是突然视频“跳跃”了——例如,前一时刻播放的是第50秒的画面,下一时刻突然播放成了第60秒的画面——用户会感觉“丢失”了一部分内容,跳跃地从后面某一个时间的内容继续播放了。通过追帧,可以进一步减小播放时延。
可选地,除了客户端接收到分叉消息以后才进行追帧的情况外,客户端还可以在接收到服务器发送的心跳包之后,向服务器追帧。心跳包可以由服务器按照预设的时间间隔周期性发送。例如,每3秒钟发送一次。
追帧的过程具体为:通过与内容分发网络之间预先建立的接口获取从目标播放时刻开始的视频内容;其中,所述目标播放时刻与所述执行时间的差值小于所述时间阈值,然后对所述目标播放时刻对应的视频内容进行播放。例如,当前播放时间为第50秒,执行时间为第65秒,时间阈值为10秒,则可以通过与内容分发网络(Content Delivery Network,CDN)之间预先建立的接口获取交互视频从第60秒开始的视频内容,然后从第60秒开始播放。此处的数值仅为举例,实际应用中不限于此。
在一个实施例中,通过与内容分发网络之间预先建立的接口获取目标播放时刻对应的视频内容的步骤包括:在视频缓存区中查找目标播放时刻对应的视频内容;若查找到,从所述目标播放时刻开始播放所述交互视频;若未查找到,通过所述接口从所述内容分发网络拉取所述目标播放时刻对应的视频内容。
对于MP4格式的交互视频,交互视频在播放过程中,客户端会先从CDN拉取一段视频内容,并缓存在本地。例如,在播放第0至20秒秒的视频内容时,可以对第20秒至第40秒的视频内容进行拉取并缓存。因此,在追帧时,可以先在本地缓存中查找目标播放时刻开始的视频内容,如果查找到,则直接跳转到目标播放时刻开始播放;如果未查找到,说明对应的视频内容还未缓存,因此,可以先从CDN中将对应的视频内容拉取到本地缓存中,再从本地缓存中读取并播放对应的视频内容。
M3U8格式的视频与MP4格式的视频类似。对于M3U8格式的交互视频,交互视频的视频文件被拆分为多个视频片段,交互视频在播放过程中,客户端会先从CDN拉取若干个视频片段,并缓存在本地。例如,在播放第1个视频片段时,可以缓存第2至第4个视频片段。由于每个视频片段的时长是确定的,在追帧时,可以先确定目标播放时刻对应的视频片段,并在缓存中查找该视频片段,如果查找到,直接对该视频片段从目标播放时刻开始的视频内容进行播放;如果未查找到,则从CDN中拉取并缓存对应的视频片段,然后从缓存中读取该视频片段从目标播放时刻开始的视频内容并进行播放。
在一个实施例中,在客户端上显示分叉选项之后,还可以接收用户对所述分叉选项的选择指令;响应所述选择指令,以播放交互视频被选中的分叉选项对应的视频内容。例如,针对图1所示的交互视频,若用户发送了对选项1的选择指令,则开始播放选项1对应的视频内容。
在本说明书实施例中,直播间在播放交互视频时,对每个客户端都采用统一的时间轴(称为脚本时间轴)。脚本时间轴的意义在于,确定了交互视频中每一帧视频帧的播放时间相对于交互视频的起始播放时间之间的时间偏移量,这一时间偏移量仅与交互视频进展到各个播放节点的时刻与交互视频的起始播放时刻之间的时间间隔有关,而与客户端的网络状况是否良好无关。也就是说,当交互视频已经编辑好之后,交互视频的第几分第几秒播放什么剧情就已经是固定的了。
脚本时间轴,也称为“剧本轴”,是一种理想时间。它记录的是内容创作者角度,希望在相对于时间零点的相对时间上发生的事情——例如,创作者希望剧本上第10分钟开始一个剧情分叉,第15分钟出现一个剧情聚合,第30分钟所有内容结束。这里强调的是“第”字,也就是“相对时间”,或者叫时间偏移量。而用户自己看到视频的时间是一个绝对时间,与各个用户的网络状况等因素相关。
服务器通过脚本时间来向客户端发送分叉消息,从而告知客户端当前应当执行分叉操作,客户端将播放交互视频的当前播放时间与执行时间进行比较,从而能够获知本客户端当前的时延,并在时延超过容差时长时立即在客户端上显示分叉选项,从而减少了客户端播放交互视频的时延,使不同的客户端能够在相对统一的时间轴上播放交互视频,便于客户端之间的交互。
参照图4,下面以一个数值实施例为例进行说明。
例如,在上述的30分钟时长的“脚本时间轴”的例子上,交互视频的内容将于2019年7月25日18:00:00正式开播。
那么理想情况下,假设用户张三的网络情况极好,没有任何卡顿,接收长连接消息没有任何延迟,收到分叉选择的交互时立即做出选择。那么他可能将于2019-07-25 18:01:00这一绝对时间接收到了分叉节点S的分叉消息并显示节点S的分叉选项;于2019-07-2518:04:00这一绝对时间接收到分叉节点B的分叉消息并显示节点B的分叉选项;于2019-07-25 18:06:00这一绝对时刻接收到分叉节点A的分叉消息并显示节点A的分叉选项。
而实际上因为理想情况不存在,李四、王五等不同人的网络情况不一样,因此他们的每一个时刻的时间点可能都会比张三理想情况的例子要晚几秒甚至十几二十秒。(2019-07-25 18:00:08、2019-07-25 18:00:20;…)
假设观众李四卡顿的8秒钟(lag=8)都是在接收到开播指令后刚开始的时候发生的卡顿——也就是说用户从绝对时间2019-07-25 18:00:08到2019-07-25 18:01:00的52秒没有卡顿,最后阶段这个用户没有发生卡顿。那么,在绝对时间,2019-07-25 18:01:00时,观众李四看到的视频已经播到了用户李四的“视频体验轴”的第52秒了(vedio_time=52)。
而在同一时刻,因为服务端的“指令控制机”在检测服务器时间之后,判断服务器存储的“脚本时间轴/剧本轴”已经运转到第60秒了(script_time=60),于是“指令控制机”会通过长连接,发送一条“分叉”消息(这个消息记录了让接收者在其vedio_time到达(大于等于)第60秒时(execute_time=60),展示分叉选择界面及对应选项的信息)。
假设用户李四接收这个“分叉”指令没有延时,那么也是在绝对时间2019-07-2518:01:00时,这个用户的播放器收到了这条指令。此时用户李四的vedio_time=52,小于execute_time(这里也就是剧本希望执行这个指令的相对时间)的60秒,说明用户李四观看的视频内容还没有到达触发选择分支的交互的条件。因此这个时候播放器界面上没有任何事情发生,播放器仍然会继续播放当前的视频。
时间往后推进,到了绝对时间2019-07-25 18:01:01,这时候vedio_time累加到53,但是仍然vedio_time<execute_time,仍然没有事情发生,继续播放当前视频。时间一秒一秒过去,一直推进到绝对时间2019-07-25 18:01:08,用户李四的vedio_time累加到60了,此时已经满足了vedio_time>=execute_time,则播放器内弹出分叉的交互界面,即让用户选择A或者B。同时展示一个倒计时,对于李四,这个倒计时将从数字2开始倒计时。(waiting_duration–lag=10–8=2)。waiting_duration为容差时长。
在这之后,即使李四在2秒内做出了选择,仍然要等到倒计时减少到0之后(即,2019-07-25 18:01:10),再播放李四选择的分支对应的下一段视频片段。
进一步地,假设允许的容差时长是10秒(waiting_duration=10,即,不同用户之间看到的视频差异不能超过10秒)。假设李四延迟了8秒,而王五刚开始就延迟了20秒(假设其卡顿20秒之后一直到播放完当前的视频片段就不卡顿了)。在绝对时间,2019-07-25 18:01:00时,李四的vedio_time=52,而王五的vedio_time=40(因为卡了20秒,delay=20,因此只看到了视频的前40秒的内容)。
时间一秒一秒过去,一直推进到绝对时间2019-07-25 18:01:10,王五的vedio_time只累加到50。虽然此时没有满足vedio_time>=script_time的条件,但是因为我们有另外一个条件——二者的时间差不能大于10秒。因此这时候(vedio_time>=script_time+10),播放器不用等到10秒后(lag–10=20-10=10),而是立即发生了这样的行为:
(1)播放器内立即弹出分叉的交互界面,即让用户选择A或者B。但是这个时候对于王五的倒计时将从数字10开始倒计时。(waiting_duration–lag=30–20=10)。这之后,与带有从10开始倒计时的分叉选项的同时,在用户做出选择之前,上一段视频的第50秒之后的内容仍然会继续播出。
(2)视频追帧,即播放的视频立即跳转到10秒之后。
以上实施例中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
如图5所示,是本说明书一个实施例的交互视频的播放控制装置的框图。
所述装置包括:
接收模块501,用于接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
判断模块502,用于判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
显示模块503,用于若是,响应所述分叉消息,以在客户端上显示分叉选项。
上述装置中各个模块的功能和作用的实现过程具体详情见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书装置所在计算机设备的一种硬件结构图,除了图6所示的处理器601、内存602、网络接口603、以及非易失性存储器604之外,实施例中装置所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
相应地,本说明书实施例还提供一种客户端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例中的方法。
如图7所示,本说明书实施例还提供一种交互视频的播放控制系统,所述系统包括:服务器;以及任一实施例所述的客户端;其中,所述服务器用于在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时,向所述客户端发送分叉消息。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (14)

1.一种交互视频的播放控制方法,其特征在于,所述方法包括:
接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
若是,响应所述分叉消息,以在客户端上显示分叉选项。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前播放时间与所述执行时间的差值小于预设的时间阈值,判断所述当前播放时间是否达到所述执行时间;
若是,响应所述分叉消息,以在客户端上显示分叉选项。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前播放时间未达到所述执行时间,继续播放交互视频,直到所述当前播放时间达到所述执行时间时,在客户端上显示分叉选项。
4.根据权利要求3所述的方法,其特征在于,所述分叉选项的显示倒计时根据以下方式设置:
T=T3-(T1-T2);
其中,T为分叉选项的显示倒计时,T1为所述执行时间,T2为所述当前播放时间,T3为所述时间阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前播放时间与所述执行时间的差值大于预设的时间阈值,在接收到所述分叉消息之后,向服务器追帧。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前播放时间与所述执行时间的差值大于预设的时间阈值,在接收到服务器发送的心跳包之后,向服务器追帧。
7.根据权利要求6所述的方法,其特征在于,所述心跳包由服务器按照预设的时间间隔周期性发送。
8.根据权利要求5或6所述的方法,其特征在于,向服务器追帧的步骤包括:
通过与内容分发网络之间预先建立的接口获取从目标播放时刻开始的视频内容;其中,所述目标播放时刻与所述执行时间的差值小于所述时间阈值;
对所述目标播放时刻对应的视频内容进行播放。
9.根据权利要求8所述的方法,其特征在于,通过与内容分发网络之间预先建立的接口获取目标播放时刻对应的视频内容的步骤包括:
在视频缓存区中查找目标播放时刻对应的视频内容;
若查找到,从所述目标播放时刻开始播放所述交互视频;
若未查找到,通过所述接口从所述内容分发网络拉取所述目标播放时刻对应的视频内容。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户对所述分叉选项的选择指令;
响应所述选择指令,以播放交互视频被选中的分叉选项对应的视频内容。
11.一种交互视频的播放控制装置,其特征在于,所述装置包括:
接收模块,用于接收服务器在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时发送的分叉消息;其中,当前脚本时间是所述交互视频中当前视频帧的播放时间相对于所述交互视频的起始播放时间的时间偏移量;
判断模块,用于判断客户端播放所述交互视频的当前播放时间与所述执行时间的差值是否大于或等于预设的时间阈值;
显示模块,用于若是,响应所述分叉消息,以在客户端上显示分叉选项。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至10任意一项所述的方法。
13.一种客户端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。
14.一种交互视频的播放控制系统,其特征在于,所述系统包括:
服务器;以及
权利要求13所述的客户端;
所述服务器用于在交互视频的当前脚本时间达到所述交互视频执行剧情分叉操作的执行时间时,向所述客户端发送分叉消息。
CN201910906907.7A 2019-09-24 2019-09-24 交互视频的播放控制方法、装置和系统 Pending CN112637657A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910906907.7A CN112637657A (zh) 2019-09-24 2019-09-24 交互视频的播放控制方法、装置和系统
US17/762,282 US20220417619A1 (en) 2019-09-24 2020-09-22 Processing and playing control over interactive video
PCT/CN2020/116677 WO2021057693A1 (zh) 2019-09-24 2020-09-22 交互视频的处理与播放控制

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910906907.7A CN112637657A (zh) 2019-09-24 2019-09-24 交互视频的播放控制方法、装置和系统

Publications (1)

Publication Number Publication Date
CN112637657A true CN112637657A (zh) 2021-04-09

Family

ID=75283389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910906907.7A Pending CN112637657A (zh) 2019-09-24 2019-09-24 交互视频的播放控制方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112637657A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130061501A (ko) * 2011-12-01 2013-06-11 한국전자통신연구원 이종의 디바이스상에서 다중 시나리오 재생 시스템 및 그 방법
CN105828125A (zh) * 2016-03-31 2016-08-03 北京奇艺世纪科技有限公司 一种视频推送方法及装置
CN105898394A (zh) * 2016-05-25 2016-08-24 腾讯科技(深圳)有限公司 一种多媒体播放方法及相关设备
CN106385594A (zh) * 2016-09-18 2017-02-08 深圳市青柠互动科技开发有限公司 一种优化视频直播服务的方法
CN106998486A (zh) * 2016-01-22 2017-08-01 百度在线网络技术(北京)有限公司 视频播放方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130061501A (ko) * 2011-12-01 2013-06-11 한국전자통신연구원 이종의 디바이스상에서 다중 시나리오 재생 시스템 및 그 방법
CN106998486A (zh) * 2016-01-22 2017-08-01 百度在线网络技术(北京)有限公司 视频播放方法和装置
CN105828125A (zh) * 2016-03-31 2016-08-03 北京奇艺世纪科技有限公司 一种视频推送方法及装置
CN105898394A (zh) * 2016-05-25 2016-08-24 腾讯科技(深圳)有限公司 一种多媒体播放方法及相关设备
CN106385594A (zh) * 2016-09-18 2017-02-08 深圳市青柠互动科技开发有限公司 一种优化视频直播服务的方法

Similar Documents

Publication Publication Date Title
CN107277558B (zh) 一种实现直播视频同步的播放器客户端、系统及方法
US10049702B2 (en) Digital video recorder options for editing content
US9787487B2 (en) Facilitating media streaming with social interaction
US9077956B1 (en) Scene identification
KR101454136B1 (ko) 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법
CN107105351B (zh) 再生装置
US8510460B2 (en) Reduced video player start-up latency in HTTP live streaming and similar protocols
JP2015531564A (ja) メディアタイトルを視聴するグループにおける再生同期化
EP3471421B1 (en) Live broadcast video replay method, server, and system
US20160073149A1 (en) Method and apparatus for improved network recording
CN110198494B (zh) 一种视频播放方法、装置、设备和存储介质
US11115706B2 (en) Method, client, and terminal device for screen recording
CN112383790A (zh) 直播的录屏方法、装置、电子设备及存储介质
CA3226207A1 (en) Interactive supplemental content system
US20220417619A1 (en) Processing and playing control over interactive video
US20230217052A1 (en) Systems and methods for providing media content for continous watching
CN112637657A (zh) 交互视频的播放控制方法、装置和系统
CA3104700A1 (en) Systems and methods for providing media content for continuous watching
CN112637612B (zh) 直播平台及其交互视频处理方法
US20150026711A1 (en) Method and apparatus for video content distribution
CN112637611B (zh) 交互视频播放方法、装置和系统
JP5200735B2 (ja) コンテンツ配信システム及びコンテンツ配信方法
JP5899738B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
CN114760485A (zh) 视频轮播方法、系统及相关设备
WO2016133504A1 (en) Continuous viewing media

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210409

RJ01 Rejection of invention patent application after publication