CN115297343A - 视频数据发送方法、装置及电子设备 - Google Patents

视频数据发送方法、装置及电子设备 Download PDF

Info

Publication number
CN115297343A
CN115297343A CN202210930148.XA CN202210930148A CN115297343A CN 115297343 A CN115297343 A CN 115297343A CN 202210930148 A CN202210930148 A CN 202210930148A CN 115297343 A CN115297343 A CN 115297343A
Authority
CN
China
Prior art keywords
data
user equipment
frame data
encoder
frame
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.)
Granted
Application number
CN202210930148.XA
Other languages
English (en)
Other versions
CN115297343B (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.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication 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 Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202210930148.XA priority Critical patent/CN115297343B/zh
Publication of CN115297343A publication Critical patent/CN115297343A/zh
Priority to PCT/CN2023/110478 priority patent/WO2024027680A1/zh
Application granted granted Critical
Publication of CN115297343B publication Critical patent/CN115297343B/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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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

Abstract

本申请提供一种视频数据发送方法、装置及电子设备,涉及视频技术领域,所述方法包括:通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。

Description

视频数据发送方法、装置及电子设备
技术领域
本申请涉及视频技术领域,尤其涉及一种视频数据发送方法、装置及电子设备。
背景技术
目前在进行视频编码时,会将视频流编码生成I帧和P帧进行传输。I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像帧即可独立进行解码。P帧又称帧间预测编码帧,需要参考I帧才能进行编码。I帧的信息量远大于P帧的信息量。
在视频观看场景,服务器通常需要将同一个视频流下发给多个用户进行观看。服务器会通过编码器生成多份相同的编码数据,并将该多份编码数据分别下发给该多个用户进行解码观看。目前,每新增一个观看的用户,服务器会通过该编码器编码生成一个I帧,并将该I帧下发给所有的用户。当在较短时间内新增多个用户时,会通过该编码器集中生成多个I帧并下发给所有的用户,导致较短时间内下发给每个用户的数据量均会较大,容易造成网络拥塞,甚至会造成黑屏或卡顿。
发明内容
本申请实施例提供一种视频数据发送方法、装置及电子设备,能够解决现有技术中视频观看场景下由于较短时间内下发给每个用户的数据量较大容易造成网络拥塞,甚至会造成黑屏或卡顿的问题。
第一方面,本申请实施例提供了一种视频数据发送方法,所述方法包括:
通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;
在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;
在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
第二方面,本申请实施例提供了一种视频数据发送装置,所述装置包括:
第一发送模块,用于通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;
第二发送模块,用于在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;
第三发送模块,用于在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的视频数据发送方法中的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的视频数据发送方法中的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。这样,在接收到第二用户设备对第一编码器的编码数据的第一视频显示请求时,通过第二编码器向第二用户设备下发第二编码数据,能够避免由于较短时间内新增多个用户设备导致第一编码器集中生成I帧数据;且在第一编码数据满足预设条件的情况下,将第二用户设备的视频数据的来源由第二编码器切换至第一编码器,能够避免由于新增多个用户设备导致的第二编码器向大量用户设备集中下发I帧数据,从而能够降低由于新增用户设备导致的短时间内向用户设备下发的数据量,能够降低由于网络拥塞导致的黑屏或卡顿的概率。
附图说明
图1是本申请实施例提供的一种视频数据发送方法的流程图;
图2是本申请实施例提供的一种编码数据的示意图之一;
图3是本申请实施例提供的一种编码数据的示意图之二;
图4是本申请实施例提供的一种会议场景的视频流下发示意图;
图5是本申请实施例提供的一种编码数据的示意图之三;
图6是本申请实施例提供的一种编码器的示意图;
图7是本申请实施例提供的一种数据缓存的示意图;
图8是本申请实施例提供的一种视频数据发送的示意图之一;
图9是本申请实施例提供的一种视频数据发送的示意图之二;
图10是本申请实施例提供的一种视频数据发送装置的结构示意图;
图11是本申请实施例提供的一种电子设备的结构示意图之一;
图12是本申请实施例提供的一种电子设备的结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的视频数据发送方法、装置及电子设备进行详细地说明。
参见图1,图1是本申请实施例提供的一种视频数据发送方法的流程图,如图1所示,包括以下步骤:
步骤101、通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据。
其中,第一编码器可以是1080P编码器,或者720P编码器,或者480P编码器,或者其他编码器,等等,本实施例对此不进行限定。1080P编码器用于生成分辨率为1080P的高清视频流,720P编码器用于生成分辨率为720P的准高清视频流,480P编码器用于生成分辨率为480P的标清视频流。
另外,本申请实施例的视频数据发送方法可以由服务器执行。
另外,第一编码器可以用于按照预设时间间隔基于所述视频流生成所述第一编码数据,所述第一编码数据可以包括I帧数据和P帧数据。
步骤102、在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据。
其中,第二编码器的数量可以为一个或多个。第二用户设备的数量可以为一个或多个。第二编码器可以用于在接收到视频显示请求的情况下基于所述视频流生成I帧数据,并下发给第二用户设备,使得第二用户设备可以基于该I帧数据显示视频画面。
另外,第二编码器可以为1080P编码器,或者720P编码器,或者480P编码器,或者其他编码器,等等,本实施例对此不进行限定。一种实施方式中,所述第二编码器编码生成的图像的分辨率小于所述第一编码器编码生成的图像的分辨率。
一种实施方式中,第二用户设备的数量可以为一个或多个,第二编码器的数量可以为一个,对于每一个第二用户设备的视频显示请求,第二编码器可以在接收到每一个第二用户设备的视频显示请求的情况下基于所述视频流生成I帧数据,并下发给第二用户设备,从而第二用户设备可以基于下发的I帧数据显示视频画面。
另一种实施方式中,第二用户设备的数量可以为一个或多个,第二编码器的数量可以为多个,对于每一个第二用户设备的视频显示请求,可以从该多个第二编码器中选择出用于基于视频显示请求生成I帧数据的第二编码器,该选择的第二编码器可以是距离上一次生成I帧的时间间隔大于预设时长的第二编码器。该预设时长可以预先设置,示例地,可以为2s,或者5s,或者30s,等等,本实施例对此不进行限定。
需要说明的是,该第二编码器也可以称为策略编码器。
步骤103、在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
其中,所述第一编码数据满足预设条件,可以是所述第一编码器生成第一I帧数据的下一个I帧数据,另外,接收到所述第一视频显示请求的时间,在第一I帧数据的生成时间与第一I帧数据的下一个I帧数据的生成时间之间。
一种实施方式中,所述第一编码器用于按照预设时间间隔基于所述视频流生成所述第一编码数据,所述第一编码数据包括I帧数据和P帧数据;所述第二编码器用于在接收到视频显示请求的情况下基于所述视频流生成I帧数据。这样,通过第二编码器基于视频显示请求生成I帧数据,能够避免第一编码器频繁基于视频显示请求生成I帧数据,并下发给全部用户,能够避免短时间内向全部用户集中下发I帧数据,从而能够降低由于网络拥塞导致的黑屏或卡顿的概率。
其中,该预设时间间隔可以预先设置,示例地,可以为5s,或者10s,或者30s,等等,本实施例对此不进行限定。一种实施方式中,第一编码器可以用于按照预设时间间隔基于所述视频流生成I帧数据。
另外,I帧数据可以简称为I帧,P帧数据可以简称为P帧。
应理解,在视频编码领域,基本为H264或者H265编码,在编解码中通常会涉及I帧和P帧的概念。I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码。如图2所示,一个完整的压缩视频会由多个I帧和多个P帧组成,因为P帧需要参考I帧才能解码,所以需要接收到完整的I帧,才能看到画面,后续的P帧也才能正确解码。I帧比较大,一般是P帧的3倍以上。
相关技术中,如图3所示,当在较短时间内新增多个用户时,会通过该编码器集中生成多个I帧并下发给所有的用户,导致较短时间内下发给每个用户的数据量均会较大,容易造成网络拥塞。
需要说明的是,视频码率是数据传输时单位时间传送的数据位数,一般用的单位是kbps即千位每秒。在本申请实施例中,第一编码器的视频码率一直保持不变,不会因为多个用户请求、切换观看视频流等因素,促使第一编码器短时间生成多个I帧,导致短时间内的传输流量增大,造成网络拥堵,严重丢包,进而导致用户观看的画面卡顿,从而能够实现流畅视频流观看体验。
在本申请实施例中,通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。这样,在接收到第二用户设备对第一编码器的编码数据的第一视频显示请求时,通过第二编码器向第二用户设备下发第二编码数据,能够避免由于较短时间内新增多个用户设备导致第一编码器集中生成I帧数据;且在第一编码数据满足预设条件的情况下,将第二用户设备的视频数据的来源由第二编码器切换至第一编码器,能够避免由于新增多个用户设备导致第二编码器向大量用户设备集中下发I帧数据,从而能够降低由于新增用户设备导致的短时间内向用户设备下发的数据量,能够降低由于网络拥塞导致的黑屏或卡顿的概率。
可选地,所述通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,包括:
通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据和与所述第一I帧数据对应的多个P帧数据,所述第一编码器用于按照预设时间间隔基于所述视频流生成I帧数据;
所述在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,包括:
在通过所述第一编码器生成所述第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据;
其中,接收到所述第一视频显示请求的时间,在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
一种实施方式中,可以通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据,该第一I帧数据为第一编码器编码的第N个I帧数据,N为正整数;在通过所述第一编码器生成第N+1个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,该第N+1个I帧数据为第一I帧数据的下一个I帧数据。N及N+1可以是第一编码器生成的I帧数据的编号,第N+1个I帧数据为第N个I帧数据的下一个I帧数据。
其中,第一编码器可以按照预设时间间隔基于所述视频流生成I帧数据。在接收到用户设备发送的视频显示请求的情况下,第一编码器生成I帧数据的时间间隔保持不变。例如,第一编码器可以每间隔60秒生成一个I帧,不会因新用户的请求而改变。
需要说明的是,在第一编码器生成第一I帧数据与第一编码器生成第一I帧数据的下一个I帧数据之间,接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求,由第二编码器生成I帧数据下发给第二用户设备,在第一编码器生成第一I帧数据的下一个I帧数据时,将第二用户设备的视频数据的来源由第二编码器切换至第一编码器,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
该实施方式中,在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据,从而能够在第一编码器按照预设时间间隔生成I帧数据时,将第二用户设备的视频数据的来源由第二编码器切换至第一编码器,同步第二用户设备和至少一个第一用户设备的视频数据。
可选地,所述生成第二编码数据,包括:
生成预设时长的包括第二I帧数据的第二编码数据;
所述方法还包括:
将所述预设时长的第二编码数据进行缓存处理;
在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据。
其中,该预设时长可以预先设置,示例地,可以为2s,或者5s,或者30s,等等,本实施例对此不进行限定。
一种实施方式中,在服务器接收到第二用户设备的第一视频显示请求时通过第二编码器生成一个I帧,且第一视频显示请求和第二视频显示请求的时间间隔小于预设时长,则对于第二视频显示请求,第二编码器不生成I帧。也就是,第二编码器生成I帧之间的最小间隔不小于预设时长。对于第二视频显示请求,向第三用户设备发送缓存的第二编码数据。
一种实施方式中,所述缓存的第二编码数据包括第二I帧数据及所述第二I帧数据对应的至少一个P帧数据,从而第三用户设备能够基于缓存的I帧数据和P帧数据显示视频画面。
另外,在未接收到用户设备的视频显示请求时,第二编码器可以固定间隔生成I帧,例如,可以每间隔60秒生成一个I帧。
需要说明的是,在接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔大于或等于所述预设时长,则通过所述第二编码器生成第二I帧数据的下一个I帧数据,向所述第三用户设备发送所述第二I帧数据的下一个I帧数据。
需要说明的是,对于不同的使用场景,预设时长的值可以设置的不同。例如,对视频流畅性要求较高的使用场景,预设时长的值可以设置的较小,例如设置为2s;对视频流畅性要求较低的使用场景,预设时长的值可以设置的较大,例如设置为60s。
该实施方式中,将所述预设时长的第二编码数据进行缓存处理;在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据,这样,在距离上一次第二编码器生成I帧的时间间隔较小时,将缓存的第二编码数据下发给新用户设备,能够进一步避免第二编码器集中生成并下发I帧数据,从而能够进一步降低由于网络拥塞导致的黑屏或卡顿的概率。
可选地,所述将所述预设时长的第二编码数据进行缓存处理之后,所述方法还包括:
在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理。
其中,所述第二I帧数据可以为所述第二编码器编码生成的第M个I帧数据,第二I帧数据的下一个I帧数据为所述第二编码器编码生成的第M+1个I帧数据,M为正整数。所述缓存的第二编码数据可以包括第二I帧数据及第二I帧数据对应的至少一个P帧数据,在通过所述第二编码器生成第二I帧数据的下一个I帧数据的情况下,可以清空该缓存的第二编码数据,将生成的第二I帧数据的下一个I帧数据及该第二I帧数据的下一个I帧数据对应的至少一个P帧数据进行缓存处理,以此类推,可以实现对缓存的所述第二编码数据的更新替换。所述缓存的第二编码数据的时长为所述预设时长。
需要说明的是,可以将第二编码器生成的I帧数据存入到缓存队列中,紧接着生成的P帧数据也会存入至缓存队列中,缓存队列可以缓存预设时长的数据,示例地,可以包括一个I帧和多个P帧。在缓存的数据达到预设时长后,会清空缓存队列中的所有数据,直到生成下一个I帧,重复上述存入到缓存队列中的过程。
需要说明的是,M及M+1可以是第二编码器生成的I帧数据的编号,第M个I帧数据为第M+1个I帧数据的前一个I帧数据。
在该实施方式中,在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理,从而能够在第二编码器生成I帧数据的情况下,将新生成的I帧数据替换缓存的I帧数据,实现缓存的I帧数据的不断更新。
可选地,所述向所述第三用户设备发送所述缓存的第二编码数据之后,所述方法还包括:
在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;
在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
一种实施方式中,第二I帧数据可以为所述第二编码器编码生成的第M个I帧数据,在生成所述第M个I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成第M+1个I帧数据;在生成所述第M+1个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
其中,可以在检测到当前时间距离所述第二I帧数据的生成时间大于或等于所述预设时长的情况下,通过所述第二编码器生成第二I帧数据的下一个I帧数据。在生成所述第二I帧数据的下一个I帧数据的情况下,将第二I帧数据的下一个I帧数据下发给第三用户设备,后续下发给第三用户设备的视频流由第二编码器直接生成,而不再是缓存队列中的数据。
该实施方式中,在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。这样,将第三用户设备的视频数据的来源由缓存队列切换至第二编码器,同步第二用户设备和第三用户设备的视频数据。
可选地,所述在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据,包括:
在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据;
其中,接收到所述第一视频显示请求和所述第二视频显示请求的时间,均在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
其中,在第一编码器生成第一I帧数据与第一编码器生成第一I帧数据的下一个I帧数据之间,接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求,由第二编码器生成第二I帧数据下发给第二用户设备;在第二编码器生成第二I帧数据与第二编码器生成第二I帧数据的下一个I帧数据之间,接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求,将缓存的第二I帧数据下发给第三用户设备;在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成第二I帧数据的下一个I帧数据,向所述第三用户设备和所述第二用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据;在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备、所述第三用户设备和所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据。
另外,预设时长可以小于第一编码器生成I帧数据的预设时间间隔。接收到所述第二视频显示请求的时间,在所述第二I帧数据的生成时间与所述第二I帧数据的下一个I帧数据的生成时间之间。
该实施方式中,在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据,从而能够在第一编码器按照预设时间间隔生成I帧数据时,将第二用户设备及第三用户设备的视频数据的来源由第二编码器切换至第一编码器,同步所述第二用户设备、所述第三用户设备和所述至少一个第一用户设备的视频数据。
以下通过一个具体的实施例对编码数据发送方法进行说明:
该实施例为会议场景,根据每个用户的观看场景,服务器下发不同清晰度的视频流给用户,如下图4所示,视频在用户的首屏显示,例如共享视频流,服务器下发1080P(即大窗视频)的视频流给用户;视频在用户的多窗口中其中一个窗口显示,服务器下发720P(即中窗视频)的视频流给用户;视频在用户的预览窗口显示,服务器下发480P(即小窗视频)的视频流给用户。
在该实施例中,服务器上设置有三个编码器,分别为1080P编码器、720P编码器、480P编码器。每一路视频流,上传到该服务器后,如图5所示,由每个编码器固定间隔生成I帧,例如,每60秒生成一个I帧,不会因新用户的请求改变。
在该实施例中,服务器新增加一个策略编码器。该策略编码器可以认为是图1实施例中的第二编码器。该策略编码器可以是480P编码器,该策略编码器不同于固定间隔生成I帧的编码器,策略编码器在接收到用户请求时生成一个I帧,且在两个用户请求的时间间隔小于预设时长时,对于后一个用户请求,策略编码器不生成I帧。也就是,策略编码器生成I帧之间的最小间隔不能小于预设时长。在未接收到用户请求时,策略编码器可以固定间隔生成I帧,例如,可以每间隔60秒生成一个I帧。
其中,如图6所示,策略编码器可以如下设计,策略编码器编码后的编码数据分成两路,第一路视频流没有缓存,直接下发到用户的客户端渲染展示;第二路视频流存入服务器的缓存队列中,依次缓存生成的I帧和P帧数据,在两个用户请求的时间间隔小于预设时长时,对于后一个用户请求,将缓存队列中的视频流下发给用户。
另外,如图7所示,缓存队列可以如下设计,当策略编码器生成一个I帧后,开始计时,策略编码器生成的编码数据会直接下发到多个用户,同时也会将生成的I帧数据存入到缓存队列中,紧接着生成的P帧也会存入至缓存队列中,缓存队列可以缓存预设时长的数据,示例地,可以包括一个I帧和多个P帧。在缓存的数据达到预设时长后,会清空缓存队列中的所有数据,直到生成下一个I帧,重复上述存入到缓存队列中的过程。
该实施例可以用于用户进入会议观看共享视频的场景,共享视频流使用的编码器可以为1080P编码器,该1080P编码器可以认为是图1实施例中的第一编码器。在该实施例中,用户A进入会议,进入首屏观看他人的共享屏幕。进入首屏到用户A看到画面,整个系统的运行原理如图8所示,当用户A进入首屏时,用户A使用的客户端会向服务器发起请求下发视频流的动作,当用户A的请求到达服务器后,服务器不会直接下发1080P编码器的视频流,而是会让策略编码器立刻生成编号为M的I帧,直接下发给用户A,当用户A接收到整个I帧数据后,就立刻能看到480P标清视频画面了,之后策略编码器会一直向用户A下发策略编码器生成的P帧,用户A的客户端根据之前接收到的I帧,解码P帧后,进行渲染形成视频流。当1080P编码器生成编号为N+1的I帧后,将编号为N+1的I帧下发给用户A,后续下发给用户A的视频流均由1080P编码器生成。此时,用户A观看的共享视频流会由策略编码器编码的标清视频流变为1080编码器编码的高清视频流。
在该实施例中,1080P编码器的视频码率一直保持不变,类同于1080P编码器,480P编码器及720P编码器的视频码率也一直保持不变,不会因为多个用户入会、切换观看视频流等因素,促使480P编码器、720P编码器或1080P编码器短时间生成多个I帧,导致短时间内的传输流量增大,造成网络拥堵,严重丢包,进而导致用户观看的画面卡顿。
进一步的,如图9所示,在用户A进入会议后,间隔不到预设时长,例如间隔不到2s,用户B也进入了会议,用户B进入首屏时,会向服务器发起请求共享视频流的动作,当用户B请求到达服务器后,服务器不会直接下发1080P编码器的视频流给用户B,因为若下发的第一帧是P帧,用户的客户端无法解码。服务器在检测到距离上一次策略编码器生成I帧的时间间隔小于预设时长的情况下,将策略编码器存储在缓存队列中的视频数据下发给用户B,直至检测到距离上一次策略编码器生成I帧的时间间隔等于预设时长。服务器在检测到距离上一次策略编码器生成I帧的时间间隔等于预设时长的情况下,将通过策略编码器生成一个编号为M+1的I帧,并将编号为M+1的I帧下发给用户B,后续下发给用户B的视频流由策略编码器直接生成,而不再是缓存队列中的数据。当1080P编码器生成I帧后,下发给用户B的视频流由1080P编码器生成。此时,类同于用户A,用户B观看的共享视频流会由策略编码器编码的标清视频流变为1080编码器编码的高清视频流。
该实施例能够实现会议场景中的流畅视频流观看体验。
本申请实施例提供的视频数据发送方法,执行主体可以为视频数据发送装置。本申请实施例中以视频数据发送装置执行视频数据发送的方法为例,说明本申请实施例提供的视频数据发送的装置。
参见图10,图10是本申请实施例提供的一种视频数据发送装置的结构示意图,如图10所示,所述视频数据发送装置200包括:
第一发送模块201,用于通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;
第二发送模块202,用于在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;
第三发送模块203,用于在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
可选地,所述第一发送模块具体用于:
通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据和与所述第一I帧数据对应的多个P帧数据,所述第一编码器用于按照预设时间间隔基于所述视频流生成I帧数据;
所述第三发送模块具体用于:
在通过所述第一编码器生成所述第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据;其中,接收到所述第一视频显示请求的时间,在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间;
继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
可选地,所述第二发送模块具体用于:
在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成预设时长的包括第二I帧数据的第二编码数据;
所述装置还包括:
缓存模块,用于将所述预设时长的第二编码数据进行缓存处理;
第四发送模块,用于在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据。
可选地,所述装置还包括:
替换模块,用于在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理。
可选地,所述装置还包括:
生成模块,用于在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;
第五发送模块,用于在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
可选地,所述第三发送模块具体用于:
在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据;
其中,接收到所述第一视频显示请求和所述第二视频显示请求的时间,均在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
在本申请实施例中,第一发送模块通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;第二发送模块在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;第三发送模块在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。这样,在接收到第二用户设备对第一编码器的编码数据的第一视频显示请求时,通过第二编码器向第二用户设备下发第二编码数据,能够避免由于较短时间内新增多个用户设备导致第一编码器集中生成I帧数据;且在第一编码数据满足预设条件的情况下,将第二用户设备的视频数据的来源由第二编码器切换至第一编码器,能够避免由于新增多个用户设备导致的第二编码器向大量用户设备集中下发I帧数据,从而能够降低由于新增用户设备导致的短时间内向用户设备下发的数据量,能够降低由于网络拥塞导致的黑屏或卡顿的概率。
本申请实施例中的视频数据发送装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的视频数据发送装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的视频数据发送装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图11所示,本申请实施例还提供一种电子设备300,包括处理器301和存储器302,存储器302上存储有可在所述处理器301上运行的程序或指令,该程序或指令被处理器301执行时实现上述视频数据发送方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图12为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、以及处理器410等部件。
本领域技术人员可以理解,电子设备400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图12中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器410用于:通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据;射频单元401用于:向至少一个第一用户设备发送所述第一编码数据;
处理器410还用于:在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据;射频单元401还用于:向所述第二用户设备发送所述第二编码数据;
射频单元401还用于:在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
可选地,处理器410还用于:
通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据和与所述第一I帧数据对应的多个P帧数据,所述第一编码器用于按照预设时间间隔基于所述视频流生成I帧数据;
射频单元401还用于:在通过所述第一编码器生成所述第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据;
其中,接收到所述第一视频显示请求的时间,在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
可选地,处理器410还用于:生成预设时长的包括第二I帧数据的第二编码数据;
处理器410还用于:将所述预设时长的第二编码数据进行缓存处理;
射频单元401还用于:在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据。
可选地,处理器410还用于:在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理。
可选地,处理器410还用于:在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;
射频单元401还用于:在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
可选地,射频单元401还用于:
在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据;
其中,接收到所述第一视频显示请求和所述第二视频显示请求的时间,均在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
应理解的是,本申请实施例中,输入单元404可以包括图形处理器(GraphicsProcessing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元406可包括显示面板4061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板4061。用户输入单元407包括触控面板4071以及其他输入设备4072中的至少一种。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器409可以包括易失性存储器或非易失性存储器,或者,存储器409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器409包括但不限于这些和任意其它适合类型的存储器。
处理器410可包括一个或多个处理单元;可选的,处理器410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述视频数据发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述视频数据发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述视频数据发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (14)

1.一种视频数据发送方法,其特征在于,所述方法包括:
通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;
在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;
在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
2.根据权利要求1所述的方法,其特征在于,所述通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,包括:
通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据和与所述第一I帧数据对应的多个P帧数据,所述第一编码器用于按照预设时间间隔基于所述视频流生成I帧数据;
所述在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,包括:
在通过所述第一编码器生成所述第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据;
其中,接收到所述第一视频显示请求的时间,在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述生成第二编码数据,包括:
生成预设时长的包括第二I帧数据的第二编码数据;
所述方法还包括:
将所述预设时长的第二编码数据进行缓存处理;
在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据。
4.根据权利要求3所述的方法,其特征在于,所述将所述预设时长的第二编码数据进行缓存处理之后,所述方法还包括:
在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理。
5.根据权利要求3所述的方法,其特征在于,所述向所述第三用户设备发送所述缓存的第二编码数据之后,所述方法还包括:
在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;
在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
6.根据权利要求5所述的方法,其特征在于,所述在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据,包括:
在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据;
其中,接收到所述第一视频显示请求和所述第二视频显示请求的时间,均在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
7.一种视频数据发送装置,其特征在于,所述装置包括:
第一发送模块,用于通过服务器中的第一编码器对视频流进行编码处理,生成第一编码数据,并向至少一个第一用户设备发送所述第一编码数据;
第二发送模块,用于在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成第二编码数据,并向所述第二用户设备发送所述第二编码数据;
第三发送模块,用于在所述第一编码数据满足预设条件的情况下,向所述第二用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
8.根据权利要求7所述的装置,其特征在于,所述第一发送模块具体用于:
通过服务器中的第一编码器对视频流进行编码处理,生成第一I帧数据和与所述第一I帧数据对应的多个P帧数据,所述第一编码器用于按照预设时间间隔基于所述视频流生成I帧数据;
所述第三发送模块具体用于:
在通过所述第一编码器生成所述第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备发送所述第一编码数据;其中,接收到所述第一视频显示请求的时间,在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间;
继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第二用户设备发送所述第二编码数据。
9.根据权利要求7-8中任一项所述的装置,其特征在于,所述第二发送模块具体用于:
在所述服务器接收到第二用户设备发送的与所述第一编码数据对应的第一视频显示请求的情况下,通过第二编码器对所述视频流进行编码处理,生成预设时长的包括第二I帧数据的第二编码数据;
所述装置还包括:
缓存模块,用于将所述预设时长的第二编码数据进行缓存处理;
第四发送模块,用于在所述服务器接收到第三用户设备发送的与所述第一编码数据对应的第二视频显示请求的情况下,若接收到所述第二视频显示请求的时间与所述第二I帧数据的生成时间之间的时间间隔小于所述预设时长,则向所述第三用户设备发送所述缓存的第二编码数据。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
替换模块,用于在通过所述第二编码器生成所述第二I帧数据的下一个I帧数据的情况下,基于所述第二I帧数据的下一个I帧数据对缓存的所述第二编码数据进行替换处理。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
生成模块,用于在生成所述第二I帧数据之后的间隔时长满足所述预设时长的情况下,通过所述第二编码器生成所述第二I帧数据的下一个I帧数据;
第五发送模块,用于在生成所述第二I帧数据的下一个I帧数据的情况下,向所述第三用户设备发送所述第二编码数据,并停止向所述第三用户设备发送所述缓存的第二编码数据。
12.根据权利要求11所述的装置,其特征在于,所述第三发送模块具体用于:
在通过所述第一编码器生成第一I帧数据的下一个I帧数据的情况下,向所述第二用户设备和第三用户设备发送所述第一编码数据,继续向所述至少一个第一用户设备发送所述第一编码数据,并停止向所述第三用户设备和所述第二用户设备发送所述第二编码数据;
其中,接收到所述第一视频显示请求和所述第二视频显示请求的时间,均在所述第一I帧数据的生成时间与所述第一I帧数据的下一个I帧数据的生成时间之间。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6中任一项所述的视频数据发送方法的步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-6中任一项所述的视频数据发送方法的步骤。
CN202210930148.XA 2022-08-03 2022-08-03 视频数据发送方法、装置及电子设备 Active CN115297343B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210930148.XA CN115297343B (zh) 2022-08-03 2022-08-03 视频数据发送方法、装置及电子设备
PCT/CN2023/110478 WO2024027680A1 (zh) 2022-08-03 2023-08-01 视频数据发送方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210930148.XA CN115297343B (zh) 2022-08-03 2022-08-03 视频数据发送方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN115297343A true CN115297343A (zh) 2022-11-04
CN115297343B CN115297343B (zh) 2024-04-26

Family

ID=83825826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210930148.XA Active CN115297343B (zh) 2022-08-03 2022-08-03 视频数据发送方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN115297343B (zh)
WO (1) WO2024027680A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024027680A1 (zh) * 2022-08-03 2024-02-08 维沃移动通信有限公司 视频数据发送方法、装置及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073936A1 (en) * 2002-07-17 2004-04-15 Nobukazu Kurauchi Video data transmission/reception system in which compressed image data is transmitted from a transmission-side apparatus to a reception-side apparatus
US20050190781A1 (en) * 2004-02-27 2005-09-01 Microsoft Corporation Media stream splicer
JP2009284282A (ja) * 2008-05-23 2009-12-03 Sony Corp コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム
JP2014017554A (ja) * 2012-07-05 2014-01-30 Canon Inc 画像符号化装置
JP2017130957A (ja) * 2011-07-12 2017-07-27 シャープ株式会社 送信装置、送信方法、再生装置、及び再生方法
US20180359499A1 (en) * 2017-06-12 2018-12-13 Netflix, Inc. Staggered key frame video encoding
CN109325199A (zh) * 2018-09-12 2019-02-12 深圳点猫科技有限公司 一种利用编程语言减少网页重绘次数的方法以及电子设备
EP3890329A1 (en) * 2020-03-31 2021-10-06 Nokia Solutions and Networks Oy Video encoding method and apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3951430B2 (ja) * 1998-03-30 2007-08-01 三菱電機株式会社 映像信号符号化システム
CN113630575B (zh) * 2020-05-06 2024-03-22 上海游密信息科技有限公司 多人在线视频会议图像显示的方法、系统和存储介质
CN113810718A (zh) * 2021-08-16 2021-12-17 西安万像电子科技有限公司 编解码控制方法、装置、设备及存储介质
CN115297343B (zh) * 2022-08-03 2024-04-26 维沃移动通信有限公司 视频数据发送方法、装置及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073936A1 (en) * 2002-07-17 2004-04-15 Nobukazu Kurauchi Video data transmission/reception system in which compressed image data is transmitted from a transmission-side apparatus to a reception-side apparatus
US20050190781A1 (en) * 2004-02-27 2005-09-01 Microsoft Corporation Media stream splicer
JP2009284282A (ja) * 2008-05-23 2009-12-03 Sony Corp コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム
JP2017130957A (ja) * 2011-07-12 2017-07-27 シャープ株式会社 送信装置、送信方法、再生装置、及び再生方法
JP2014017554A (ja) * 2012-07-05 2014-01-30 Canon Inc 画像符号化装置
US20180359499A1 (en) * 2017-06-12 2018-12-13 Netflix, Inc. Staggered key frame video encoding
CN109325199A (zh) * 2018-09-12 2019-02-12 深圳点猫科技有限公司 一种利用编程语言减少网页重绘次数的方法以及电子设备
EP3890329A1 (en) * 2020-03-31 2021-10-06 Nokia Solutions and Networks Oy Video encoding method and apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024027680A1 (zh) * 2022-08-03 2024-02-08 维沃移动通信有限公司 视频数据发送方法、装置及电子设备

Also Published As

Publication number Publication date
CN115297343B (zh) 2024-04-26
WO2024027680A1 (zh) 2024-02-08

Similar Documents

Publication Publication Date Title
RU2522984C2 (ru) Способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
CN110582012B (zh) 视频切换方法、视频处理方法、装置及存储介质
JP2015521825A (ja) 仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法
US9306987B2 (en) Content message for video conferencing
WO2024027680A1 (zh) 视频数据发送方法、装置及电子设备
US10326815B2 (en) Techniques for scalably sharing video through a streaming server
US9742749B1 (en) Live stream encryption
US9226003B2 (en) Method for transmitting video signals from an application on a server over an IP network to a client device
WO2019073802A1 (ja) 送信装置および送信方法、並びにプログラム
CN113676404A (zh) 数据传输方法、装置、设备、存储介质及程序
KR20220031120A (ko) 비디오 플레이백에서 예측-기반 드롭된 프레임 처리 로직
US9215396B2 (en) Faster access to television channels
US7403566B2 (en) System, computer program product, and method for transmitting compressed screen images from one computer to another or many computers
US20100132007A1 (en) Accelerating channel change time with external picture property markings
US20170078609A1 (en) Image processing method and apparatus based on screen spliting
CN114245196A (zh) 一种录屏推流方法、装置、电子设备及存储介质
WO2013071460A1 (en) Reducing amount op data in video encoding
US10735773B2 (en) Video coding techniques for high quality coding of low motion content
JP2014075737A (ja) 画像処理装置、画像処理方法及び画像処理システム
US9467691B2 (en) Video system for displaying image data, method and computer program
JP2011192229A (ja) サーバ装置および情報処理方法
CN112449239B (zh) 视频播放方法、装置及电子设备
CN112470481B (zh) 用于对基于图块的沉浸式视频进行编码的编码器和方法
US9451288B2 (en) Inferred key frames for fast initiation of video coding sessions

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