CN112135163A - 视频起播的方法以及装置 - Google Patents
视频起播的方法以及装置 Download PDFInfo
- Publication number
- CN112135163A CN112135163A CN202011035196.XA CN202011035196A CN112135163A CN 112135163 A CN112135163 A CN 112135163A CN 202011035196 A CN202011035196 A CN 202011035196A CN 112135163 A CN112135163 A CN 112135163A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- video data
- terminal
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004891 communication Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
提供了一种视频起播的方法以及装置,涉及图像通信技术领域,以解决视频直播场景下起播速度慢的问题。视频起播的方法包括:实时接收第一终端发送的第一视频数据和第三视频数据,第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;第三视频数据包含第一视频数据中的各个I帧;接收第二终端发送的视频播放请求;响应于该请求,向第二终端实时发送第二视频数据,第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧;在第二视频数据中的第一个视频帧不是I帧的情况下,将第三视频数据中的特定I帧发送给第二终端,特定I帧为视频播放起始时刻之前最新的一个I帧。
Description
技术领域
本发明涉及图像通信技术领域,尤其涉及一种视频起播的方法以及装置。
背景技术
随着网络技术的发展,观看网络直播已经成为近年来较为流行的休闲方式。
目前,对于视频直播而言,从用户请求播放视频流到开始播放视频流(此时,用户可以观看到直播画面)的这一过程占用的时间往往会很长,即起播速度慢,从而会降低用户的播放体验。
发明内容
本发明的实施例提供一种视频起播的方法以及装置,用以解决视频直播场景下起播速度慢的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种视频起播的方法,该方法包括:实时接收第一终端发送的第一视频数据,该第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;实时接收第一终端发送的第三视频数据,该第三视频数据包含第一视频数据中的各个I帧;接收第二终端发送的视频播放请求;响应于视频播放请求,向第二终端实时发送第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧;在第二视频数据中的第一个视频帧不是I帧的情况下,将第三视频数据中的特定I帧发送给第二终端,特定I帧为视频播放起始时刻之前最新的一个I帧。
在一些实施例中,第三视频数据中的各个I帧配置有时间戳;将第三视频数据中的特定I帧发送给第二终端包括:将第三视频数据中在视频播放起始时刻之前配置有最新的时间戳的I帧发送给第二终端。
在一些实施例中,还包括:存储第三视频数据中最新的N个I帧,N大于等于1,N个I帧包含特定I帧;将第三视频数据中的特定I帧发送给第二终端包括:将N个I帧发送给第二终端,或者,将N个I帧中最新的一个I帧发送给第二终端。
在一些实施例中,将第三视频数据中的特定I帧发送给第二终端包括:以广播的方式,发送第三视频数据中的特定I帧。
在一些实施例中,将第三视频数据中的特定I帧发送给第二终端包括:在与第二终端之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,发送特定I帧;在网络带宽小于预设值的情况下,响应于第二终端发送的I帧获取请求,将特定I帧发送给第二终端,其中,I帧获取请求被配置为获取特定I帧。
第二方面,本发明实施例提供了一种视频起播的方法,该视频起播的方法包括:向服务器发送视频播放请求;接收服务器实时发送的第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;在第二视频数据中的第一个视频帧不是I帧的情况下,接收服务器发送的特定I帧,该特定I帧为视频播放起始时刻之前最新的一个I帧;利用特定I帧解码第二视频数据中的前M个连续的非I帧,M大于等于1。
在一些实施例中,接收服务器发送的特定I帧包括:接收服务器以广播的方式发送的特定I帧;或者,视频起播的方法还包括:向服务器发送I帧获取请求,接收服务器发送的特定I帧包括:接收服务器响应于I帧获取请求所发送的特定I帧。
第三方面,本发明实施例提供了一种视频起播的方法,该视频起播的方法包括:实时将第一视频数据发送至服务器,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;实时将第三视频数据发送至服务器,第三视频数据包含第一视频数据中的各个I帧。
在一些实施例中,实时将第三视频数据发送至服务器包括:以广播的方式,实时发送第三视频数据;或者,根据服务器的标识,实时将第三视频数据发送至具有标识的服务器;或者,在与服务器之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,实时发送第三视频数据;在网络带宽小于预设值的情况下,响应于服务器发送的第三视频数据获取请求,将第三视频数据发送给服务器,其中,第三视频数据获取请求被配置为获取第三视频数据。
第四方面,本发明实施例提供了一种视频起播的装置,该视频起播的装置包括接收模块和发送模块;接收模块,被配置为实时接收第一终端发送的第一视频数据,该第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;接收模块,还被配置为实时接收第一终端发送的第三视频数据,该第三视频数据包含第一视频数据中的各个I帧;接收模块,还被配置为接收第二终端发送的视频播放请求;发送模块,被配置为响应于接收模块接收的视频播放请求,向第二终端实时发送第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧;发送模块,还被配置为在第二视频数据中的第一个视频帧不是I帧的情况下,将第三视频数据中的特定I帧发送给第二终端,特定I帧为视频播放起始时刻之前最新的一个I帧。
在一些实施例中,第三视频数据中的各个I帧配置有时间戳;发送模块,具体被配置为将第三视频数据中在视频播放起始时刻之前配置有最新的时间戳的I帧发送给第二终端。
第五方面,本发明实施例提供了一种视频起播的装置,该视频起播的装置包括发送模块、接收模块和处理模块;发送模块,被配置为向服务器发送视频播放请求;接收模块,被配置为接收服务器发送的第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;接收模块,还被配置为在第二视频数据中的第一个视频帧不是I帧的情况下,接收服务器发送的特定I帧,该特定I帧为视频播放起始时刻之前最新的一个I帧;处理模块,被配置为利用特定I帧解码第二视频数据中的前M个连续的非I帧,所述M大于等于1。
第六方面,本发明实施例提供了一种视频起播的装置,该视频起播的装置包括发送模块,该发送模块被配置为实时将第一视频数据发送至服务器,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;发送模块,还被配置为实时将第三视频数据发送至服务器,第三视频数据包含第一视频数据中的各个I帧。
第七方面,本发明实施例提供了一种服务器,该服务器包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,使服务器实现上述任一方面所述的视频起播的方法的步骤。
第八方面,本发明实施例提供了一种终端,该终端包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,使终端实现上述任一方面所述的视频起播的方法的步骤。
第九方面,本发明实施例提供了一种非瞬态计算机可读存储介质,该非瞬态计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述任一方面所述的视频起播的方法的步骤。
本发明实施例提供的视频起播的方法以及装置,在第二终端接收的第二视频数据中的第一个视频帧不是I帧的情况下,这意味着第二终端接收到的第一个GOP数据是不完整的,此时服务器可以将与该第一个视频帧属于同一个GOP数据的I帧直接发送给第二终端,使得第二终端可以将不完整的GOP数据解码出来,从而能够将不完整的GOP数据对应的直播画面显示出来,而无需等待接收到该不完整的GOP数据之后的完整的GOP数据时再进行显示,从而可以缩短视频起播的时间,提升视频起播速度。并且,由于降低了用户等待的时间,因此能够提升用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一些实施例提供的一种通信系统;
图2为本发明一些实施例提供的一种服务器的结构图;
图3为本发明一些实施例提供的一种终端的结构图;
图4为本发明一些实施例提供的一种视频起播的方法的流程图;
图5为本发明一些实施例提供的一种视频数据的示意图;
图6为本发明一些实施例提供的一种终端界面示意图;
图7为本发明一些实施例提供的另一种视频起播的方法的流程图;
图8为本发明一些实施例提供的另一种视频起播的方法的流程图;
图9为本发明一些实施例提供的另一种视频起播的方法的流程图;
图10为本发明一些实施例提供的另一种视频起播的方法的流程图;
图11为本发明一些实施例提供的另一种视频起播的方法的流程图;
图12为本发明一些实施例提供的一种视频起播的装置的结构示意图;
图13为本发明一些实施例提供的另一种视频起播的装置的结构示意图;
图14为本发明一些实施例提供的另一种视频起播的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
除非上下文另有要求,否则,在整个说明书和权利要求书中,术语“包括(comprise)”及其其他形式例如第三人称单数形式“包括(comprises)”和现在分词形式“包括(comprising)”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例(one embodiment)”、“一些实施例(some embodiments)”、“示例性实施例(exemplary embodiments)”、“示例(example)”、“特定示例(specific example)”或“一些示例(some examples)”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本公开的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。此外,所述的特定特征、结构、材料或特点可以以任何适当方式包括在任何一个或多个实施例或示例中。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
“A、B和C中的至少一个”与“A、B或C中的至少一个”具有相同含义,均包括以下A、B和C的组合:仅A,仅B,仅C,A和B的组合,A和C的组合,B和C的组合,及A、B和C的组合。
“A和/或B”,包括以下三种组合:仅A,仅B,及A和B的组合。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。
另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
例如,为了表示不同的终端,本实施例中在终端前添加“第一”、“第二”,得到“第一终端”和“第二终端”;其中,将向服务器发送视频数据(即视频流)的终端称为第一终端,即采集视频流的终端作为第一终端;将从服务器接收视频数据的终端称为第二终端,即播放视频流的终端作为第二终端。类似的,为了区分各视频数据,视频数据在其前添加“第一”、“第二”和“第三”,即得到“第一视频数据”、“第二视频数据”和“第三视频数据”;其中,将由第一终端发送给服务器的两种不同的视频数据分别称为第一视频数据和第三视频数据,将服务器发送给第二终端的视频数据称为第二视频数据。
如图1所示,本发明实施例提供了一种通信系统100。该通信系统100包括多个(至少两个)终端10和服务器(也可以称为流媒体服务器)20。该通信系统100可以应用于直播、视频会议等应用场景。本实施例中,终端10可以为移动终端,也可以为非移动终端。示例性的,移动终端可以为手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动终端可以为个人计算机(personalcomputer,PC)、电视机(television,TV)等,本发明实施例不作具体限定。
在通信系统100中,多个终端可以为2个、3个、5个或大于5个等。为了方便描述,本实施例中将多个终端10中包括至少一个(一个或多个)第一终端和至少一个第二终端。例如,通信系统100中包含三个终端10,分别是终端10_A,10_B和10_C;其中,终端10_A可以是发起直播的一方,终端10_B和终端10_C可以是观看直播的一方。此时,第一终端为终端10_A,两个第二终端分别为终端10_B和终端10_C。又例如,通信系统100中包含三个终端10,分别是终端10_A,10_B和10_C;其中,终端10_A和10_B可以是发起直播的一方,终端10_C可以是观看直播的一方。此时,终端10_C可以选择观看终端10_A发起的直播,也可以选择观看终端10_B发起的直播,本实施例不作限制。此时,两个第一终端为终端10_A和终端10_B,第二终端为终端10_C。
接着,下面的实施例以终端10_A为第一终端,终端10_B为第二终端为例,详细介绍了各产品(服务器和终端)的功能和实现视频起播的方法。
图2是本实施例提供的图1中服务器20的硬件结构图。在一些实施例中,图2所示的服务器20可以包括至少一个处理器201、存储器202和通信接口203。
其中,处理器201可以是一个或多个通用中央处理器(central processing unit,CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC)或者用于控制本公开一些实施例的程序执行的集成电路;其中,CPU可以是单核处理器(single-CPU),也可以是多核处理器(multi-CPU)。这里的一个处理器201可以指一个或多个设备、电路或用于处理数据(例如计算机程序指令)的处理核。
存储器202可存储指令(即计算机程序)、操作系统和数据,其可以包括高速随机存取存储器,只读存储器(read only memory,ROM)或光存储器等,还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。
通信接口203被配置为以各种通信方法来与各种类型的外部设备通信。与处理器201相连,以在处理器201的控制下向外部设备发送数据或命令,或者,接收外部设备发送的数据或命令。通信接口203可以是收发器、收发电路、发送器、接收器等;例如可以是Wi-Fi(Wireless-Fidelity,无线网)芯片、蓝牙芯片等无线通信器件,也可以是通用串行总线(USB)接口等有线通信器件。
示例的,处理器201通过运行或执行存储器202中保存的指令,使得服务器20实现下述实施例中的视频起播的方法,可见,存储器202中保存实现该视频起播的方法的指令。更为详细地,使得服务器20通过通信接口203实时接收第一终端(例如,终端10_A)发送的第一视频数据,并通过通信接口203接收第二终端(例如,终端10_B)发送的视频播放请求;通过通信接口203向第二终端(例如,终端10_B)发送第二视频数据(第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧),并在第二视频数据中的第一个GOP数据不完整的情况下,向第二终端发送用于解码该不完整的GOP数据的特定I帧。
又示例的,处理器201中集成了存储的功能,通过运行或执行内部存储的指令,使得服务器20实现下述实施例中的视频起播的方法,以向第二终端发送第二视频数据和特定I帧。
图3是本实施例提供的图1中终端10的硬件结构图。在一些实施例中,图3所示的终端10可以包括至少一个处理器301、存储器302和通信接口303。
其中,对于处理器301和通信接口303的解释,具体可参见上述图2中对于处理器201和通信接口203的解释,此处不再赘述。
存储器302可存储应用程序、数据和指令,还可以存储有使得终端10能运行的操作系统,例如苹果公司所开发的iOS操作系统,谷歌公司所开发的Android开源操作系统,微软公司所开发的Windows操作系统等。
在一些实施例中,终端10_A还可以包括图像采集装置和音频采集装置,其中,该图像采集装置可以是内置在终端10_A上的摄像头,也可以是摄像机,该摄像机可以与终端10_A连接,从而使得通过该摄像机采集到的图像能够传输至终端10_A;音频采集装置可以是麦克风等。
示例的,处理器301通过运行或执行存储器302中保存的指令,使得终端10_A实现下述实施例中的视频起播的方法。更为详细地,使得终端10_A通过通信接口303实时将第一视频数据(通过图像采集装置采集的视频流,通过音频采集装置采集的音频流,再对采集的音视频流进行压缩所得到的视频数据),以及通过通信接口303实时将第三视频数据(第一视频数据中的各个I帧)发送至服务器20。
又示例的,处理器301中集成了存储的功能,通过运行或执行内部存储的指令,使得第一终端实现下述实施例中的视频起播的方法,以向服务器20发送第一视频数据和第三视频数据。
在另一些实施例中,终端10_B还可以包括用户接口304,其中,该用户接口304可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
示例的,处理器301通过运行或执行存储器302中保存的指令,使得终端10_B实现下述实施例中的视频起播的方法。更为详细地,使得终端10_B通过通信接口303向服务器20发送视频播放请求,并接收服务器20根据该视频播放请求,向终端10_B发送的第二视频数据,并在该第二视频数据中的第一个视频帧不是I帧的情况下,接收服务器20发送的特定I帧,并利用该特定I帧解码第二视频数据中的前M个连续的非I帧,其中,M大于等于1。
本实施例中,第一终端、服务器20和第二终端可以组成一个视频直播系统。示例的,第一终端采集音视频流,并将该音视频流生成包含第一视频数据的音视频文件发送至服务器20,服务器20在接收到该音视频文件后,将该音视频文件发送至第二终端,第二终端对该音视频文件进行解码,这样,用户可以在第二终端上观看第一终端直播的直播画面了。
如图4所示,基于图1所示的系统架构,本实施例提供一种视频起播的方法,该视频起播的方法可以包括下述的S301~S307。
S301、第一终端(例如,终端10_A)采集音视频流,并将音视频流生成包含第一视频数据的音视频文件。
示例性的,终端10_A通过摄像头或摄像机等图像采集装置采集视频流,通过音频采集装置采集音频流。采用视频编码技术(例如,H.264或H.265等),对视频流进行压缩(即编码),以得到第一视频数据。采用音频编码技术(例如,AAC或mp3等)对音频流进行压缩,得到编码后的音频流。
本领域技术人员应该理解,一般使用帧(也可称为视频帧)来表示视频压缩后的画面,帧分为I帧、P帧和B帧。其中,I(Intra)帧是帧内编码帧,是一种自带全部解码信息的独立帧,其可独立进行解码;P(Predictive)帧是预测编码帧,其需要参考前面的I帧才能进行解码;B(Bi-directional)帧是双向预测编码帧,其记录的是本帧和前后帧的差别,解码B帧,不仅要取得之前缓存的画面,还需要解码之后的画面,通过前后画面与本帧数据的叠加取得最终的画面。
本实施例中,第一视频数据是经编码后的视频流,包含至少一个GOP(Group ofPicture,画面组)数据,每个GOP数据包括多个视频帧,即可表示一组连续的画面。其中,每个GOP数据中的第一个视频帧为I帧,在该GOP数据的I帧后面跟随至少一个P帧和/或至少一个B帧,可以将这种包含I帧的GOP数据称为完整的GOP数据。
示例的,参考图5,第一视频数据包含连续的多个GOP数据,横轴t表示时间轴,在终端10_A实时采集和编码音视频流的过程中,会实时生成包含第一视频数据的音视频文件。其中,一个GOP数据是由I帧开始,后面跟随一组P帧,直到下一个I帧之前的一个帧组成的帧序列数据。
后续,终端10_A可以进行数据合成(muxing),即将第一视频数据、编码后的音频流,甚至还有字幕流封装到一个音视频文件中,其中封装的容器格式可以是FLV(FlashVideo)或TS(Transport Stream)等,作为一个信号进行传输。
需要说明的是,终端10_A采集、编码和封装音视频流的过程是实时进行的,即当前采集到第一视频数据中的部分不断地被封装到音视频文件中,那么随着时间推移,会生成连续的多个音视频文件;这些音视频文件会通过S302实时传送给服务器20,即终端10_A向服务器20实时推流。
S302、第一终端(例如,终端10_A)实时将第一视频数据发送至服务器20;相应的,服务器20实时接收第一终端发送的第一视频数据。
示例性的,终端10_A利用RTMP(Real Time Message Protocol,实时信息传输协议),将封装得到的音视频文件实时推流给服务器20;相应的,服务器20实时接收这些音视频文件。
S303、第一终端实时将第三视频数据发送至服务器20;相应的,服务器20实时接收第一终端发送的第三视频数据。
其中,上述第三视频数据包含第一视频数据中的各个I帧,且该各个I帧均配置有时间戳。
本领域技术人员应该理解,时间戳通常是一个字符序列,其可以标识某一刻的时间。
示例的,第一终端每发送一个I帧,即给该I帧打上时间戳,也就是说,每个I帧均配置有该I帧发出的时间。
S304、第二终端(例如,终端10_B)向服务器20发送视频播放请求;相应的,服务器20接收第二终端发送的视频播放请求。
本实施例中,在终端10_B上显示用户交互界面,该用户交互界面可以由终端10_B上安装的浏览器或播放器呈现。示例的,如图6中的(a)所示,该用户交互界面上具有多个直播频道控件(例如播放按钮),其中至少一个播放按钮可以在用户交互界面上直接显示。例如,用户可以直接点击显示在用户交互界面上的播放按钮。再示例的,该用户交互界面上具有多个播放按钮,其中至少一个播放按钮可以是隐藏在选择菜单下以供用户进行选择的。例如,用户需要先点击该选择菜单,以使得终端10_B显示出具有多个播放按钮的界面,在显示了该界面后,用户再点击该界面上的播放按钮。
接着,用户在终端10_B上显示的用户交互界面中选中(例如点击)一播放按钮,以触发终端10_B向服务器20发送视频播放请求。示例的,用户在终端10_B上显示的用户交互界面中可以通过点击第二直播频道的播放按钮,以触发终端10_B向服务器20发送第二直播频道的视频播放请求。
在用户点击了播放按钮后,即触发了终端10_B向服务器20发送视频播放请求后,终端10_B响应于该用户操作,向服务器20发送第二直播频道的视频播放请求。其中,该视频播放请求中包含选中的第二直播频道的标识,以使得终端10_B获取该选中的第二直播频道的音视频数据,即终端10_B开始向服务器20拉流。
需要说明的是,本实施例是以用户交互界面上具有多个直播频道控件为例进行说明的,在实际应用中,该用户交互界面上可以不具有直播频道控件,用户可以通过点击各个直播频道的画面,以触发终端10_B向服务器20发送视频播放请求。
S305、服务器20响应于第二终端发送的视频播放请求,向第二终端实时发送第二视频数据;相应的,第二终端接收服务器20实时发送的第二视频数据。
示例的,服务器20响应于终端10_B发送的视频播放请求,向终端10_B实时发送经过编码的第二视频数据。
其中,上述第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧。
示例的,如图5所示,如果t1时刻为视频播放起始时刻,那么第二视频数据包含t1时刻之后的各个视频帧,即P帧之后的各个视频帧。再示例的,如果t2时刻为视频播放起始时刻,那么第二视频数据包含t2时刻之后的各个视频帧,即I2帧之后的各个视频帧。
本实施例中,视频播放起始时刻为服务器20接收到终端10_B发送的视频播放请求的时刻,也可以为服务器20接收到终端10_B发送的视频播放请求的前一段时间范围内的一个时刻。
S306、在第二视频数据中的第一个视频帧不是I帧的情况下,服务器20将第三视频数据中的特定I帧发送给第二终端;相应的,第二终端接收服务器20发送的第三视频数据中的特定I帧。
其中,上述特定I帧为视频播放起始时刻之前最新的一个I帧。也就是说,特定I帧为与第二视频数据中的第一个视频帧属于同一个GOP数据的I帧。
示例的,如图5所示,第三视频数据包含第一视频数据中的各个I帧,在t2为视频播放起始时刻的情况下,第二视频数据包含I2帧之后的各个视频帧,即P帧及其之后的视频帧,此时,由于该第二视频数据中的第一个视频帧不是I帧,因此,服务器20将t2时刻之前最新的I2帧发送至第二终端,也就是说,服务器20将与第二视频数据中的第一个P帧属于同一个GOP数据的I2帧发送给第二终端。
本实施例中,由于I帧配置有时间戳,因此,视频播放起始时刻之前最新的一个I帧可以理解为,发送I帧的时间与该视频播放起始时刻所对应的时间之间距离的时间最短。
在一些实施例中,上述S306中所述的服务器20将第三视频数据中的特定I帧发送给第二终端,具体可以由下述步骤一实现。
步骤一、服务器20将第三视频数据中在视频播放起始时刻之前配置有最新的时间戳的I帧发送给第二终端。
其中,对于视频播放起始时刻的解释,请参见上述S305中的解释,此处不再赘述。
示例的,如图5所示,第三视频数据包括第一视频数据中的各个I帧,在视频播放起始时刻为t1的情况下,即该视频播放起始时刻所对应的视频帧为P帧的情况下,服务器20可以将第三视频数据中在t1时刻之前配置有最新的时间戳的I1帧发送给第二终端,也就是说,服务器20将与该P帧属于同一个GOP数据的I1帧发送给第二终端。
在一些实施例中,如图4所示,在上述S306之前,本发明实施例提供的视频起播的方法还可以包括:第二终端判断接收的第二视频数据中的第一个视频帧是否为I帧。需要说明的是,本实施例不限制该步骤是否执行,也就是说,该步骤可以执行,也可以不执行。
S307、第二终端利用特定I帧解码第二视频数据中的前M个连续的非I帧,并播放该第二视频数据。其中,M大于等于1。
示例的,在特定I帧为I2帧的情况下,第二终端可以利用该I2帧,解码第二视频数据中下一个GOP数据之前的M个连续的非I帧,在解码后,第二终端即可播放该第二视频数据。
在一些实施例中,如图4所示,在第二视频数据中的第一个视频帧是I帧的情况下,第二终端可以利用该I帧解码第二视频数据中的前M个连续的非I帧,并播放该第二视频数据。其中,该I帧即为特定I帧,M大于等于1。
示例的,如图5所示,在第二视频数据包括I2帧以及I2帧之后的视频帧的情况下,此时,由于该第二视频数据中的第一个视频帧是I2帧,因此,第二终端可以利用该I2帧,解码该第二视频数据中下一个GOP数据之前的M个连续的非I帧,以播放该第二视频数据。
本实施例中,由于第一个视频帧是特定I帧,因此第二终端可以根据该特定I帧之间直接解码第二视频数据,从而提高了起播速度。
本领域技术人员应该理解,解码是编码的逆过程,其可以将信息从已经编码的形式恢复到编码前原状的过程。
本实施例中,第一终端在对采集到的视频流进行编码及封装后,即第一终端获得第一视频数据后,该第一视频数据会携带有该第一终端所采集到的视频(即视频流)的信息,例如视频的宽高和视频帧率等信息,第二终端可以根据服务器发送的特定I帧,还原该视频的宽高和视频帧率,即重建出该I帧所表示的图像,后面的图像可以参考该I帧,也可以被重建出来,从而实现了解码。
本实施例中,第二终端将第二视频数据中的前M个连续的非I帧解码后,第二终端即可播放该第二视频数据。示例的,如图6中的(b)所示,在第二终端上会播放第二直播频道。
在一些实施例中,本发明实施例提供的视频起播的方法还可以包括下述步骤:
服务器20存储第三视频数据中最新的N个I帧,该N个I帧包含特定I帧。其中,N大于等于1。
示例的,服务器20在实时接收第一终端发送的第三视频数据后,可以存储该第三视频数据中包含特定I帧的最新3个I帧。
在一些实施例中,在服务器20存储第三视频数据中最新的N个I帧的情况下,上述S306中所述的服务器20将第三视频数据中的特定I帧发送给第二终端,具体可以由下述步骤二或者步骤三实现。
步骤二、服务器20将N个I帧发送给第二终端。
示例的,如果服务器20存储了3个最新的I帧,那么服务器20可以将这3个最新的I帧都发送给第二终端。
步骤三、服务器20将N个I帧中最新的一个I帧发送给第二终端。
示例的,如果服务器20存储了3个最新的I帧,那么服务器20可以将这3个最新的一个I帧发送给第二终端。
其中,对于上述最新的一个I帧的解释,具体可以参见上述S306中的解释,此处不再赘述。
在一些实施例中,如图7所示,上述S306中所述的服务器20将特定I帧发送给第二终端,具体可以通过下述S306a实现。
S306a、服务器20以广播的方式,发送第三视频数据中的特定I帧。
其中,对于特定I帧的解释,具体可以参见上述S306中的解释,此处不再赘述。
本实施例中,服务器20在以广播的方式发送特定I帧后,第二终端利用该特定I帧解码视频数据,即可认为服务器20以广播的方式将该特定I帧发送给第二终端了。
本领域技术人员可以理解,广播(broadcast)是一种数据传输方式,具体的,其是指对封包在计算机网络中的数据进行传输时,传输的目的地址为网络中的所有设备。也就是说,以广播的方式传输数据时,无论第二终端是否需要该数据,服务器20均将该数据传输至网络中的所有设备。本实施例中,对于特定I帧,服务器20只广播一次,服务器20以广播的方式发送特定I帧后,空间中将一直存在着该特定I帧。
本实施例中,在服务器采用广播的方式将特定I帧发送给第二终端的情况下,可以避免服务器20与第二终端之间的交互,也就是说,无论第二终端是否需要该特定I帧,服务器都发送,当第二终端需要特定I帧时,可以自己获取。从而避免了第二终端向服务器20发送I帧获取请求的时间。
在另一些实施例中,如图8所示,上述S306中所述的服务器20将特定I帧发送给第二终端,具体可以通过下述S306b1和S306b2实现。
S306b1、第二终端向服务器20发送I帧获取请求;相应的,服务器20接收第二终端发送的I帧获取请求。
其中,上述I帧获取请求被配置为获取特定I帧。
S306b2、服务器20响应于第二终端发送的I帧获取请求,将特定I帧发送给第二终端;相应的,第二终端接收服务器20响应于I帧获取请求所发送的特定I帧。
本实施例中,在第二终端向服务器20发送I帧获取请求后,服务器20响应于该I帧获取请求,将特定I帧发送给第二终端。这样,可以减小第二终端与服务器20之间进行数据传输时的带宽要求。
在另一些实施例中,如图9所示,上述S306中所述的服务器20将特定I帧发送给第二终端,具体可以通过下述步骤实现。
服务器20判断在服务器20与第二终端之间的通信网络的网络带宽是否大于预设值,在服务器20与第二终端之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,发送特定I帧(以下称为方式一);在网络带宽小于预设值的情况下,服务器20响应于第二终端发送的I帧获取请求,将特定I帧发送给第二终端(以下称为方式二)。
其中,对于I帧获取请求的解释,具体可参见上述S306b1中的解释,此处不再赘述。
需要说明的是,本实施例不限制预设值的大小,示例的,该预设值可以为100M(兆),也可以为300M(兆)。
需要说明的是,在服务器20与第二终端之间的通信网络的网络带宽等于预设值的情况下,既可以采用上述方式一,也可以采用上述方式二,本实施例对此不作限制。
本实施例中,在服务器20将特定I帧发送给第二终端之前,可以先判断服务器20与第二终端之间的通信网络的网络带宽,这样,可以根据不同网络的网络带宽的大小,采用合适的方式将特定I帧发送给第二终端,例如,在网络带宽较小的情况下,可以采用方式二,将特定I帧发送至第二终端,在网络带宽较大的情况下,可以采用方式一,将特定I帧发送至第二终端。
在一些实施例中,如图10所示,上述S303中所述的第一终端实时将第三视频数据发送至服务器20,具体可以通过下述S303a实现。
S303a、第一终端以广播的方式实时发送第三视频数据。
其中,对于广播方式的解释,具体可以参加上述S306a中的解释,此处不再赘述。
本实施例中,第一终端以广播的方式实时发送第三视频数据,在服务器20接收第一终端发送的第三视频数据后,即可认为第一终端以广播的方式,实时将第三视频数据发送至服务器20了。
本实施例中,第一终端在获取到第一视频数据中的各个I帧后,将获取到的各个I帧发送至网络中的所有服务器,其中,该网络中的各个服务器具有的ip地址可以相同,也可以不同。在此过程中,由于服务器不需要向第一终端发送获取I帧的请求,因此减少了服务器向第一终端发送请求所消耗的时间,从而缩短了第一终端向服务器发送第三视频数据的时间。
在另一些实施例中,如图11所示,上述S303中所述的第一终端实时将第三视频数据发送至服务器20,具体可以通过下述S303b实现。
S303b、第一终端根据服务器20的标识,实时将第三视频数据发送至具有该标识的服务器20。
本实施例中,标识可以被配置为区分不同的服务器,本实施例不限制标识所表示的具体含义,示例的,标识可以为服务器的ip地址。
示例的,在一局域网中包括有4个服务器(服务器1、服务器2、服务器3和服务器4),其中,这四个服务器具有不同的ip地址,第一终端可以根据不同服务器所具有的ip地址,实时将第三视频数据发送至服务器。
在另一些实施例中,上述S303中所述的第一终端实时将第三视频数据发送至服务器20,具体可以通过下述S303c实现。
S303c、服务器判断在该第一终端与服务器20之间的通信网络的网络带宽是否大于预设值。在第一终端与服务器之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,实时发送第三视频数据;在第一终端与服务器之间的网络带宽小于预设值的情况下,响应于服务器20发送的第三视频数据获取请求,将该第三视频数据发送给服务器20。
其中,上述第三视频数据获取请求被配置为获取所述第三视频数据。
本申请的另一些实施例提供了一种视频起播的方法,该视频起播的方法包括下述S401~S406:
S401、第一终端(例如,终端10_A)采集音视频流,并将音视频流生成包含第一视频数据的音视频文件。
需要说明的是,上述S401与上述S301相同,对于S401的解释,具体请参见上述S301中的解释,此处不再赘述。
S402、第一终端(例如,终端10_A)实时将第一视频数据发送至服务器20;相应的,服务器20实时接收第一终端发送的第一视频数据。
其中,对于上述S402的解释,请参见上述S302中的解释,此处不再赘述。
S403、第二终端向服务器20发送视频播放请求;相应的,服务器20接收第二终端发送的视频播放请求。
其中,对于上述S403的解释,请参见上述S304中的解释,此处不再赘述。
S404、服务器20响应于第二终端发送的视频播放请求,向第二终端实时发送第二视频数据;相应的,第二终端接收服务器20实时发送的第二视频数据。
其中,对于上述S404的解释,请参见上述S305中的解释,此处不再赘述。
S405、在第二视频数据中的第一个视频帧不是I帧的情况下,服务器20特定I帧发送给第二终端。
其中,对于上述特定I帧的解释,具体参见上述S306中对于特定I帧的解释,此处不再赘述。
S406、第二终端在接收到服务器20发送的特定I帧后,第二终端利用该特定I帧解码第二视频数据中的前M个连续的非I帧。其中,M大于等于1。
其中,对于S406的解释,请参见上述S307中的解释,此处不再赘述。
如图12所示,本发明实施例提供一种视频起播的装置500,包括接收模块501和发送模块502。接收模块501,被配置为实时接收第一终端发送的第一视频数据,该第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;接收模块501,还被配置为实时接收第一终端发送的第三视频数据,该第三视频数据包含第一视频数据中的各个I帧;接收模块501,还被配置为接收第二终端发送的视频播放请求;发送模块502,被配置为响应于接收模块501接收的视频播放请求,向第二终端发送第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧;发送模块502,还被配置为在第二视频数据中的第一个视频帧不是I帧的情况下,将第三视频数据中的特定I帧发送给第二终端,特定I帧为视频播放起始时刻之前最新的一个I帧。
在一些实施例中,第三视频数据中的各个I帧配置有时间戳;发送模块502,具体被配置为将第三视频数据中在视频播放起始时刻之前配置有最新的时间戳的I帧发送给第二终端。
在一些实施例中,本发明实施例提供一种视频起播的装置500还包括存储模块503,该存储模块503被配置为存储第三视频数据中最新的N个I帧,N大于等于1,N个I帧包含特定I帧;发送模块502,具体被配置为将N个I帧发送给第二终端,或者,将N个I帧中最新的一个I帧发送给第二终端。
在一些实施例中,发送模块502具体被配置为以广播的方式,发送第三视频数据中的特定I帧。
在一些实施例中,发送模块502具体被配置为在与第二终端之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,发送特定I帧;在所述网络带宽小于预设值的情况下,响应于第二终端发送的I帧获取请求,将特定I帧发送给第二终端,其中,I帧获取请求被配置为获取特定I帧。
如图13所示,本发明实施例提供一种视频起播的装置600包括发送模块601、接收模块602和处理模块603。发送模块601,被配置为向服务器发送视频播放请求;接收模块602,被配置为接收服务器实时发送的第二视频数据,该第二视频数据包含第一视频数据中,视频播放请求对应的视频播放起始时刻之后的视频帧,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;接收模块602,还被配置为在第二视频数据中的第一个视频帧不是I帧的情况下,接收服务器发送的特定I帧,该特定I帧为视频播放起始时刻之前最新的一个I帧;处理模块603,被配置为利用特定I帧解码第二视频数据中的前M个连续的非I帧,M大于等于1。
在一些实施例中,接收模块602,具体被配置为接收服务器以广播的方式发送的特定I帧;或者,发送模块601,还被配置为向服务器发送I帧获取请求;接收模块602,具体被配置为接收服务器响应于I帧获取请求所发送的特定I帧。
如图14所示,本发明实施例提供一种视频起播的装置700包括发送模块701。该发送模块701被配置为实时将第一视频数据发送至服务器,第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中GOP数据中的第一个视频帧为I帧;发送模块701,还被配置为实时将第三视频数据发送至服务器,该第三视频数据包含第一视频数据中的各个I帧。
在一些实施例中,发送模块701,具体被配置为以广播的方式,实时发送第三视频数据;或者,具体被配置为根据服务器的标识,实时将第三视频数据发送至具有标识的服务器;或者,具体被配置为在与服务器之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,实时发送第三视频数据;在网络带宽小于预设值的情况下,响应于服务器发送的第三视频数据获取请求,将第三视频数据发送给服务器,其中,第三视频数据获取请求被配置为获取第三视频数据。
图12~图14所描述的装置实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。图12~图14中上述各个模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。图12~图14中上述各个模块也可以由装置中的不同硬件分别实现,例如发送模块601由至少一个处理器中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而接收模块602由至少一个处理器中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gatearray,FPGA)、或协处理器等可编程器件来完成。显然上述功能模块也可以采用软件硬件相结合的方式来实现,例如发送模块601由硬件可编程器件实现,而接收模块602是由CPU读取存储器中存储的程序代码后,生成的软件功能模块。
图12~图14中各个模块实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
本发明实施例还提供了一种服务器,用以实施上述实施例描述的视频起播的方法。
在一些实施例中,服务器可以包括处理器,存储器,以及存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时,使服务器实现上述视频起播的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种终端,用以实施上述实施例描述的视频起播的方法。
在一些实施例中,终端包括处理器,存储器,以及存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时,使终端实现上述视频起播的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,例如,非瞬态计算机可读存储介质,该非瞬态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述各个视频起播的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,该计算机可读存储介质可以包括只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (16)
1.一种视频起播的方法,其特征在于,包括:
实时接收第一终端发送的第一视频数据,所述第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
实时接收所述第一终端发送的第三视频数据,所述第三视频数据包含所述第一视频数据中的各个I帧;
接收第二终端发送的视频播放请求;
响应于所述视频播放请求,向所述第二终端实时发送第二视频数据,所述第二视频数据包含所述第一视频数据中,所述视频播放请求对应的视频播放起始时刻之后的视频帧;
在所述第二视频数据中的第一个视频帧不是I帧的情况下,将所述第三视频数据中的特定I帧发送给所述第二终端,所述特定I帧为所述视频播放起始时刻之前最新的一个I帧。
2.根据权利要求1所述的视频起播的方法,其特征在于,所述第三视频数据中的各个I帧配置有时间戳;
所述将第三视频数据中的特定I帧发送给所述第二终端包括:将所述第三视频数据中在所述视频播放起始时刻之前配置有最新的时间戳的I帧发送给所述第二终端。
3.根据权利要求1所述的视频起播的方法,其特征在于,还包括:存储所述第三视频数据中最新的N个I帧,N大于等于1,所述N个I帧包含所述特定I帧;
所述将第三视频数据中的特定I帧发送给所述第二终端包括:将所述N个I帧发送给所述第二终端,或者,将所述N个I帧中最新的一个I帧发送给所述第二终端。
4.根据权利要求1~3任一项所述的视频起播的方法,其特征在于,所述将所述第三视频数据中的特定I帧发送给所述第二终端包括:
以广播的方式,发送所述第三视频数据中的特定I帧。
5.根据权利要求4所述的视频起播的方法,其特征在于,所述将所述第三视频数据中的特定I帧发送给所述第二终端包括:
在与所述第二终端之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,发送所述特定I帧;在所述网络带宽小于所述预设值的情况下,响应于所述第二终端发送的I帧获取请求,将所述特定I帧发送给所述第二终端,其中,所述I帧获取请求被配置为获取所述特定I帧。
6.一种视频起播的方法,其特征在于,包括:
向服务器发送视频播放请求;
接收所述服务器实时发送的第二视频数据,所述第二视频数据包含第一视频数据中,所述视频播放请求对应的视频播放起始时刻之后的视频帧,所述第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
在所述第二视频数据中的第一个视频帧不是I帧的情况下,接收所述服务器发送的特定I帧,所述特定I帧为所述视频播放起始时刻之前最新的一个I帧;
利用所述特定I帧解码所述第二视频数据中的前M个连续的非I帧,M大于等于1。
7.根据权利要求6所述的视频起播的方法,其特征在于,
所述接收所述服务器发送的特定I帧包括:接收所述服务器以广播的方式发送的特定I帧;
或者,
所述视频起播的方法还包括:向所述服务器发送I帧获取请求,所述接收所述服务器发送的特定I帧包括:接收所述服务器响应于所述I帧获取请求所发送的特定I帧。
8.一种视频起播的方法,其特征在于,包括:
实时将第一视频数据发送至服务器,所述第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
实时将第三视频数据发送至所述服务器,所述第三视频数据包含所述第一视频数据中的各个I帧。
9.根据权利要求8所述的视频起播的方法,其特征在于,
所述实时将第三视频数据发送至服务器包括:以广播的方式实时发送所述第三视频数据;
或者,
根据服务器的标识,实时将所述第三视频数据发送至具有所述标识的服务器;
或者,
在与所述服务器之间的通信网络的网络带宽大于预设值的情况下,以广播的方式,实时发送所述第三视频数据;在所述网络带宽小于所述预设值的情况下,响应于所述服务器发送的第三视频数据获取请求,将所述第三视频数据发送给所述服务器,其中,所述第三视频数据获取请求被配置为获取所述第三视频数据。
10.一种视频起播的装置,其特征在于,包括接收模块和发送模块;
所述接收模块,被配置为实时接收第一终端发送的第一视频数据,所述第一视频数据包含至少一个GOP画面组数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
所述接收模块,还被配置为实时接收所述第一终端发送的第三视频数据,所述第三视频数据包含所述第一视频数据中的各个I帧;
所述接收模块,还被配置为接收第二终端发送的视频播放请求;
所述发送模块,被配置为响应于所述接收模块接收的所述视频播放请求,向所述第二终端实时发送第二视频数据,所述第二视频数据包含所述第一视频数据中,所述视频播放请求对应的视频播放起始时刻之后的视频帧;
所述发送模块,还被配置为在所述第二视频数据中的第一个视频帧不是I帧的情况下,将所述第三视频数据中的特定I帧发送给所述第二终端,所述特定I帧为所述视频播放起始时刻之前最新的一个I帧。
11.根据权利要求10所述的视频起播的装置,其特征在于,所述第三视频数据中的各个I帧配置有时间戳;
所述发送模块,具体被配置为将所述第三视频数据中在所述视频播放起始时刻之前配置有最新的时间戳的I帧发送给所述第二终端。
12.一种视频起播的装置,其特征在于,包括发送模块、接收模块和处理模块;
所述发送模块,被配置为向服务器发送视频播放请求;
所述接收模块,被配置为接收所述服务器发送的第二视频数据,所述第二视频数据包含第一视频数据中,所述视频播放请求对应的视频播放起始时刻之后的视频帧,所述第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
所述接收模块,还被配置为在所述第二视频数据中的第一个视频帧不是I帧的情况下,接收所述服务器发送的特定I帧,所述特定I帧为所述视频播放起始时刻之前最新的一个I帧;
所述处理模块,被配置为利用所述特定I帧解码所述第二视频数据中的前M个连续的非I帧,M大于等于1。
13.一种视频起播的装置,其特征在于,包括发送模块;
所述发送模块,被配置为实时将第一视频数据发送至服务器,所述第一视频数据包含至少一个GOP数据,每个GOP数据包括多个视频帧,其中所述GOP数据中的第一个视频帧为I帧;
所述发送模块,还被配置为实时将第三视频数据发送至所述服务器,所述第三视频数据包含所述第一视频数据中的各个I帧。
14.一种服务器,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,使所述服务器实现如权利要求1~9中任一项所述的视频起播的方法的步骤。
15.一种终端,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,使所述终端实现如权利要求1~9中任一项所述的视频起播的方法的步骤。
16.一种非瞬态计算机可读存储介质,其特征在于,所述非瞬态计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1~9任一项所述的视频起播的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035196.XA CN112135163A (zh) | 2020-09-27 | 2020-09-27 | 视频起播的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035196.XA CN112135163A (zh) | 2020-09-27 | 2020-09-27 | 视频起播的方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112135163A true CN112135163A (zh) | 2020-12-25 |
Family
ID=73839856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035196.XA Pending CN112135163A (zh) | 2020-09-27 | 2020-09-27 | 视频起播的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112135163A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979712A (zh) * | 2022-05-13 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 视频起播方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841692A (zh) * | 2010-04-23 | 2010-09-22 | 深圳市茁壮网络股份有限公司 | 视频流快进快退的方法 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视系统技术有限公司 | 一种视频数据存储及回放系统、装置和方法 |
CN106454389A (zh) * | 2016-10-10 | 2017-02-22 | 广州酷狗计算机科技有限公司 | 一种直播视频的播放方法与装置 |
US20180192090A1 (en) * | 2017-01-04 | 2018-07-05 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method of implementing audio and video live broadcast and server |
CN109951717A (zh) * | 2019-03-29 | 2019-06-28 | 北京奇艺世纪科技有限公司 | 一种快速开播方法及装置 |
CN110392269A (zh) * | 2018-04-17 | 2019-10-29 | 腾讯科技(深圳)有限公司 | 媒体数据处理方法和装置、媒体数据播放方法和装置 |
-
2020
- 2020-09-27 CN CN202011035196.XA patent/CN112135163A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841692A (zh) * | 2010-04-23 | 2010-09-22 | 深圳市茁壮网络股份有限公司 | 视频流快进快退的方法 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视系统技术有限公司 | 一种视频数据存储及回放系统、装置和方法 |
CN106454389A (zh) * | 2016-10-10 | 2017-02-22 | 广州酷狗计算机科技有限公司 | 一种直播视频的播放方法与装置 |
US20180192090A1 (en) * | 2017-01-04 | 2018-07-05 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method of implementing audio and video live broadcast and server |
CN110392269A (zh) * | 2018-04-17 | 2019-10-29 | 腾讯科技(深圳)有限公司 | 媒体数据处理方法和装置、媒体数据播放方法和装置 |
CN109951717A (zh) * | 2019-03-29 | 2019-06-28 | 北京奇艺世纪科技有限公司 | 一种快速开播方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979712A (zh) * | 2022-05-13 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 视频起播方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327728B (zh) | 一种一对多同屏方法、装置和系统、同屏设备及存储介质 | |
CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
US12015770B2 (en) | Method for encoding video data, device, and storage medium | |
CN112752115B (zh) | 直播数据传输方法、装置、设备及介质 | |
JP5257367B2 (ja) | 映像配信装置、映像配信システム及び映像配信方法 | |
CN111343504B (zh) | 视频处理方法、装置、计算机设备和存储介质 | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN103327361A (zh) | 实时视频通讯回放数据流的获取方法、装置及系统 | |
CN110996122B (zh) | 视频帧传输方法、装置、计算机设备及存储介质 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN115243074B (zh) | 视频流的处理方法及装置、存储介质、电子设备 | |
WO2021057697A1 (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
CN110505441B (zh) | 一种可视通信的方法、装置和系统 | |
CN112954433A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
US11743461B2 (en) | Video encoding apparatus, video decoding apparatus, video playback system and method | |
CN105979284B (zh) | 移动终端视频共享方法 | |
CN114222156A (zh) | 视频剪辑方法、装置、计算机设备和存储介质 | |
CN112135163A (zh) | 视频起播的方法以及装置 | |
CN108134957A (zh) | 一种投屏方法、终端和计算机存储介质 | |
CN109302574B (zh) | 一种处理视频流的方法和装置 | |
KR20140070896A (ko) | 비디오 스트리밍 방법 및 그 전자 장치 | |
WO2022116822A1 (zh) | 沉浸式媒体的数据处理方法、装置和计算机可读存储介质 | |
CN114157903B (zh) | 重定向方法、装置、设备、存储介质及程序产品 | |
CN115278323A (zh) | 一种显示设备、智能设备和数据处理方法 | |
CN110798700B (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 |