CN106851340B - 视频推流方法及装置 - Google Patents
视频推流方法及装置 Download PDFInfo
- Publication number
- CN106851340B CN106851340B CN201710074361.4A CN201710074361A CN106851340B CN 106851340 B CN106851340 B CN 106851340B CN 201710074361 A CN201710074361 A CN 201710074361A CN 106851340 B CN106851340 B CN 106851340B
- Authority
- CN
- China
- Prior art keywords
- video
- pushing
- moment
- stream pushing
- time
- 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
Links
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/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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/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/26291—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 for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供一种视频推流方法及装置,该方法包括:获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率;根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;若所述推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;若所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;若所述推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。用于提高视频推流的稳定性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种视频推流方法及装置。
背景技术
用户可以通过电视等设备观看网络直播和网络点播,由于电视等设备的缓存较小,使得电视无法缓存太多的视频,同时,为了保证用户能够观看流畅的视频,在视频服务器向客户端推流的速度需要在预设范围内。
在现有技术中,视频服务器通常通过如下可行的实现方式向客户端推流:视频服务器以***调度时长(通常大于或等于1秒)为单位向客户端推流,在每个***调度时长内需要向客户端发送预设大小的视频。在一个***调度时长内,视频服务器确定需要在该***调度时长内推送的视频,并以最快的速度向客户端推送该视频,若视频服务器当前较为空闲,则视频服务器会在该***调度时长未结束时就将需要推送的视频推送完成,并在该***调度时长剩余的时间内暂停推流;若视频服务器当前较为忙绿,则视频服务器在该***调度时长结束时,可能还未将视频推送完成,则视频服务器根据该***调度时长内未发送完成的视频,确定新的调度时长,新的调度时长小于***调度时长,但该新的调度时长内仍需发送预设大小的视频,在视频推送滞后累积的情况下,视频服务器则需要在短时段内发送大量视频,导致视频服务器出现较大抖动。
由上可知,在视频服务器推流的过程中,在***调度时长的前一段时段内,视频服务器的码率很高,在***调度时长的后一段时段内,视频服务器的码率很低,使得视频服务器的码率波动较大,进一步的,在视频推送滞后累积的情况下,视频服务器可能出现较大抖动,导致视频服务器进行视频推平的稳定性较差。
发明内容
本发明实施例提供一种视频推流方法及装置,提高了视频推流的稳定性。
第一方面,本发明实施例提供一种视频推流方法,包括:
获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率;
根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;
若所述推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
在一种可能的实施方式中,获取所述目标视频的平均推流码率,包括:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长,包括:
根据如下公式一确定所述推流滞后时长Tdelay:
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述b为所述平均推流码率。
在另一种可能的实施方式中,推送所述当前时刻对应的视频包,包括:
在所述目标视频中确定未推送视频;
将所述未推送视频中、播放时刻最早的预设大小的视频确定为所述当前时刻对应的视频包,并向客户端发送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述预设时长大于0且小于10毫秒;和/或,所述第二阈值大于30毫秒且小于2秒。
第二方面,本发明实施例提供一种视频推流装置,包括获取模块、确定模块、暂停模块、推送模块及更新模块,其中,
所述获取模块用于,获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率;
所述确定模块用于,根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;
所述暂停模块用于,在所述推流滞后时长小于第一阈值时,在预设时长内暂停推流,所述第一阈值小于或等于零;
所述推送模块用于,在所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值时,向客户端推送所述当前时刻对应的视频包;
所述更新模块用于,在所述推流滞后时长大于第二阈值时,将所述起始推流时刻更新为所述当前时刻;相应的,所述推送模块还用于,向客户端推送所述当前时刻对应的视频包。
在一种可能的实施方式中,所述获取模块具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,所述确定模块具体用于:
根据如下公式一确定所述推流滞后时长Tdelay:
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述b为所述平均推流码率。
在另一种可能的实施方式中,所述推送模块具体用于:
在所述目标视频中确定未推送视频;
将所述未推送视频中、播放时刻最早的预设大小的视频确定为所述当前时刻对应的视频包,并向客户端发送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述预设时长大于0且小于10毫秒;和/或,所述第二阈值大于30毫秒且小于2秒。
本发明实施例提供的视频推流方法及装置,在视频服务器向客户端推送目标视频的过程中,在当前时刻,视频服务器根据目标视频的起始推流时刻、当前时刻、起始推流时刻与当前时刻之间推送的第一视频量、及目标视频的平均推流码率,确定推流滞后时长,若推流滞后时长小于第一阈值,则说明在起始推流时刻与当前时刻之间的推流码率过快,则在预设时长内暂停推流,若推流滞后时长大于或等于第一阈值且小于或等于第二阈值,则说明在起始推流时刻与当前时刻之间的推流码率偏慢,但在可接收范围内,则推送当前时刻对应的视频包,若推流滞后时长大于第二阈值,则说明在起始推流时刻与当前时刻之间的推流码率过慢,且超出了可接收范围,则将起始推流时刻更新为当前时刻,以使视频服务器从当前时刻起重新对推流码率进行监控,以避免视频服务器出现过大抖动。在上述过程中,不但可以保证向客户端推流的码率在正常范围内,还可以保证视频服务器以稳定的码率向客户端推流,进而提高视频服务器工作的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视频推流方法的应用场景示意图;
图2为本发明实施例提供的视频推流方法的流程示意图;
图3为本发明实施例提供的推流过程示意图;
图4为本发明实施例提供的视频推流装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的视频推流方法的应用场景示意图。请参见图1,包括客户端101和视频服务器102。在本申请中,客户端101通常为缓存较为小的电视等终端设备。在实际应用过程中,在客户端101向视频服务器102发送视频请求之后,视频服务器102则持续向客户端102进行推流。
在本申请中,视频服务器102通常以视频包的形式向客户端101进行推流,在视频服务器102每向客户端101发送一个视频包之前,视频服务器102均判断从开始推流到当前时刻,推流的速度是否满足预设条件,在推流速度过大时,则在预设时长内暂停推流,若推流速度过小时,则立刻发送视频包,这样,视频服务器102通过动态调整向客户端101发送数据包的时刻,不但可以保证向客户端推流的速度在正常范围内,还可以保证视频服务器以稳定的码率向客户端推流,进而提高视频服务器工作的稳定性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容在不同的实施例中不再进行赘述。
图2为本发明实施例提供的视频推流方法的流程示意图。请参见图2,该方法可以包括:
S201、获取目标视频的起始推流时刻、起始推流时刻与当前时刻之间推送的第一视频量、及目标视频的平均推流码率。
本发明实施例的执行主体可以为视频推流装置,该视频推流装置可以设置在视频服务器中。可选的,该视频推流装置可以通过软件和/或硬件实现。
在本发明实施例中,在视频服务器向客户端推送目标视频的过程中,视频推流装置以视频包为单位进行推流,例如,当目标视频为TS格式时,视频包的大小为1316字节。视频服务器每次向客户端发送视频包时,视频服务器均可以执行图2实施例所示的方法以实现向客户端发送视频包。
在初始时,目标视频的起始推流时刻为视频服务器首次向客户端发送视频包的时刻,例如,假设视频服务器在3点向客户端发送目标视频的第一个视频包,则目标视频的起始推流时刻为3点。在实际应用过程中,当视频服务器的推流滞后时长过大时,目标视频的起始推流时刻可能会更新,起始推流时刻的更新具体在S206中进行详细说明。可选的,视频服务器可以在预设文件中存储目标视频的起始推流时刻,并根据推流的实际情况对起始推流时刻进行更新维护,这样,当视频服务器需要获取起始推流时刻时,直接在预设文件中获取即可,进而提高获取目标视频的起始推流时刻的效率。
第一视频量是指起始推流时刻与当前时刻之间视频服务器向客户端发送的视频量。可选的,视频服务器可以记录在起始推流时刻向客户端发送的视频包在视频文件的位置P1、及视频服务器最近一次向客户端发送的视频包在视频文件的位置P2,并根据位置P1和P2,确定第一视频量的大小。
平均推流码率与目标视频的播放速率一致,可选的,可以通过如下可行的实现方式确定目标视频的平均推流码率:获取目标视频的文件大小和目标视频的播放时长,并根据目标视频的文件大小和目标视频的播放时长,确定目标视频的平均推流码率,可以将目标视频的文件大小与视频播放时长的比值确定为平均推流码率。需要说明的是,由于目标视频的平均推流码率为固定值,因此,视频服务器可以只计算一次平均推流码率,并缓存该平均推流码率,当视频服务器需要使用该平均推流码率时,直接在缓存中获取即可。
S202、根据起始推流时刻、当前时刻、第一视频量、及平均推流码率,确定推流滞后时长。
可选的,可以根据如下公式一确定推流滞后时长Tdelay:
其中,Tnow为当前时刻,Tbegin为起始推流时刻,n为第一视频量,b为平均推流码率。
需要说明的是,在上述公式一中,若第一视频量n的单位和平均推流码率b的单位不一致时,需要先统一第一视频量n的平均推流码率b的单位。例如,若第一视频量n的单位为字节,平均推流码率b的单位为bit/s,则需要先将第一视频量n的单位换成比特。
若推流滞后时长等于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的速度等于平均推流码率。
若推流滞后时长大于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率小于平均推流码率。
若推流滞后时长小于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率大于平均推流码率。
S203、判断推流滞后时长是否小于第一预设阈值。
若是,则执行S204。若否,则执行S205。
其中,第一阈值小于或等于零,可选的,第一阈值可以与S204中暂停推流的预设时长相关,若预设时长为t,则第一阈值可以为-t。
S204、在预设时长内暂停推流,第一阈值小于或等于零。
在本发明实施例中,预设时长通常较小,可选的,预设时长可以大于0且小于10毫秒,例如,预设时长可以为4毫秒。需要说明的是,在实际应用过程中,可以根据实际需要设置该预设时长,本发明实施例对此不作具体限定。
在推流滞后时长小于第一阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过快,为了避免在客户端缓存的视频数据过大,则在预设时长内暂停推流。
在S204之后,执行S201。
S205、判断推流滞后时长是否大于第二预设阈值。
第二阈值为需要修正起始推流时刻的最大门限值,可选的,第二阈值可以大于30毫秒且小于2秒。当然,在实际应用过程中,可以根据实际需要设置该第二阈值,本发明实施例对此不做具体限定。
若是,则执行S206。若否,则执行S207。
S206、将起始推流时刻更新为当前时刻,并向客户端推送当前时刻对应的视频包。
在推流滞后时长大于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过慢,且该慢的程度超出了用户可接收的范围,无法通过码率补偿将推流恢复正常。为了避免视频服务器连续向客户端发送视频包而出现抖动(视频服务器在短时段内的码率突然过高),则视频服务器将起始推流时刻更新为当前时刻,这样,视频服务器可以从当前时刻起,重新对推流码率进行监控,避免了视频服务器出现过大抖动。
在S206之后,执行S208。
S207、向客户端推送当前时刻对应的视频包。
在推流滞后时长大于或等于第一阈值且小于或等于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率偏慢,但是偏慢的程度在用户可接受范围内,可以通过码率补偿将推流恢复正常。为了进行码率补偿,则视频服务器立刻在目标视频中确定当前时刻对应的视频包,并向客户端发送当前时刻对应的视频包。
可选的,视频服务器可以在目标视频中确定未推送视频,并将未推送视频中、播放时刻最早的预设大小的视频确定为当前时刻对应的视频包。可选的,当目标视频的格式为TS视频时,预设大小可以为1316字节。需要说明的是,若未推送视频的大小小于预设大小,则将为推送视频对应的视频包确定为当前时刻对应的视频包。
在S207之后,执行S208。
S208、判断目标视频是否推送完成。
若是,则执行S209。
若否,则执行S201。
S209、结束。
本发明实施例提供的视频推流方法,在视频服务器向客户端推送目标视频的过程中,在当前时刻,视频服务器根据目标视频的起始推流时刻、当前时刻、起始推流时刻与当前时刻之间推送的第一视频量、及目标视频的平均推流码率,确定推流滞后时长,若推流滞后时长小于第一阈值,则说明在起始推流时刻与当前时刻之间的推流码率过快,则在预设时长内暂停推流,若推流滞后时长大于或等于第一阈值且小于或等于第二阈值,则说明在起始推流时刻与当前时刻之间的推流码率偏慢,但在可接收范围内,则推送当前时刻对应的视频包,若推流滞后时长大于第二阈值,则说明在起始推流时刻与当前时刻之间的推流码率过慢,且超出了可接收范围,则将起始推流时刻更新为当前时刻,以使视频服务器从当前时刻起重新对推流码率进行监控,以避免视频服务器出现过大抖动。在上述过程中,不但可以保证向客户端推流的码率在正常范围内,还可以保证视频服务器以稳定的码率向客户端推流,进而提高视频服务器工作的稳定性。
下面,结合图3,通过具体示例,对图2实施例所示的方法进行详细说明。
图3为本发明实施例提供的推流过程示意图。请参见图3,假设目标视频为TS格式,则视频服务器发送的每一个视频包的大小可以为1316字节,假设目标视频可以被划分为M个视频包,分别记为视频包1-视频包M。其中,第一个视频包至第M-1个视频包的大小均为1316字节,第M个视频包的大小为940字节。在推流时刻坐标轴上包括多个推流时段(例如t1-t2、t2-t3、t4-t5、t5-t6等)和暂停时段(例如t3-t4),在每个推流时段,视频服务器向客户端推送一个视频包,其中,当视频服务器的忙碌状态不同时,视频服务器发送视频包1和视频包2所用的时长可能不同,例如t1-t2之间的时长、与t2-t3之间的时长、及t4-t5之间的时长等可能不同。
在t0-t1时段内,视频服务器向客户端发送视频包1。
在t1时刻,视频服务器根据起始推流时刻t0、当前时刻t1、第一视频量(视频包1的大小)、平均推流码率b,确定推流滞后时长t-delay1。
假设视频服务器判断推流滞后时长t-delay1在第一阈值和第二阈值之间,则在t1-t2时段内,视频服务器向客户端发送视频包2。
在t2时刻,视频服务器根据起始推流时刻t0、当前时刻t2、第一视频量(视频包1-视频包2的大小)、平均推流码率b,确定推流滞后时长t-delay2。
假设视频服务器判断推流滞后时长t-delay2在第一阈值和第二阈值之间,则在t2-t3时段内,视频服务器向客户端发送视频包3。
在t3时刻,视频服务器根据起始推流时刻t0、当前时刻t3、第一视频量(视频包1-视频包3的大小)、平均推流码率b,确定推流滞后时长t-delay3。
假设视频服务器判断推流滞后时长t-delay3小于第一阈值,则在t3-t4时段内,视频服务器暂停向客户端推送视频。
假设在t4、t5、t6时刻,视频服务器确定得到的推流滞后时长均在第一阈值和第二阈值之间,则在相应的时段内向客户端推送相应的视频包。
在t7时刻,视频服务器根据起始推流时刻t0、当前时刻t7、第一视频量(视频包1-视频包6的大小)、平均推流码率b,确定推流滞后时长t-delay7。
假设视频服务器判断推流滞后时长t-delay7大于第二阈值,则在t7时刻时,将起始推流时刻更新为t7,并在t7-t8时段内,视频服务器向客户端发送视频包7。
重复上述过程,直至视频服务器向客户端推送完目标视频。
图4为本发明实施例提供的视频推流装置的结构示意图。该视频推流装置可以设置在视频服务器中。请参见图4,该视频推流装置包括获取模块11、确定模块12、暂停模块13、推送模块14及更新模块15,其中,
所述获取模块11用于,获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率;
所述确定模块12用于,根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;
所述暂停模块13用于,在所述推流滞后时长小于第一阈值时,在预设时长内暂停推流,所述第一阈值小于或等于零;
所述推送模块14用于,在所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值时,向客户端推送所述当前时刻对应的视频包;
所述更新模块15用于,在所述推流滞后时长大于第二阈值时,将所述起始推流时刻更新为所述当前时刻;相应的,所述推送模块14还用于,向客户端推送所述当前时刻对应的视频包。
本发明实施例提供的视频推流装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述获取模块具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
在另一种可能的实施方式中,所述确定模块具体用于:
根据如下公式一确定所述推流滞后时长Tdelay:
其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述b为所述平均推流码率。
在另一种可能的实施方式中,所述推送模块具体用于:
在所述目标视频中确定未推送视频;
将所述未推送视频中、播放时刻最早的预设大小的视频确定为所述当前时刻对应的视频包,并向客户端发送所述当前时刻对应的视频包。
在另一种可能的实施方式中,所述预设时长大于0且小于10毫秒;和/或,所述第二阈值大于30毫秒且小于2秒。
本发明实施例提供的视频推流装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。
Claims (10)
1.一种视频推流方法,其特征在于,包括:
获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率,在初始时,所述目标视频的起始推流时刻为视频服务器首次向客户端发送视频包的时刻;
根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;
若所述推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;
若所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;
若所述推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。
2.根据权利要求1所述的方法,其特征在于,获取所述目标视频的平均推流码率,包括:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
4.根据权利要求1或2所述的方法,其特征在于,推送所述当前时刻对应的视频包,包括:
在所述目标视频中确定未推送视频;
将所述未推送视频中、播放时刻最早的预设大小的视频确定为所述当前时刻对应的视频包,并向客户端发送所述当前时刻对应的视频包。
5.根据权利要求1或2所述的方法,其特征在于,
所述预设时长大于0且小于10毫秒;和/或,所述第二阈值大于30毫秒且小于2秒。
6.一种视频推流装置,其特征在于,包括获取模块、确定模块、暂停模块、推送模块及更新模块,其中,
所述获取模块用于,获取目标视频的起始推流时刻、所述起始推流时刻与当前时刻之间推送的第一视频量、及所述目标视频的平均推流码率,在初始时,所述目标视频的起始推流时刻为视频服务器首次向客户端发送视频包的时刻;
所述确定模块用于,根据所述起始推流时刻、所述当前时刻、所述第一视频量、及所述平均推流码率,确定推流滞后时长;
所述暂停模块用于,在所述推流滞后时长小于第一阈值时,在预设时长内暂停推流,所述第一阈值小于或等于零;
所述推送模块用于,在所述推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值时,向客户端推送所述当前时刻对应的视频包;
所述更新模块用于,在所述推流滞后时长大于第二阈值时,将所述起始推流时刻更新为所述当前时刻;相应的,所述推送模块还用于,向客户端推送所述当前时刻对应的视频包。
7.根据权利要求6所述的装置,其特征在于,所述获取模块具体用于:
获取所述目标视频的文件大小和所述目标视频的播放时长;
根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。
9.根据权利要求6或7所述的装置,其特征在于,所述推送模块具体用于:
在所述目标视频中确定未推送视频;
将所述未推送视频中、播放时刻最早的预设大小的视频确定为所述当前时刻对应的视频包,并向客户端发送所述当前时刻对应的视频包。
10.根据权利要求6或7所述的装置,其特征在于,
所述预设时长大于0且小于10毫秒;和/或,所述第二阈值大于30毫秒且小于2秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710074361.4A CN106851340B (zh) | 2017-02-10 | 2017-02-10 | 视频推流方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710074361.4A CN106851340B (zh) | 2017-02-10 | 2017-02-10 | 视频推流方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106851340A CN106851340A (zh) | 2017-06-13 |
CN106851340B true CN106851340B (zh) | 2020-05-05 |
Family
ID=59127372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710074361.4A Active CN106851340B (zh) | 2017-02-10 | 2017-02-10 | 视频推流方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106851340B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024446A (zh) * | 2012-12-31 | 2013-04-03 | 传聚互动(北京)科技有限公司 | 网络视频的加载缓冲方法和*** |
CN103546540A (zh) * | 2013-09-26 | 2014-01-29 | 传线网络科技(上海)有限公司 | 在cdn网络上实现缓存数据控制的方法及*** |
CN105915967A (zh) * | 2016-05-09 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种纠正视频延时的方法和*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120183276A1 (en) * | 2011-01-19 | 2012-07-19 | Rovi Technologies Corporation | Method and Apparatus for Transmission of Data or Flags Indicative of Actual Program Recording Times or Durations |
CN104079955B (zh) * | 2013-03-26 | 2017-12-15 | 华为技术有限公司 | 越顶ott直播的方法、装置及*** |
CN104244033B (zh) * | 2014-09-03 | 2017-12-08 | 乐视致新电子科技(天津)有限公司 | 视频播放方法和装置、智能终端 |
-
2017
- 2017-02-10 CN CN201710074361.4A patent/CN106851340B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024446A (zh) * | 2012-12-31 | 2013-04-03 | 传聚互动(北京)科技有限公司 | 网络视频的加载缓冲方法和*** |
CN103546540A (zh) * | 2013-09-26 | 2014-01-29 | 传线网络科技(上海)有限公司 | 在cdn网络上实现缓存数据控制的方法及*** |
CN105915967A (zh) * | 2016-05-09 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种纠正视频延时的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN106851340A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111135569B (zh) | 云游戏处理方法、装置、存储介质与电子设备 | |
US11838599B1 (en) | Media streaming with latency minimization | |
CN111586479B (zh) | 一种由客户端设备执行的机器实现的方法以及可读介质 | |
CN106686438B (zh) | 一种跨设备的音频图像同步播放的方法、装置及*** | |
KR101500892B1 (ko) | 적응 스트리밍을 위한 가변 비트 비디오 스트림들 | |
US10645447B2 (en) | Fast channel change method and server, and IPTV system | |
KR101513119B1 (ko) | 적응적 스트리밍을 위한 가변 비트 비디오 스트림 | |
US9621613B1 (en) | Bitrate adaptation transitioning using key frames | |
WO2019062050A1 (zh) | 直播管控方法、装置及电子设备 | |
CA2758763C (en) | Method and device for fast pushing unicast stream in fast channel change | |
CN110913245A (zh) | 一种控制视频转码码率的方法和装置 | |
US20120281965A1 (en) | L-cut stream startup | |
JP2015520964A (ja) | Http疑似ストリーミング用の一体型コントローラベースのペーシング | |
CN106851337B (zh) | 视频缓冲控制方法及装置 | |
CN113242436B (zh) | 直播数据的处理方法、装置及电子设备 | |
CN111886875A (zh) | 及时媒体传送的拥塞响应 | |
CN105578201A (zh) | 一种实现hls直播码率个数动态调整的***及方法 | |
WO2013185547A1 (zh) | 一种缓存服务器的服务方法、缓存服务器及*** | |
CN104581340A (zh) | 客户端、流媒体数据接收方法和流媒体数据传输*** | |
KR101795537B1 (ko) | 네트워크 환경 적응형 클라우드 스트리밍 서비스 제공시스템 및 그 방법 | |
CN106851340B (zh) | 视频推流方法及装置 | |
KR20200018493A (ko) | 데이터를 스트리밍하기 위한 방법들 및 장치들 | |
JP6099715B2 (ja) | ストリーミングメディア再生装置、ストリーミングメディア再生方法、及びプログラム | |
TWI523511B (zh) | Variable bit rate video panning method | |
WO2016203870A1 (ja) | 送信装置、送信方法、及び通信システム |
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 |