CN111918092B - 视频流处理方法、装置、服务器及存储介质 - Google Patents

视频流处理方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN111918092B
CN111918092B CN202010805258.4A CN202010805258A CN111918092B CN 111918092 B CN111918092 B CN 111918092B CN 202010805258 A CN202010805258 A CN 202010805258A CN 111918092 B CN111918092 B CN 111918092B
Authority
CN
China
Prior art keywords
video stream
image
terminal
frame
video
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.)
Active
Application number
CN202010805258.4A
Other languages
English (en)
Other versions
CN111918092A (zh
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 Fanxing Huyu IT Co Ltd
Original Assignee
Guangzhou Fanxing Huyu IT 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 Fanxing Huyu IT Co Ltd filed Critical Guangzhou Fanxing Huyu IT Co Ltd
Priority to CN202010805258.4A priority Critical patent/CN111918092B/zh
Publication of CN111918092A publication Critical patent/CN111918092A/zh
Application granted granted Critical
Publication of CN111918092B publication Critical patent/CN111918092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了一种视频流处理方法、装置、服务器及存储介质,属于互联网技术领域。方法包括:在第一终端在直播间进行视频直播的过程中,响应于接收到第一终端上传的第一视频流,根据第一视频流中的每帧图像对应的生成时间戳,从第一视频流中确定至少一帧第一图像;将至少一帧第一图像转码为可渲染的第二视频流;关联第一终端的终端标识和第二视频流;响应于接收到第二终端发送的加入请求,将第一终端的终端标识关联的第二视频流发送给第二终端。这样第二终端无需从第一视频流的第一帧图像进行转码播放,而是从更靠近当前时间点的第一图像开始播放,从而减小了播放的视频画面对应的时间戳与当前时间点的时间差,减小了直播视频的延时。

Description

视频流处理方法、装置、服务器及存储介质
技术领域
本公开涉及互联网技术领域,特别涉及一种视频流处理方法、装置、服务器及存储介质。
背景技术
目前,直播应用成为了很受大家欢迎的娱乐应用。主播用户通过第一终端上安装的直播应用进行视频直播;而观众用户能够通过第二终端上安装的直播应用观看主播用户的视频直播。
相关技术中,在主播用户直播的过程中,第一终端是以GOP(Group of Pictures,图像群组)的形式向服务器传输视频流的。其中,GOP中包括至少一个I(Intra Picture,内部画面)帧和多个P(Predictive Picture,预测画面)帧。响应于第二终端请求观看主播用户的视频直播,服务器将第一终端最近传输的GOP发送给第二终端;由第二终端对该GOP中的每帧图像进行转码,得到多帧图像,从第一帧图像开始依次渲染,以实现播放视频流。
上述相关技术中,由于一个GOP中包括多帧图像,GOP中的第一帧图像的采集时间与当前时间存在一定时间差,从而导致第二终端播放的视频流与第一终端的直播之间存在延时。
发明内容
本公开实施例提供了一种视频流处理方法、装置、服务器及存储介质,能够减小第一终端播放视频的延时。所述技术方案如下:
一方面,提供了一种方法,所述方法包括:
在第一终端在直播间进行视频直播的过程中,响应于接收到所述第一终端上传的第一视频流,根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,所述至少一帧第一图像为所述第一视频流中生成时间戳距离当前时间点最近的图像;
将所述至少一帧第一图像转码为可渲染的第二视频流;
关联所述第一终端的终端标识和所述第二视频流;
响应于接收到第二终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第二视频流发送给所述第二终端,用于所述第二终端根据所述第二视频流启动播放视频画面。
可选地,所述将所述至少一帧第一图像转码为可渲染的第二视频流,包括:
获取所述第一视频流中的关键帧图像和参考帧图像;
对于每帧第一图像,根据所述第一图像之前的关键帧图像和参考帧图像,对所述第一图像进行转码处理,得到所述第一图像的可渲染的第一图像数据;
将所述至少一帧第一图像的第一图像数据组成所述第二视频流。
可选地,所述根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,包括:
确定所述第一视频流中每帧图像的头部信息;
从所述头部信息中获取所述图像对应的生成时间戳;
根据每帧图像的生成时间戳,从所述第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
可选地,所述将所述第一终端的终端标识关联的第二视频流发送给所述第二终端之后,所述方法还包括:
接收所述第一终端上传的第三视频流;
将所述第三视频流发送给所述第二终端。
可选地,所述将所述第一终端的终端标识关联的第二视频流发送给所述第二终端之后,所述方法还包括:
接收所述第一终端上传的第三视频流,根据所述第三视频流中的每帧图像对应的生成时间戳,从所述第三视频流中确定至少一帧第二图像;将所述至少一帧第二图像转码为可渲染的第四视频流,关联所述第一终端的终端标识和所述第四视频流。
可选地,所述将所述至少一帧第二图像转码为可渲染的第四视频流之后,所述方法还包括:
将所述第一终端的终端标识关联的第二视频流更新为所述第四视频流;
响应于接收到第三终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第四视频流发送给所述第三终端。
可选地,所述方法还包括:
获取所述第一视频流对应的音频数据;
根据所述至少一帧第一图像的生成时间戳,确定所述音频数据的起始时间戳和结束时间戳;
根据所述起始时间戳和所述结束时间戳对所述音频数据进行截取;
将截取的音频数据发送给所述第二终端。
另一方面,提供了一种视频流处理装置,所述装置包括:
第一确定模块,用于在第一终端在直播间进行视频直播的过程中,响应于接收到所述第一终端上传的第一视频流,根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,所述至少一帧第一图像为所述第一视频流中生成时间戳距离当前时间点最近的图像;
转码模块,用于将所述至少一帧第一图像转码为可渲染的第二视频流;
关联模块,用于关联所述第一终端的终端标识和所述第二视频流;
发送模块,用于响应于接收到第二终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第二视频流发送给所述第二终端,用于所述第二终端根据所述第二视频流启动播放视频画面。
可选地,所述转码模块包括:
第一获取单元,用于获取所述第一视频流中的关键帧图像和参考帧图像;
转码单元,用于对于每帧第一图像,根据所述第一图像之前的关键帧图像和参考帧图像,对所述第一图像进行转码处理,得到所述第一图像的可渲染的第一图像数据;
组成单元,用于将所述至少一帧第一图像的第一图像数据组成所述第二视频流。
可选地,所述第一确定模块包括:
确定单元,用于确定所述第一视频流中每帧图像的头部信息;
第二获取单元,用于从所述头部信息中获取所述图像对应的生成时间戳;
选择单元,用于根据每帧图像的生成时间戳,从所述第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
可选地,所述装置还包括:
接收模块,用于接收所述第一终端上传的第三视频流;
所述发送模块,还用于将所述第三视频流发送给所述第二终端。
可选地,所述接收模块,还用于接收所述第一终端上传的第三视频流,根据所述第三视频流中的每帧图像对应的生成时间戳,从所述第三视频流中确定至少一帧第二图像;将所述至少一帧第二图像转码为可渲染的第四视频流,关联所述第一终端的终端标识和所述第四视频流。
可选地,所述装置还包括:
更新模块,用于将所述第一终端的终端标识关联的第二视频流更新为所述第四视频流;
所述发送模块,还用于响应于接收到第三终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第四视频流发送给所述第三终端。
可选地,所述装置还包括:
获取模块,用于获取所述第一视频流对应的音频数据;
第二确定模块,用于根据所述至少一帧第一图像的生成时间戳,确定所述音频数据的起始时间戳和结束时间戳;
截取模块,用于根据所述起始时间戳和所述结束时间戳对所述音频数据进行截取;
所述发送模块,还用于将截取的音频数据发送给所述第二终端。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如本公开实施例中所述的视频流处理方法中所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如本公开实施例中所述的视频流处理方法中所执行的操作。
另一方面,提供了一种计算机程序产品,当所述计算机程序产品中的程序代码由服务器的处理器执行时,使得服务器能够执行上述任一可能实现方式中所述的视频流处理方法。
本公开实施例提供的技术方案带来的有益效果是:
在本公开实施例中,在进行视频直播的过程中,响应于接收到第一终端上传的第一视频流,根据第一视频流中的至少一帧第一图像生成可渲染的第二视频流,从而在第二终端需要播放直播视频时,能够直接向第二终端下发该第二视频流,由于用于生成第二视频流的至少一帧第一图像为生成时间戳距离当前时间点最近的图像,这样第二终端无需从第一视频流中的第一帧图像进行转码播放,而是从更靠近当前时间点的图像开始播放,从而减小了播放的视频画面对应的时间戳与当前时间点的时间差,减小了直播视频的延时。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。
图1是根据本公开实施例提供的一种视频流处理方法的系统架构图;
图2是根据本公开实施例提供的一种视频流处理方法的流程图;
图3是根据本公开实施例提供的一种视频流处理方法的流程图;
图4是根据本公开实施例提供的一种视频流处理装置的结构示意图;
图5是根据本公开实施例提供的一种视频流处理装置的结构示意图;
图6是根据本公开实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1是根据本公开实施例提供的一种视频流处理方法的系统架构图,参见图1,该系统包括:第一终端101、第二终端102和服务器103。其中,第一终端101和第二终端102分别与服务器103之间通过无线网络或数据接口进行数据交互。
第一终端101为采集视频流的终端。可选地,第一终端101中安装目标应用,主播用户通过该目标应用创建直播间,将采集到的视频流上传至服务器103中。第二终端102为观看视频流对应的视频画面的终端。可选地,第二终端102中安装目标应用,第二终端102通过该目标应用获取第一终端101上传的视频流对应的视频画面。其中,该目标应用为任一具有直播功能的应用。例如,目标应用为具有直播功能的视频播放应用、短视频应用、社交应用等。服务器103为目标应用的后台服务器103,通过该服务器103实现将第一终端101采集的视频流转发给第二终端102。
可选地,第一终端101和第二终端102为手机、电脑、平板或可穿戴设备等。该服务器103为单独的服务器103,或者,该服务器103为由多个服务器103构成的服务器103集群,或者,该服务器103为云服务器103等。在本公开实施例中,对第一终端101、第二终端102和服务器103不作具体限定。
图2是根据本公开实施例提供的一种视频流处理方法的流程图。该发明实施例的执行主体为服务器,参见图2,该方法包括:
201、在第一终端在直播间进行视频直播的过程中,响应于接收到该第一终端上传的第一视频流,根据该第一视频流中的每帧图像对应的生成时间戳,从该第一视频流中确定至少一帧第一图像,该至少一帧第一图像为该第一视频流中生成时间戳距离当前时间点最近的图像。
202、将该至少一帧第一图像转码为可渲染的第二视频流。
203、关联该第一终端的终端标识和该第二视频流。
204、响应于接收到第二终端发送的用于加入该直播间的加入请求,将该第一终端的终端标识关联的第二视频流发送给该第二终端,用于该第二终端根据该第二视频流启动播放视频画面。
可选地,该将该至少一帧第一图像转码为可渲染的第二视频流,包括:
获取该第一视频流中的关键帧图像和参考帧图像;
对于每帧第一图像,根据该第一图像之前的关键帧图像和参考帧图像,对该第一图像进行转码处理,得到该第一图像的可渲染的第一图像数据;
将该至少一帧第一图像的第一图像数据组成该第二视频流。
可选地,该根据该第一视频流中的每帧图像对应的生成时间戳,从该第一视频流中确定至少一帧第一图像,包括:
确定该第一视频流中每帧图像的头部信息;
从该头部信息中获取该图像对应的生成时间戳;
根据每帧图像的生成时间戳,从该第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
可选地,该将该第一终端的终端标识关联的第二视频流发送给该第二终端之后,该方法还包括:
接收该第一终端上传的第三视频流;
将该第三视频流发送给该第二终端。
可选地,该将该第一终端的终端标识关联的第二视频流发送给该第二终端之后,该方法还包括:
接收该第一终端上传的第三视频流,根据该第三视频流中的每帧图像对应的生成时间戳,从该第三视频流中确定至少一帧第二图像;将该至少一帧第二图像转码为可渲染的第四视频流,关联该第一终端的终端标识和该第四视频流。
可选地,该将该至少一帧第二图像转码为可渲染的第四视频流之后,该方法还包括:
将该第一终端的终端标识关联的第二视频流更新为该第四视频流;
响应于接收到第三终端发送的用于加入该直播间的加入请求,将该第一终端的终端标识关联的第四视频流发送给该第三终端。
可选地,该方法还包括:
获取该第一视频流对应的音频数据;
根据该至少一帧第一图像的生成时间戳,确定该音频数据的起始时间戳和结束时间戳;
根据该起始时间戳和该结束时间戳对该音频数据进行截取;
将截取的音频数据发送给该第二终端。
在本公开实施例中,在进行视频直播的过程中,响应于接收到第一终端上传的第一视频流,根据第一视频流中的至少一帧第一图像生成可渲染的第二视频流,从而在第二终端需要播放直播视频时,能够直接向第二终端下发该第二视频流,由于用于生成第二视频流的至少一帧第一图像为生成时间戳距离当前时间点最近的图像,这样第二终端无需从第一视频流中的第一帧图像进行转码播放,而是从更靠近当前时间点的图像开始播放,从而减小了播放的视频画面对应的时间戳与当前时间点的时间差,减小了直播视频的延时。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据本公开实施例提供的一种视频流处理方法的流程图。该发明实施例的执行主体为服务器。参见图3,该方法包括:
301、在第一终端在直播间进行视频直播的过程中,响应于接收到该第一终端上传的第一视频流,服务器根据该第一视频流中的每帧图像对应的生成时间戳,从该第一视频流中确定至少一帧第一图像。
其中,该至少一帧第一图像为该第一视频流中生成时间戳距离当前时间点最近的图像。该第一视频流中包括多帧图像,在本步骤中,服务器对获取到的第一视频流进行解析,得到第一视频流中的多帧图像。可选地,该第一视频流为GOP的形式,相应的,该多帧图像中包括至少一帧关键帧图像和多帧参考帧图像。例如,该第一视频流中图像分别为I帧、P1帧、P2帧、P3帧、P4帧、P5帧和P6帧对应的图像。第一终端采集第一视频流,将采集到的第一视频流发送给服务器,由服务器从接收到的第一视频流中确定至少一帧第一图像。其中,该至少一帧第一图像为根据每帧图像的生成时间戳确定的。
在一种可能的实现方式中,第一视频流中的多帧图像按照采集时间的顺序排序,相应的,服务器将该时间排序的最后的至少一帧图像作为第一图像。例如,第一视频流中包括的I帧、P1帧、P2帧、P3帧、P4帧、P5帧和P6帧对应的图像为按照时间顺序排序的,则服务器直接从该I帧、P1帧、P2帧、P3帧、P4帧、P5帧和P6帧对应的图像中,选择最后生成的P5帧和P6帧对应的图像作为该至少一帧一图像。
在本实现方式中,服务器直接将第一视频流中的后边的几帧图像作为至少一帧第一图像,简化了确定图像的过程,提高了获取第一图像的速度,进而减小了直播的延时。
在另一种可能的实现方式中,服务器通过获取第一视频流中每帧图像的头部信息,从图像的头部信息中获取图像的生成时间戳,根据每帧图像的生成时间戳,从第一视频流中确定至少一帧第一在图像,该过程能够通过以下步骤(1)-(3)实现,包括:
(1)服务器确定该第一视频流中每帧图像的头部信息。
图像的头部信息中包括每帧图像的相关信息,例如,生成时间戳、图像的标识等。在本步骤中,服务器获取第一视频流中每一帧图像的头部信息。在本步骤之前,服务器对接收到第一视频流进行解析,得到多帧图像。
(2)服务器从该头部信息中获取该图像对应的生成时间戳。
服务器解析第一视频流的图像的头部信息,从该头部信息中,获取该图像的生成时间戳。
(3)服务器根据每帧图像的生成时间戳,从该第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
在本步骤中,服务器根据每帧图像的生成时间戳,从第一视频流的多帧图像中选择至少一帧第一图像。在一种可能的实现方式中,服务器选择生成时间戳与当前时间点之间的时间差在预设时长内的至少一帧第一图像。相应的,服务器获取当前时间点,将第一视频流中的多帧图像的生成时间戳与当前时间点做差值,确定该当前时间戳与每一帧图像之间的时间差,获取时间差在预设时长内的至少一帧第一图像内。其中,预设时长根据需要进行设置并更改,在本公开实施例中,对该预设时长不作具体限定。例如,该预设时长为0.5s、1s或2s等。在另一种可能的实现方式中,服务器根据每帧图像的生成时间戳对该多帧图像进行排序,根据多帧图像的生成顺序,从该多帧图像中选择最后生成的至少一帧图像。
在本实现方式中,服务器根据第一视频流的多帧图像的头部信息中确定每帧图像的生成时间戳,根据每个图像的生成时间戳确定至少一帧第一图像,提高了确定至少一帧第一图像的准确性。
需要说明的一点是,在本公开实施例中,对该至少一帧第一图像的数量不作具体限定,例如,该至少一帧第一图像的数量为1帧或2帧等。
另外,第一终端通过图像采集模块采集第一视频流。其中,该图像采集模块为集成在第一终端中的模块,或者,该图像采集模块为与第一终端相互独立的模块。在本公开实施例中,对此不作具体限定。例如,该图像采集模块为第一终端中的摄像头,或者,该图像采集模块为与第一终端相互独立的摄像机。响应于该图像采集模块为与第一终端相互独立的摄像机,第一终端与摄像机通过无线网络或数据接口实现数据交互,相应的,第一终端通过无线网络或数据接口接收摄像机发送的第一视频流。
可选地,第一终端采集到第一视频流后就将采集到的第一视频流发送给服务器。或者,第一终端周期性上传采集到的第一视频流。其中,第一终端上传第一视频流的周期根据需要进行设置并更改,在本公开实施例中,对在第一终端上传第一视频流的周期不作具体限定。例如,第一终端上传第一视频流的周期为5s或10s等。
302、服务器获取该第一视频流中的关键帧图像和参考帧图像。
其中,关键帧图像在转码的过程中不需要参考其他图像就能直接转码,例如,该关键帧为I帧;参考帧图像进行转码过程中需要参考之前的关键帧获取图像来参考才能进行转码,例如,该参考帧为P帧。
在本步骤中,服务器获取解析得到的第一视频流的多帧图像中的关键帧和参考帧。可选地,服务器将第一视频流中的多个图像中的I帧作为关键帧,将第一视频流中的多个图像中的P帧作为参考帧。可选地,服务器从第一视频流中的多个图像中选择部分I帧作为关键帧,以及,选择部分P帧作为参考帧。在本公开实施例中,对此不作具体限定。
303、对于每一帧第一图像,服务器根据该第一图像之前的关键帧和参考帧,对该第一图像进行转码处理,得到该第一图像的第一图像数据。
转码处理指将视频流中的图像转换成能够被渲染的图像数据。在本步骤中,服务器对该至少一个第一图像进行转码处理,得到第一图像的第一图像数据。其中,响应于第一图像为关键帧,服务器直接对该第一图像进行转码处理得到第一图像的第一图像数据。响应于第一图像为参考帧,服务器根据该第一图像之前的关键帧和参考帧,对该第一图像进行转码处理,得到第一图像的第一图像数据。
304、服务器将该至少一帧第一图像的第一图像数据组成第二视频流。
其中,第二视频流为第二终端可渲染的视频流。在本步骤中,服务器根据至少一帧第一图像的生成时间戳将该至少一帧图像对应的第一图像数据,按照生成时间戳的顺序组成第二视频流,以便第二终端能够渲染播放该第二视频流。
305、服务器关联该第一终端的终端标识和该第二视频流。
可选的,第一终端的终端标识为第一终端的硬件标识、获取登录第一终端的第一用户的账号或者第一用户创建的直播间的标识等。在本步骤中,服务器将该第一终端的终端标识对应的视频流关联为第二视频流。
306、响应于接收到第二终端发送的用于加入该直播间的加入请求,服务器将该第一终端的终端标识关联的第二视频流发送给该第二终端,用于该第二终端根据该第二视频流启动播放视频画面。
第二终端在需要播放直播视频画面时,生成用于加入该直播间的加入请求,该用于加入该直播间的加入请求携带第一终端的终端标识和第二终端的终端标识等。第二终端将该加入请求发送给服务器,服务器接收到该加入请求后,根据该加入请求获取第一终端的终端标识,根据该第一终端的终端标识获取第一终端的终端标识关联的第二视频流,根据第二终端的终端标识向第二终端发送该第二视频流。
307、服务器接收该第一终端上传的第三视频流。
其中,该第三视频流的时间戳在该第一视频流的时间戳之后。第一终端在开启直播的状态下,实时采集视频流,将采集到的视频流上传至服务器中。本步骤与步骤301中服务器接收第一终端上传的第一视频流的过程相似,在此不再赘述。
308、服务器将该第三视频流发送给该第二终端。
在本步骤中,服务器根据用于加入该直播间的加入请求,将后续接收到的第三视频流发送给第二终端,从而保证第二终端能够连续播放直播视频。可选地,服务器直接将第三视频流发送给第二终端,或者,服务器对第三视频流进行转码,将转码后的十三视频流发送给第二终端。
相应的,在一种可能的实现方式中,服务器直接将接收到的第三视频流发送给第二终端,由第二终端对该第三视频流进行转码处理,得到可渲染的图像数据。在另一种可能的实现方式中,服务器对该第三视频流进行转码,将转码后的图像数据发送给第二终端。其中,服务器在对第三视频流进行转码的过程中,依次第三视频流中的图像进行转码。对于第三视频流中的关键帧,服务器直接对该关键帧进行转码处理;对于第三视频流中的参考帧,服务器获取该图像之前的至少一帧图像,参考该图像之前的至少一帧图像对该图像进行转码。服务器将转码后的第三视频流发送给第二终端,第二终端直接根据接收到的第三视频流渲染直播视频。
另外,服务器不仅将第三视频流转发该第二终端,服务器还将第三视频流中的第二图像进行转码处理。响应于服务器接收到第三终端发送的用于加入该直播间的加入请求,服务器将生成时间戳距离当前时间最近的第四视频流对应的转码图像发送给第三终端。该过程为:接收该第一终端上传的第三视频流,根据该第三视频流中的每帧图像对应的生成时间戳,从该第三视频流中确定至少一帧第二图像;将该至少一帧第二图像转码为可渲染的第四视频流,关联该第一终端的终端标识和该第四视频流。该过程与步骤301-305相似,在此不再赘述。
并且,服务器在生成第四视频流后,根据第四视频流更新第一终端关联的视频流。响应于第三终端发送用于加入直播间的加入请求,将该第一终端的终端标识关联的第四视频流发送给第三终端。该过程为:服务器将该第一终端的终端标识关联的第二视频流更新为该第四视频流;响应于接收到第三终端发送的用于加入该直播间的加入请求,将该第一终端的终端标识关联的第四视频流发送给该第三终端。
在本实现方式中,服务器将接收到的视频流分别做部分转发处理和全部转发处理,根据不同终端获取视频画面的时间点对向终端发送不同时间点的首屏画面,以及后续的直播画面,从而保证同一终端在播放直播视频时,能够保证减少首屏画面的延迟的情况下,保证其他视频画面的流畅。
需要说明的一点是,服务器在接收第一终端上传的视频流的同时,还接收第一终端上传的音频数据。在一种可能的实现方式中,服务器将第一终端上传的第一视频流对应的音频数据直接转发给第二终端。在另一种可能的实现方式中,服务器根据第二视频流对第一终端上传的音频数据截取,将截取的音频数据发送给第二终端,使第二终端接收到的视频流与音频数据对应。
该过程为:
(1)服务器获取该第一视频流对应的音频数据。
第一终端还采集音频数据,将采集到的音频数据上传至服务器中,通过服务器将上传的视频数据发送给第二终端,从而保证第二终端能够播放视频和音频。其中,第一终端通过音频采集模块采集音频数据。可选地,该音频采集模块为集成在第一终端中的模块,或者,该音频采集模块为与第一终端相对独立的模块,在本公开实施例中,对此不作具体限定。可选地,该音频采集模块为任一具有音频采集功能的模块。例如,第一终端包括麦克风。
(2)服务器根据该至少一帧第一图像的生成时间戳,确定该音频数据的起始时间戳和结束时间戳。
在本步骤中,服务器将采集到的第一视频流和音频数据的时间对齐,分别根据第一图像和第二图像的生成时间戳和每一帧图像对应的时长,确定音频数据的起始时间戳和结束时间戳。其中,服务器将该至少一帧第一图像中的最早生成的第一图像的生成时间戳作为该音频数据的起始时间戳。服务器确定该至少一帧第一图像的数量和每一帧图像对应的时长,确定第二视频流的时长,根据起始时间戳和第二视频流的时长,确定该音频数据的结束时间戳。
(3)服务器根据该起始时间戳和该结束时间戳对该音频数据进行截取。
在本步骤中,服务器将起始时间戳和结束时间戳之间的音频数据进行截取,得到第二视频流对应的音频数据。
(4)服务器将截取的音频数据发送给该第二终端。
在本实现方式中,服务器根据至少一帧第一图像对采集到的音频数据进行截取,从而保真的第二视频流和音频数据为对应的,保证了第二终端播放的直播视频能够声画同步,从而保证了用户通过第二终端观看直播视频的用户体验。
在本公开实施例中,在进行视频直播的过程中,响应于接收到第一终端上传的第一视频流,根据第一视频流中的至少一帧第一图像生成可渲染的第二视频流,从而在第二终端需要播放直播视频时,能够直接向第二终端下发该第二视频流,由于用于生成第二视频流的至少一帧第一图像为生成时间戳距离当前时间点最近的图像,这样第二终端无需从第一视频流中的第一帧图像进行转码播放,而是从更靠近当前时间点的图像开始播放,从而减小了播放的视频画面对应的时间戳与当前时间点的时间差,减小了直播视频的延时。
图4是根据本公开实施例提供的一种视频流处理装置的结构示意图,参见图4,该装置包括:
第一确定模块401,用于在第一终端在直播间进行视频直播的过程中,响应于接收到该第一终端上传的第一视频流,根据该第一视频流中的每帧图像对应的生成时间戳,从该第一视频流中确定至少一帧第一图像,该至少一帧第一图像为该第一视频流中生成时间戳距离当前时间点最近的图像;
转码模块402,用于将该至少一帧第一图像转码为可渲染的第二视频流;
关联模块403,用于关联该第一终端的终端标识和该第二视频流;
发送模块404,用于响应于接收到第二终端发送的用于加入该直播间的加入请求,将该第一终端的终端标识关联的第二视频流发送给该第二终端,用于该第二终端根据该第二视频流启动播放视频画面。
可选地,参见图5,该转码模块402包括:
第一获取单元4021,用于获取该第一视频流中的关键帧图像和参考帧图像;
转码单元4022,用于对于每帧第一图像,根据该第一图像之前的关键帧图像和参考帧图像,对该第一图像进行转码处理,得到该第一图像的可渲染的第一图像数据;
组成单元4023,用于将该至少一帧第一图像的第一图像数据组成该第二视频流。
可选地,参见图5,该第一确定模块401包括:
确定单元4011,用于确定该第一视频流中每帧图像的头部信息;
第二获取单元4012,用于从该头部信息中获取该图像对应的生成时间戳;
选择单元4013,用于根据每帧图像的生成时间戳,从该第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
可选地,参见图5,该装置还包括:
接收模块405,用于接收该第一终端上传的第三视频流;
该发送模块404,还用于将该第三视频流发送给该第二终端。
可选地,该接收模块405,还用于接收该第一终端上传的第三视频流,根据该第三视频流中的每帧图像对应的生成时间戳,从该第三视频流中确定至少一帧第二图像;将该至少一帧第二图像转码为可渲染的第四视频流,关联该第一终端的终端标识和该第四视频流。
可选地,参见图5,该装置还包括:
更新模块406,用于将该第一终端的终端标识关联的第二视频流更新为该第四视频流;
该发送模块404,还用于响应于接收到第三终端发送的用于加入该直播间的加入请求,将该第一终端的终端标识关联的第四视频流发送给该第三终端。
可选地,参见图5,该装置还包括:
获取模块407,用于获取该第一视频流对应的音频数据;
第二确定模块408,用于根据该至少一帧第一图像的生成时间戳,确定该音频数据的起始时间戳和结束时间戳;
截取模块409,用于根据该起始时间戳和该结束时间戳对该音频数据进行截取;
该发送模块404,还用于将截取的音频数据发送给该第二终端。
在本公开实施例中,在进行视频直播的过程中,响应于接收到第一终端上传的第一视频流,根据第一视频流中的至少一帧第一图像生成可渲染的第二视频流,从而在第二终端需要播放直播视频时,能够直接向第二终端下发该第二视频流,由于用于生成第二视频流的至少一帧第一图像为生成时间戳距离当前时间点最近的图像,这样第二终端无需从第一视频流中的第一帧图像进行转码播放,而是从更靠近当前时间点的图像开始播放,从而减小了播放的视频画面对应的时间戳与当前时间点的时间差,减小了直播视频的延时。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的视频流处理装置在对视频流处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将视频流处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频流处理装置与视频流处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据本公开实施例提供的一种服务器的结构示意图,该服务器103可因配置或性能不同而产生比较大的差异,可选地,包括一个或一个以上处理器(CentralProcessing Unit,CPU)1031和一个或一个以上的存储器1032,其中,该存储器1032中存储有至少一条程序代码,该至少一条程序代码由该处理器1031加载并执行以实现上述各个方法实施例提供的视频流处理方法。当然,该服务器103还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器103还包括其他用于实现设备功能的部件,在此不做赘述。
服务器103能够用于执行上述视频流处理装置所执行的步骤。
本公开实施例还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条程序代码,该指令由处理器加载并执行以实现上述实施例的视频流处理方法中所执行的操作。
本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该指令由处理器加载并执行以实现上述实施例的视频流处理方法中所执行的操作。
本公开实施例还提供了一种计算机程序产品,当所述计算机程序产品中的程序代码由服务器的处理器执行时,使得服务器能够执行上述任一可能实现方式中所述的视频流处理方法。
本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来程序代码相关的硬件完成,可选地,所述的程序存储于一种计算机可读存储介质中,上述提到的存储介质是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (9)

1.一种视频流处理方法,其特征在于,所述方法包括:
在第一终端在直播间进行视频直播的过程中,响应于接收到所述第一终端上传的第一视频流,根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,所述至少一帧第一图像为所述第一视频流中生成时间戳距离当前时间点最近的图像;
将所述第一视频流中的多个图像中的I帧作为关键帧,并将所述第一视频流中的多个图像中的P帧作为参考帧;
响应于所述第一图像为所述关键帧,直接对所述第一图像进行转码处理得到所述第一图像的可渲染的第一图像数据;响应于所述第一图像为所述参考帧,根据所述第一图像之前的所述关键帧和所述参考帧,对所述第一图像进行转码处理,得到所述第一图像的可渲染的所述第一图像数据;
将所述至少一帧第一图像的所述第一图像数据组成第二视频流;
关联所述第一终端的终端标识和所述第二视频流;
响应于接收到第二终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第二视频流发送给所述第二终端,用于所述第二终端根据所述第二视频流启动播放视频画面。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,包括:
确定所述第一视频流中每帧图像的头部信息;
从所述头部信息中获取所述图像对应的生成时间戳;
根据每帧图像的生成时间戳,从所述第一视频流的多帧图像中选择生成时间戳距离当前时间点最近的至少一帧第一图像。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一终端的终端标识关联的第二视频流发送给所述第二终端之后,所述方法还包括:
接收所述第一终端上传的第三视频流;
将所述第三视频流发送给所述第二终端。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一终端的终端标识关联的第二视频流发送给所述第二终端之后,所述方法还包括:
接收所述第一终端上传的第三视频流,根据所述第三视频流中的每帧图像对应的生成时间戳,从所述第三视频流中确定至少一帧第二图像;将所述至少一帧第二图像转码为可渲染的第四视频流,关联所述第一终端的终端标识和所述第四视频流。
5.根据权利要求4所述的方法,其特征在于,所述将所述至少一帧第二图像转码为可渲染的第四视频流之后,所述方法还包括:
将所述第一终端的终端标识关联的第二视频流更新为所述第四视频流;
响应于接收到第三终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第四视频流发送给所述第三终端。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一视频流对应的音频数据;
根据所述至少一帧第一图像的生成时间戳,确定所述音频数据的起始时间戳和结束时间戳;
根据所述起始时间戳和所述结束时间戳对所述音频数据进行截取;
将截取的音频数据发送给所述第二终端。
7.一种视频流处理装置,其特征在于,所述装置包括:
第一确定模块,用于在第一终端在直播间进行视频直播的过程中,响应于接收到所述第一终端上传的第一视频流,根据所述第一视频流中的每帧图像对应的生成时间戳,从所述第一视频流中确定至少一帧第一图像,所述至少一帧第一图像为所述第一视频流中生成时间戳距离当前时间点最近的图像;
转码模块,用于将所述至少一帧第一图像转码为可渲染的第二视频流;
关联模块,用于关联所述第一终端的终端标识和所述第二视频流;
发送模块,用于响应于接收到第二终端发送的用于加入所述直播间的加入请求,将所述第一终端的终端标识关联的第二视频流发送给所述第二终端,用于所述第二终端根据所述第二视频流启动播放视频画面;
所述转码模块,包括:
第一获取单元,用于将所述第一视频流中的多个图像中的I帧作为关键帧,并将所述第一视频流中的多个图像中的P帧作为参考帧;
转码单元,用于响应于所述第一图像为所述关键帧,直接对所述第一图像进行转码处理得到所述第一图像的可渲染的第一图像数据;响应于所述第一图像为所述参考帧,根据所述第一图像之前的所述关键帧和所述参考帧,对所述第一图像进行转码处理,得到所述第一图像的可渲染的所述第一图像数据;
组成单元,用于将所述至少一帧第一图像的所述第一图像数据组成所述第二视频流。
8.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如权利要求1至6任一权利要求所述的视频流处理方法中所执行的操作。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至6任一权利要求所述的视频流处理方法中所执行的操作。
CN202010805258.4A 2020-08-12 2020-08-12 视频流处理方法、装置、服务器及存储介质 Active CN111918092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010805258.4A CN111918092B (zh) 2020-08-12 2020-08-12 视频流处理方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010805258.4A CN111918092B (zh) 2020-08-12 2020-08-12 视频流处理方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111918092A CN111918092A (zh) 2020-11-10
CN111918092B true CN111918092B (zh) 2022-07-01

Family

ID=73284245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010805258.4A Active CN111918092B (zh) 2020-08-12 2020-08-12 视频流处理方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111918092B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822503B (zh) * 2020-12-30 2022-04-22 腾讯科技(深圳)有限公司 直播视频流的播放方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855189B1 (en) * 2010-04-12 2014-10-07 UV Networks, Inc. Multi-stream transcoding system with cache memory management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
CN106385594A (zh) * 2016-09-18 2017-02-08 深圳市青柠互动科技开发有限公司 一种优化视频直播服务的方法
CN106604064A (zh) * 2016-12-30 2017-04-26 北京奇艺世纪科技有限公司 一种快速开播方法及装置
CN106792120B (zh) * 2017-02-07 2020-06-16 海信视像科技股份有限公司 视频画面的显示方法、装置和终端
US10638192B2 (en) * 2017-06-19 2020-04-28 Wangsu Science & Technology Co., Ltd. Live streaming quick start method and system
CN107566918B (zh) * 2017-09-21 2019-08-13 中国电子科技集团公司第二十八研究所 一种视频分发场景下的低延时取流秒开方法
CN107483976A (zh) * 2017-09-26 2017-12-15 武汉斗鱼网络科技有限公司 直播管控方法、装置及电子设备
CN109218745B (zh) * 2018-10-31 2021-07-23 网宿科技股份有限公司 一种直播方法、服务器、客户端及可读存储介质
CN109618179B (zh) * 2019-01-21 2021-05-11 北京数码视讯软件技术发展有限公司 超高清视频直播的快速起播方法及装置
CN110225362A (zh) * 2019-06-04 2019-09-10 浙江大华技术股份有限公司 一种直播方法、直播服务器及存储装置
CN110351576B (zh) * 2019-07-15 2021-11-05 华瑞新智科技(北京)有限公司 一种在工业场景下进行实时视频流快速显示的方法及其系统
CN110290393A (zh) * 2019-07-23 2019-09-27 北京达佳互联信息技术有限公司 文件获取方法及装置、服务器及存储介质
CN111726650B (zh) * 2020-06-30 2022-10-18 广州繁星互娱信息科技有限公司 视频直播方法及装置、计算机存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855189B1 (en) * 2010-04-12 2014-10-07 UV Networks, Inc. Multi-stream transcoding system with cache memory management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于Docker的混合云视频直播体系";华志翔等;《小型微型计算机系统》;20171031;第38卷(第10期);全文 *

Also Published As

Publication number Publication date
CN111918092A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
US11381739B2 (en) Panoramic virtual reality framework providing a dynamic user experience
WO2019205872A1 (zh) 视频流处理方法、装置、计算机设备及存储介质
CN106713945B (zh) 客户端连麦直播处理方法和装置、直播服务器及直播系统
CN108093267B (zh) 一种直播方法、装置、存储介质及电子设备
CN112019927B (zh) 视频直播方法、连麦设备、直播系统及存储介质
CN106713942B (zh) 视频处理方法和装置
CN112584087B (zh) 视频会议录制方法、电子装置和存储介质
JP2002344880A (ja) コンテンツ配信システム
US20180227586A1 (en) Method and system for media synchronization
CN111147362B (zh) 多人即时通讯方法、系统、装置及电子设备
US20220256205A1 (en) Video processing method and apparatus, computer device, and storage medium
KR20080082759A (ko) 네트워크를 통한 가상 스튜디오 구현 시스템 및 그 방법
CN112073543B (zh) 一种云视频录制方法、系统和可读存储介质
CN109769132B (zh) 一种基于帧同步的多路远程直播视频解说方法
CN112087642B (zh) 云导播播放方法、云导播服务器及远程管理终端
CN111818383B (zh) 视频数据的生成方法、系统、装置、电子设备及存储介质
CN111542862A (zh) 用于处理和分发直播虚拟现实内容的方法和设备
CN111432284A (zh) 一种多媒体终端的弹幕交互方法及多媒体终端
KR20210087918A (ko) 멀티뷰 제공을 위한 스트리밍 플레이어 장치 및 그 방법
CN111918092B (zh) 视频流处理方法、装置、服务器及存储介质
US11431770B2 (en) Method, system, apparatus, and electronic device for managing data streams in a multi-user instant messaging system
US10721500B2 (en) Systems and methods for live multimedia information collection, presentation, and standardization
US20080059999A1 (en) Multi-function display controller
US20240107087A1 (en) Server, terminal and non-transitory computer-readable medium
CN109862385B (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
GR01 Patent grant
GR01 Patent grant