CN115802085A - 播放内容方法、装置、电子设备及存储介质 - Google Patents
播放内容方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115802085A CN115802085A CN202111064413.2A CN202111064413A CN115802085A CN 115802085 A CN115802085 A CN 115802085A CN 202111064413 A CN202111064413 A CN 202111064413A CN 115802085 A CN115802085 A CN 115802085A
- Authority
- CN
- China
- Prior art keywords
- content
- signaling
- signaling information
- 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
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供了一种播放内容方法、装置、电子设备及计算机可读存储介质,其中所述方法包括:接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容;调取所述信令信息中的所述主态内容的内容标识和播放进度;按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。本公开的信令同步播放内容方法,内容分享者开始播放内容,每隔一定时间间隔发一条信令出去,网络观看者收到信令之后会从服务器拉取播放内容的信令信息,从所述信令信息中携带的“内容标识”以及“当前视频播放进度”开始播放内容,保证了内容播放进度的同步性以及播放内容的一致性。
Description
技术领域
本公开涉及内容播放领域,尤其涉及一种播放内容方法、装置、电子设备及存储介质。
背景技术
现在视频技术的发展以及网络技术的应用,使得视频能够实现很复杂的视频直播或共享服务,在用户有意愿进行视频等内容的分享时,现有的视频直播共享系统中,用户在分享视频时往往存在时间上的偏差,实时性不能保证,而且在分享的视频内容上因为网络或算法的问题往往也会存在跳帧现象,使分享内容不一致,因此如何提高实时高效的共享服务,提升用户体验成为亟待解决的问题。
发明内容
为了至少解决上述技术问题,本发明实施方式的目的在于提供一种播放内容方法、装置、电子设备及存储介质。
根据本发明第一方面,本发明的实施例提供了一种播放内容方法,包括:
接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识(标识,简称 ID)和播放进度的信息,所述主态内容为分享者正在观看的内容;
调取所述信令信息中的所述主态内容的内容标识和播放进度;
按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
进一步的,所述信令信息由所述主态内容中的音视频流携带分发。
进一步的,所述信令信息携带当前播放的所述主态内容中的内容标识,同时携带了前一个内容的第一标识和后一个内容的第二标识,以及当前内容位于所述主态内容的内容列表的位置值。
进一步的,所述信令信息被设置为播放子信令信息、暂停子信令信息或列表子信令信息;其中所述播放子信令信息和暂停子信令信息均包括前一个内容的第一标识、当前内容的内容标识和后一个内容的第二标识,所述列表子信令信息包括每次网络请求得到的所述主态内容的内容列表和当前内容位于所述主态内容的内容列表的位置值k。
进一步的,所述同步播放所述主态内容包括:
每间隔预设时间进行比较当前播放的本地内容标识的第一位置值与所述信令信息中的当前内容标识的第二位置值;
如果当前播放的本地内容标识的第一位置值与所述信令信息中的当前内容标识的第二位置值不一致,则对所述客态播放的本地内容标识进行修正。
进一步的,所述方法包括:
如果客态播放的本地播放标识的第一位置值小于所述信令信息中的当前内容标识的第二位置值,则进行渲染内容下滑切换过程动画;
如果客态播放的本地播放标识的第一位置值大于所述信令信息中的当前内容标识的第二位置值,则进行渲染内容上滑切换过程动画。
进一步的,所述信令信息的播放进度包括所述主态内容的播放进度时间;
当当前播放的本地播放进度时间与所述主态内容的播放进度时间不一致时,对所述客态播放的本地内容播放进度进行修正。
进一步的,所述方法包括:
当当前播放的本地播放进度时间与所述主态内容的播放进度时间之间的差值大于设定的阈值时,认定所述信令为有效,将本地播放进度设置到对应的主态内容播放进度时间;
当当前播放的本地播放进度时间与所述主态内容的播放进度时间之间的差值小于等于设定的阈值时,认定所述信令无效并忽略。
进一步的,当所述信令信息为列表子信令信息时,所述信令通过消息信道发送;
当用户在主态内容播放中途接入内容分享时,获取补偿信令,所述补偿信令为服务器通过所述消息通道暂存的预设时间范围内的列表子信令信息。
进一步的,所述信令信息还包括版本号;
当收到高版本号的信令信息时,不再处理低版本号的信令信息。
进一步的,所述信令信息支持分享者和被分享者之间的角色切换,每次角色切换后,递增所述信令信息中的所述版本号。
进一步的,所述信令信息携带当前播放的所述主态内容中的内容ID,同时携带了前一个内容的ID和后一个内容的ID,标记为:
["ID(n-1)","k:IDn","ID(n+1)"],或者
["ID(n-1)","k:IDn:Ts","ID(n+1)"]
其中,ID(n-1)代表前一个内容的ID,k:IDn代表当前内容的ID和当前内容位于所述主态内容的内容列表中的第k位,ID(n+1)代表后一个内容的ID, Ts表示内容播放进度(时间戳),n、k为自然数。
根据本发明的第二方面,本公开实施例提供一种播放内容装置,包括:
解析模块,用于接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容;
调取模块,用于调取所述信令信息中的所述主态内容的内容标识和播放进度;
同步模块,用于按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
根据本发明的第三方面,本公开实施例提供一种电子设备,包括:
存储器,用于存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述电子设备实现上述第一方面中任意一项所述的方法。
根据本发明的第四方面,本公开实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被执行时,能够实现上述第一方面中任意一项所述的方法。
本公开实施例公开了一种信令同步播放视频方法、装置、电子设备及计算机可读存储介质,其中所述方法包括:接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容;调取所述信令信息中的所述主态内容的内容标识和播放进度;按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。本公开的信令同步播放内容方法,内容分享者开始播放内容,每隔一定时间间隔发一条信令出去,网络观看者收到信令之后会从服务器拉取播放内容的信令信息,从所述信令信息中携带的“内容标识”以及“当前视频播放进度”开始播放内容,保证了内容播放进度的同步性以及播放内容的一致性。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本公开一实施例提供的信令同步播放内容方法的流程示意图;
图2为本公开一实施例提供的内容分享者同步播放流程示意图;
图3为本公开一实施例提供的内容分享者与观众之间内容同步示意图;
图4为本公开另一实施例提供的信令同步播放内容装置示意图;
图5为本公开另一实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。下面参考附图详细描述公开的各实施方式。
图1为本公开实施例提供的信令同步播放内容方法的流程示意图,本实施例提供的信令同步播放视频方法可以由一同步视频播放装置来执行,该装置可以实现为软件,或者实现为软件和硬件的组合,该装置可以集成设置在信令同步播放视频系统中的某设备中,比如终端设备、服务设备、互联网中。如图1所示,结合附图2所示的内容分享者同步播放流程示意图,该方法包括如下步骤:
步骤S101:接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容。
在步骤S101中,在本实施例中,分享的内容,即主态或客态中的内容可以为视频、音频图集、课件等,本实施例中以视频为例,主态视频分享者可以是任意用户,用户可以在通话过程中,或者开启房间实现与其他用户的实时视频流分享,即视频共享者与网络观看者同时、同进度的播放同一视频内容。当分享者在分享视频时,在网络系统传输通道中生成具有视频ID和播放进度的信令信息,网络中的视频通过音视频流传输,所述信令信息是由所述音视频频流携带分发的,所述音视频流由音频流和黑帧合成,加上黑帧是为了通过SEI通道传递信息,所述黑帧经过压缩算法后占据空间很小。该信令信息通过视频ID和播放进度时间来表征同步指令,该信令信息中还具有视频列表,例如分享者在播放视频列表中的某视频时,向网络观众发送带有视频列表、视频ID和播放进度的信令信息,通过信令信息的同步,实现网络观众和分享者同步播放同一视频内容,保证分享者和网络观众观看的内容同步且一致,可以实现观众与分享者的同步讨论、互动。
所述信令信息携带当前播放的所述主态视频中的视频ID,同时携带了前一个视频的ID和后一个视频的ID,标记为:
["ID(n-1)","k:IDn","ID(n+1)"],或者
["ID(n-1)","k:IDn:Ts","ID(n+1)"]
其中,ID(n-1)代表前一个视频的ID,k:IDn代表当前视频的ID和当前视频位于所述主态视频的视频列表中的第k位,ID(n+1)代表后一个视频的ID, Ts表示视频播放进度(时间戳),n、k为自然数。
所述信令信息被设置为播放子信令信息、暂停子信令信息或列表子信令信息;其中所述播放子信令信息和暂停子信令信息均包括前一个视频的第一标识、当前视频的视频标识和后一个视频的第二标识,所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表和当前视频位于所述主态视频的视频列表的位置值k。
其中,客态同步播放所述主态视频时,每间隔预设时间进行比较客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频的ID的位置值k 信令;
如果客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频 ID的位置值k信令不一致,则对所述客态播放的本地视频ID的位置值k本地进行修正。
如果客态播放的本地播放ID的位置值k本地小于所述信令信息中的当前视频的ID,则进行渲染下滑的视频动画;
如果客态播放的本地播放ID的位置值k本地大于所述信令信息中的当前视频ID的位置值k信令,则进行渲染上滑的视频动画。
具体的,信令不仅携带当前播放的视频ID,而且携带了前一个视频的ID 和后一个视频的ID:"IDn",以n=2为例:
["ID1","1:ID2","ID3"],ID1代表前一个视频的ID,1:ID2代表当前视频的ID和当前视频位于分享者视频列表的第几位,ID3代表后一个视频的ID。 ID1和ID3的存在,首先能保证观看者能提前从服务端获取视频内容,减少视频加载导致的延迟;其次能保证观看者在房间内看分享者视频的体验,与观看者自己刷推荐流看视频的体验是一致的。
["ID1","1:ID2","ID3"]每个信令都会带上当前视频位于分享者视频列表的第几位("1:ID2"),通过分析比较,可保证分享者视频列表的顺序保持一致(观看者本地的视频列表是分享者的全集或者子集,且跟分享者视频列表的顺序保持一致)。
所述信令信息进一步包括主态视频的视频列表,所述信令信息被设置为播放子信令信息、暂停子信令信息和列表子信令信息,其中所述播放子信令信息和暂停子信令信息均包括前一个视频的ID、当前视频的ID和后一个视频的ID,所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表。每个播放子信令(cmd=1)和暂停子信令(cmd=2)都携带三个视频ID,每个列表子信令(cmd=3)会带上分享者每次网络请求得到的视频列表。通过这三种子信令,观看者可以一步步的还原出分享者的视频列表。即网络观看者(观众)本地的视频列表是分享者的全集或者子集。其中,cmd=3的信令是通过IM信道(消息通道)发送的,服务端会暂存最新的一条,同时当观看者中途进房时,会将暂存的最新的一条信令作为补偿信令分发给新进房的用户,用户可及时获取到分享者当前的播放列表,无需等待分享者每x秒同步的信令。否则假设用户进房时恰巧错过分享者每x秒同步的信令,那么这x秒时间观看者会是黑屏的。
另外,所述信令信息还包括版本号信息,当用户收到高版本号的信令信息时,不再处理低版本号的信令信息,所述信令信息支持主态用户和客态用户之间的角色切换,每次角色切换后,递增所述信令信息中的所述版本号。当用户收到高版本的信令时,不再处理低版本的信令。
分享过程中可以支持分享者和观看者的角色切换。也就是说,视频分享者和观众之间的角色是可以互换的,互换之后,观众就作为视频分享者,例如这种情况:两个或多个用户在互动直播时,某一时刻,其中一个用户作为视频分享者,另一用户作为视频观众,当需要另一用户进行直播分享时,进行角色切换,另一用户作为视频分享者,而开始的分享者作为视频观众。每次角色切换会切换版本号为最新版本。
本实施例中,视频分享者在分享时候,需要在网络通道中分发携带有视频同步信息的信令信息,视频同步信息即上述提到的视频列表、视频ID和播放进度等信息。传输的信令是由音视频流携带分发的。保证了分享者与观看者讨论的视频内容是一致的。该步骤中,为了视频播放的同步,基本实时进行同步,可每隔一个很短的时间间隔来进行分发信令,间隔0.1-5ms,例如 0.2ms,当然,该时间间隔可以根据硬件的工作频率来选择,随着硬件速度的提高,该间隔可进一步缩短。此处,视频分享者作为视频的主态播放方,而观众作为视频的客态播放方。
所述信令信息通过信令通道SEI和信道IM两种类型进行发送。其中,通道SEI通过定时任务冗余发送,时间间隔可配,例如间隔0.1-5ms,例如1234ms,当然,该时间间隔可以根据硬件的工作频率来选择,随着硬件速度的提高,该间隔可进一步缩短;定时发送结合状态变化发送,即在状态变化时立即发送。信道IM,主态主态refresh、loadMore成功后发送。
所述信令信息通过消息信道发送,服务端暂存最新的一条信令信息,当客态用户在主态视频播放中途连接时,将暂存的最新的一条信令信息作为补偿信令分发给新连接的用户,使用户及时获取所述主态视频的当前播放视频列表。
本实施例中采用实时音视频(Web RTC)来进行信令信息的传送,Web RTC 允许在两个设备之间进行实时的对等媒体交换。通过信令的发现和协商过程建立连接,用于发送或接收信令信息,构建双向视频通话。WebRTC是一个完全对等技术,用于实时交换音频、视频和数据。首先必须进行一种发现和媒体格式协商,以使不同网络上的两个设备相互定位,这个过程被称为信令,并涉及两个设备连接到第三个共同商定的服务器,通过这个第三方服务器,这两台设备可以相互定位,并交换协商消息。两个设备之间建立WebRTC连接需要一个信令服务器来实现双方通过网络进行连接。信令服务器的作用是作为一个中间人帮助双方在尽可能少的暴露隐私的情况下建立连接。WebRTC并没有提供信令传递机制,可以使用如WebSocket或者XMLHttpRequest等等,来交换彼此的令牌信息。重要的是信令服务器并不需要理解和解释信令数据内容。通过信令服务器的消息的内容实际上是一个黑盒。当ICE子系统指示将信令数据发送给另一个对等方时,通过信令服务另一个对等方知道如何接收此信息并将其传递给自己的ICE子系统。本实施例中的带有视频列表、视频ID和播放进度的信令信息能够实现网络中不同用户之间的视频内容同步播放。
本实施例中,视频分享者为主态播放方,网络观众为客态播放方,在视频网络中,客态播放方通过信令通道接收视频分享者发送的信令,该信令里,包括视频列表、视频ID和播放进度,播放子信令信息、暂停子信令信息和列表子信令信息,其中所述播放子信令信息和暂停子信令信息均包括前一个视频的ID、当前视频的ID和后一个视频的ID,将信令信息携带的当前播放的所述主态视频中的视频ID,以及前一个视频的ID和后一个视频的ID解析出来,标记为:
["ID(n-1)","k:IDn","ID(n+1)"],或者
["ID(n-1)","k:IDn:Ts","ID(n+1)"]
其中,ID(n-1)代表前一个视频的ID,k:IDn代表当前视频的ID和当前视频位于所述主态视频的视频列表中的第k位,ID(n+1)代表后一个视频的ID, Ts表示视频播放进度(时间戳),n、k为自然数。
具体的,以n=2为例:
["ID1","1:ID2","ID3"],ID1代表前一个视频的ID,1:ID2代表当前视频的ID和当前视频位于分享者视频列表的第几位,ID3代表后一个视频的ID。ID1和ID3的存在,首先能保证观看者能提前从服务端获取视频内容,减少视频加载导致的延迟;其次能保证观看者在房间内看分享者视频的体验,与观看者自己刷推荐流看视频的体验是一致的。
["ID1","1:ID2","ID3"]每个信令都会带上当前视频位于分享者视频列表的第几位("1:ID2"),通过分析比较,可保证分享者视频列表的顺序保持一致(观看者本地的视频列表是分享者的全集或者子集,且跟分享者视频列表的顺序保持一致)。
所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表。每个播放子信令(cmd=1)和暂停子信令(cmd=2)的子信令都携带三个视频 ID,每个列表子信令(cmd=3)的子信令会带上分享者每次网络请求得到的视频列表。通过这三种子信令,观看者可以一步步的还原出分享者的视频列表。即网络观看者(观众)本地的视频列表是分享者的全集或者子集。
步骤S102:调取所述信令信息中的所述主态内容的内容标识和播放进度。
在步骤S102中,调取步骤S101中解析出的信令信息中的主态视频的视频ID和播放进度,其中,视频ID代表了视频列表中的第几个视频,播放进度代表了该视频播放的时间进度,对应于播放的时间戳信息。
调取的信令信息中包含["ID1","n:ID2","ID3"],每个信令都会带上当前视频位于分享者视频列表的第几位("k:ID2"),例如信令上的信息携带 ["ID1","5:ID2","ID3"],表示分享者播放着第5个视频,视频ID为ID2。另外,该信令信息中还具有播放进度时间,例如["ID1","5:ID2:Ts","ID3"],表示分享者播放着第5个视频,视频ID为ID2,播放进度时间为Ts。
步骤S103:按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
在步骤S103中,基于步骤S101中的信令信息,例如 ["ID(n-1)","k:IDn","ID(n+1)"],ID(n-1)和ID(n+1)的存在,首先能保证观看者能提前从服务端获取视频内容,减少视频加载导致的延迟;其次能保证观看者在房间内看分享者视频的体验,与观看者自己刷视频流看视频的体验是一致的。["ID(n-1)","k:IDn","ID(n+1)"]每个信令都会带上当前视频位于分享者视频列表的第k位("k:IDn"),通过分析比较,可保证分享者视频列表的顺序保持一致(观看者本地的视频列表是分享者的全集或者子集,且跟分享者视频列表的顺序保持一致)。所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表。每个播放子信令(cmd=1)和暂停子信令(cmd=2) 的子信令都携带三个视频ID,每个列表子信令(cmd=3)的子信令会带上分享者每次网络请求得到的视频列表。通过这三种子信令,观看者可以一步步的还原出分享者的视频列表。即网络观看者(观众)本地的视频列表是分享者的全集或者子集。同时,通过解析出["ID(n-1)","k:IDn:Ts","ID(n+1)"]的当前播放视频的播放进度时间Ts,使观看者能够保持与分享者同步播放统一视频的内容。
另外,本实施例的信令同步播放视频方法,在客态播放的本地视频与主态(分享者)视频播放ID的位置值k或进度不一致时,进一步包括对客态(观看者)播放的本地视频进行修正的步骤。具体的:
1)播放视频ID的位置值k不一致:
客态同步播放所述主态视频时,每间隔预设时间进行比较客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频的ID的位置值k信令;如果客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频ID 的位置值k信令不一致,则对所述客态播放的本地视频ID进行修正。
如果客态播放的本地播放ID的位置值k本地小于所述信令信息中的当前视频ID的位置值k信令,则进行渲染下滑的视频动画;
如果客态播放的本地播放ID的位置值k本地大于所述信令信息中的当前视频ID的位置值k信令,则进行渲染上滑的视频动画。
例如,["id1","5:id2","id3"]每个信令都会带上当前视频位于分享者视频列表的第几位("5:id2"),这个例子代表播放着第五个视频,如果观看者本地播放的是"3:id4",就需要渲染下滑的动画,因为3<5,反之则是上滑。由此,通过信令携带的位置信息,观看者可计算出分享者是在上滑还是下滑,从而观看者能复现分享者上滑或者下滑的UI动画。
2)播放的同一视频的进度时间不一致:
当客态播放的本地播放进度时间与所述主态视频的播放进度时间不一致时,对所述客态播放的本地视频播放进度进行修正。
当客态播放的本地播放进度时间与所述主态视频的播放进度时间之间的差值大于设定的阈值时,认定为有效信令,客态播放时强行将本地播放进度设置到对应的主态视频播放进度时间;
当客态播放的本地播放进度时间与所述主态视频的播放进度时间之间的差值小于等于设定的阈值时,认定为无效信令,客态播放时忽略所述无效信令。
例如,信令会携带主态视频播放时间戳(即主态视频播放进度时间) "Ts":1234,代表当前分享者播放进度为1234毫秒。当观看者的进度与分享者的进度差大于设定的阈值时,认为是有效信令,会强行设置观看者的进度到1234毫秒,当观看者的进度与分享者的进度差小于等于设定的阈值时,认为是无效信令,观看者丢弃信息,不做处理,提升观看者播放的流畅性、减少性能损耗。
如图3所示,示出了内容分享者与观众之间内容同步示意图。
视频分享者(主态播放方)主态播放视频,并实时分享,分享后生成携带视频列表、视频ID和播放进度(播放时间戳)的信令信息,所述信令信息通过信令通道SEI和信道IM两种类型进行发送。其中,通道SEI通过定时任务冗余发送,时间间隔可配,例如间隔0.1-5ms,例如1234ms,当然,该时间间隔可以根据硬件的工作频率来选择,随着硬件速度的提高,该间隔可进一步缩短;定时发送结合状态变化发送,即在状态变化时立即发送。信道IM,主态主态refresh、loadMore成功后发送。在信令信息发送至观众(客态播放方)的本地后,进行客态解析,解析调取信令信息中的视频列表、视频ID 和播放进度(播放时间戳),对视频ID和播放进度进行本地视频播放的同步渲染。
结合下表,每个播放子信令(cmd=1)和暂停子信令(cmd=2)都携带三个视频ID,每个列表子信令(cmd=3)会带上分享者每次网络请求得到的视频列表;cmd的状态,即:
{"cmd":1}1-主态处于播放状态;
{"cmd":2}2-主态处于暂停状态;
{"cmd":3}3-主态向客态同步列表数据。
通过这三种子信令,观看者可以还原出分享者的视频列表。即网络观看者(观众)本地的视频列表是分享者的全集或者子集。其中,cmd=3的信令是通过IM信道(消息通道)发送的,服务端会暂存最新的一条,同时当观看者中途进房时,会将暂存的最新的一条信令作为补偿信令分发给新进房的用户,用户可及时获取到分享者当前的播放列表,无需等待分享者每x秒同步的信令。否则假设用户进房时恰巧错过分享者每x秒同步的信令,那么这x秒时间观看者会是黑屏的。
图4为本公开另一实施例提供的信令同步播放内容装置示意图。该装置包括:
解析模块401、调取模块402和同步模块403。
其中:
所述解析模块401,用于接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容。
在本实施例中,分享的内容,即主态或客态中的内容可以为视频、音频图集、课件等,本实施例中以视频为例,当主态视频分享者在网络中分享视频时,在网络系统传输通道中生成具有视频ID和播放进度的信令信息,网络中的视频通过音视频流传输,所述信令信息是由所述音视频频流携带分发的,所述音视频流由音频流和黑帧合成,加上黑帧是为了通过SEI通道传递信息,所述黑帧经过压缩算法后占据空间很小。该信令信息通过视频ID和播放进度时间来表征同步指令,该信令信息中还具有视频列表,例如分享者在播放视频列表中的某视频时,向网络观众发送带有视频列表、视频ID和播放进度的信令信息,通过信令信息的同步,实现网络观众和分享者同步播放同一视频内容,保证分享者和网络观众观看的内容同步且一致,可以实现观众与分享者的同步讨论、互动。
所述信令信息携带当前播放的所述主态视频中的视频ID,同时携带了前一个视频的ID和后一个视频的ID,标记为:
["ID(n-1)","k:IDn","ID(n+1)"],或者
["ID(n-1)","k:IDn:Ts","ID(n+1)"]
其中,ID(n-1)代表前一个视频的ID,k:IDn代表当前视频的ID和当前视频位于所述主态视频的视频列表中的第k位,ID(n+1)代表后一个视频的ID, Ts表示视频播放进度(时间戳),n、k为自然数。
所述信令信息进一步包括主态视频的视频列表,所述信令信息被设置为播放子信令信息、暂停子信令信息和列表子信令信息,其中所述播放子信令信息和暂停子信令信息均包括前一个视频的ID、当前视频的ID和后一个视频的ID,所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表。
另外,所述信令信息还包括版本号信息,当用户收到高版本号的信令信息时,不再处理低版本号的信令信息,所述信令信息支持主态用户和客态用户之间的角色切换,每次角色切换后,递增所述信令信息中的所述版本号。当用户收到高版本的信令时,不再处理低版本的信令。可以支持分享者和观看者的角色切换,每次角色切换会切换最新版本号。
本实施例中,主态视频分享者在分享时候,需要在网络通道中分发携带有视频同步信息的信令信息,视频同步信息即上述提到的视频列表、视频ID 和播放进度等信息。传输的信令是由音视频流携带分发的。保证了分享者与观看者讨论的视频内容是一致的。该步骤中,为了视频播放的同步,基本实时进行同步,可每隔一个很短的时间间隔来进行分发信令,间隔0.1-5ms,例如0.2ms,当然,该时间间隔可以根据硬件的工作频率来选择,随着硬件速度的提高,该间隔可进一步缩短。此处,视频分享者作为视频的主态播放方,而观众作为视频的客态播放方。
所述信令信息通过信令通道SEI和信道IM两种类型进行发送。其中,通道SEI通过定时任务冗余发送,时间间隔可配,例如间隔0.1-5ms,例如1234ms,当然,该时间间隔可以根据硬件的工作频率来选择,随着硬件速度的提高,该间隔可进一步缩短;定时发送结合状态变化发送,即在状态变化时立即发送。信道IM,主态主态refresh、loadMore成功后发送。所述信令信息通过消息信道发送,服务端暂存最新的一条信令信息,当客态用户在主态视频播放中途连接时,将暂存的最新的一条信令信息作为补偿信令分发给新连接的用户,使用户及时获取所述主态视频的当前播放视频列表。
本实施例中,在视频网络中,客态播放方通过信令通道接收视频分享者发送的信令,该信令里,包括视频列表、视频ID和播放进度,播放子信令信息、暂停子信令信息和列表子信令信息,其中所述播放子信令信息和暂停子信令信息均包括前一个视频的ID、当前视频的ID和后一个视频的ID,将信令信息携带的当前播放的所述主态视频中的视频ID,以及前一个视频的ID和后一个视频的ID解析出来。
所述调取模块402,用于调取所述信令信息中的所述主态内容的内容标识和播放进度。
调取解析出的信令信息中的主态视频的视频ID和播放进度,其中,视频 ID代表了视频列表中的第几个视频,播放进度代表了该视频播放的时间进度,对应于播放的时间戳信息。
调取的信令信息中包含["ID1","k:ID2","ID3"],每个信令都会带上当前视频位于分享者视频列表的第几位("k:ID2"),例如信令上的信息携带 ["ID1","5:ID2","ID3"],表示分享者播放着第5个视频,视频ID为ID2。另外,该信令信息中还具有播放进度时间,例如["ID1","5:ID2:Ts","ID3"],表示分享者播放着第5个视频,视频ID为ID2,播放进度时间为Ts。
所述同步模块403,用于按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
首先能保证观看者能提前从服务端获取视频内容,减少视频加载导致的延迟;其次能保证观看者在房间内看分享者视频的体验,与观看者自己刷推荐流看视频的体验是一致的。["ID(n-1)","k:IDn","ID(n+1)"]每个信令都会带上当前视频位于分享者视频列表的第k位("k:IDn"),通过分析比较,可保证分享者视频列表的顺序保持一致(观看者本地的视频列表是分享者的全集或者子集,且跟分享者视频列表的顺序保持一致)。所述列表子信令信息包括每次网络请求得到的所述主态视频的视频列表。同时,通过解析出 ["ID(n-1)","k:IDn:Ts","ID(n+1)"]的当前播放视频的播放进度时间Ts,使观看者能够保持与分享者同步播放统一视频的内容。
进一步的,所述装置还包括:
修正模块,用于在客态播放的本地视频与主态(分享者)播放视频ID的位置值k或进度不一致时,对客态(观看者)播放的本地视频进行修正。具体包括:
1)视频ID修正子模块,用于在播放视频ID的位置值k不一致时对所述客态播放的本地视频进行修正:
客态同步播放所述主态视频时,每间隔预设时间进行比较客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频ID的位置值k信令;如果客态播放的本地视频ID的位置值k本地与所述信令信息中的当前视频ID的位置值k信令不一致,则对所述客态播放的本地视频进行修正。
如果客态播放的本地播放ID的位置值k本地小于所述信令信息中的当前视频ID的位置值k信令,则进行渲染下滑的视频动画;
如果客态播放的本地播放ID的位置值k本地大于所述信令信息中的当前视频ID的位置值k信令,则进行渲染上滑的视频动画。
2)视频进度修正子模块,用于在播放的同一视频的进度时间不一致时,对所述客态播放的本地视频播放进度进行修正:
当客态播放的本地播放进度时间与所述主态视频的播放进度时间不一致时,对所述客态播放的本地视频播放进度进行修正。
具体用于:
当客态播放的本地播放进度时间与所述主态视频的播放进度时间之间的差值大于设定的阈值时,认定为有效信令,客态播放时强行将本地播放进度设置到对应的主态视频播放进度时间;
当客态播放的本地播放进度时间与所述主态视频的播放进度时间之间的差值小于等于设定的阈值时,认定为无效信令,客态播放时忽略所述无效信令。
图4所示装置可以执行图1所示实施例的方法,本实施例未详细描述的部分,可参考对图1所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1所示实施例中的描述,在此不再赘述。
下面参考图5,其示出了适于用来实现本公开另一实施例的电子设备500 的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP (便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM503通过通信线路504彼此相连。输入/ 输出(I/O)接口505也连接至通信线路504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500 与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:执行上述实施例中的交互方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面中的任一所述方法。
根据本公开的一个或多个实施例,提供了一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第一方面中的任一所述方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种播放内容方法,其特征在于,包括:
接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容;
调取所述信令信息中的所述主态内容的内容标识和播放进度;
按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
2.根据权利要求1所述的方法,其特征在于,所述信令信息由所述主态内容中的音视频流携带分发。
3.根据权利要求1所述的方法,其特征在于,所述信令信息携带当前播放的所述主态内容中的内容标识,同时携带了前一个内容的第一标识和后一个内容的第二标识,以及当前内容位于所述主态内容的内容列表的位置值。
4.根据权利要求1所述的方法,其特征在于,所述信令信息被设置为播放子信令信息、暂停子信令信息或列表子信令信息;其中所述播放子信令信息和暂停子信令信息均包括前一个内容的第一标识、当前内容的内容标识和后一个内容的第二标识,所述列表子信令信息包括每次网络请求得到的所述主态内容的内容列表和当前内容位于所述主态内容的内容列表的位置值。
5.根据权利要求1所述的方法,其特征在于,所述同步播放所述主态内容包括:
每间隔预设时间进行比较当前播放的本地内容标识的第一位置值与所述信令信息中的当前内容标识的第二位置值;
如果当前播放的本地内容标识的第一位置值与所述信令信息中的当前内容标识的第二位置值不一致,则对所述客态播放的本地内容标识进行修正。
6.根据权利要求5所述的方法,其特征在于,所述方法包括:
如果客态播放的本地播放标识的第一位置值小于所述信令信息中的当前内容标识的第二位置值,则进行渲染内容下滑切换过程动画;
如果客态播放的本地播放标识的第一位置值大于所述信令信息中的当前内容标识的第二位置值,则进行渲染内容上滑切换过程动画。
7.根据权利要求1所述的方法,其特征在于:
所述信令信息的播放进度包括所述主态内容的播放进度时间;
当当前播放的本地播放进度时间与所述主态内容的播放进度时间不一致时,对所述客态播放的本地内容播放进度进行修正。
8.根据权利要求7所述的方法,其特征在于,所述方法包括:
当当前播放的本地播放进度时间与所述主态内容的播放进度时间之间的差值大于设定的阈值时,认定所述信令为有效,将本地播放进度设置到对应的主态内容播放进度时间;
当当前播放的本地播放进度时间与所述主态内容的播放进度时间之间的差值小于等于设定的阈值时,认定所述信令无效并忽略。
9.根据权利要求4所述的方法,其特征在于:
当所述信令信息为列表子信令信息时,所述信令通过消息信道发送;
当用户在主态内容播放中途接入内容分享时,获取补偿信令,所述补偿信令为服务器通过所述消息通道暂存的预设时间范围内的列表子信令信息。
10.根据权利要求1所述的方法,其特征在于:
所述信令信息还包括版本号;
当收到高版本号的信令信息时,不再处理低版本号的信令信息。
11.一种播放内容装置,其特征在于,包括:
解析模块,用于接收信令,并解析所述信令获取信令信息,其中,所述信令信息包括分享者对主态内容进行分享播放时,周期性生成的具有内容标识和播放进度的信息,所述主态内容为分享者正在观看的内容;
调取模块,用于调取所述信令信息中的所述主态内容的内容标识和播放进度;
同步模块,用于按照所述主态内容的内容标识及播放进度,同步播放所述主态内容。
12.一种电子设备,包括:
存储器,用于存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述电子设备实现根据权利要求1-10中任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被执行时,能够实现如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064413.2A CN115802085A (zh) | 2021-09-10 | 2021-09-10 | 播放内容方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064413.2A CN115802085A (zh) | 2021-09-10 | 2021-09-10 | 播放内容方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115802085A true CN115802085A (zh) | 2023-03-14 |
Family
ID=85416908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064413.2A Pending CN115802085A (zh) | 2021-09-10 | 2021-09-10 | 播放内容方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115802085A (zh) |
-
2021
- 2021-09-10 CN CN202111064413.2A patent/CN115802085A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111787365A (zh) | 多路音视频同步方法及装置 | |
CN111064987B (zh) | 信息展示方法、装置及电子设备 | |
WO2013077525A1 (ko) | 제어 방법 및 그를 이용한 장치 | |
CN111970524B (zh) | 交互类直播连麦的控制方法、装置、系统、设备及介质 | |
CN112492357A (zh) | 一种处理多视频流的方法、装置、介质和电子设备 | |
CN110719516A (zh) | 视频同步的方法及装置、终端和存储介质 | |
CN113891132B (zh) | 一种音视频同步监控方法、装置、电子设备及存储介质 | |
CN113794942B (zh) | 自由视角视频的视角切换方法、装置、系统、设备和介质 | |
CN112291498B (zh) | 音视频数据传输的方法、装置和存储介质 | |
WO2023051243A1 (zh) | 视频码率切换方法、装置、电子设备及存储介质 | |
WO2023165371A1 (zh) | 音频播放方法、装置、电子设备及存储介质 | |
CN111818383B (zh) | 视频数据的生成方法、系统、装置、电子设备及存储介质 | |
CN114095671A (zh) | 云会议直播系统、方法、装置、设备及介质 | |
CN109756744B (zh) | 数据处理方法、电子设备及计算机存储介质 | |
CN112770159A (zh) | 多屏互动系统、方法、装置、设备及存储介质 | |
CN113542856A (zh) | 在线录像的倒放方法、装置、设备和计算机可读介质 | |
CN114125358A (zh) | 云会议字幕显示方法、系统、装置、电子设备和存储介质 | |
JP2020174378A (ja) | 異種ネットワーキング環境におけるメディアレンダリングの同期化 | |
CN113923530B (zh) | 一种互动信息展示方法、装置、电子设备及存储介质 | |
CN115802085A (zh) | 播放内容方法、装置、电子设备及存储介质 | |
WO2022188688A1 (zh) | 信息发送方法、装置、电子设备及计算机可读存储介质 | |
CN114765695B (zh) | 一种直播数据处理方法、装置、设备及介质 | |
CN113727183B (zh) | 直播推流方法、装置、设备、存储介质及计算机程序产品 | |
WO2024046124A1 (zh) | 视频处理方法、装置及服务器 | |
CN112804549A (zh) | 直播数据处理方法及设备 |
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 |