CN109151492B - 一种直播视频的快速启动方法及装置 - Google Patents
一种直播视频的快速启动方法及装置 Download PDFInfo
- Publication number
- CN109151492B CN109151492B CN201811150049.XA CN201811150049A CN109151492B CN 109151492 B CN109151492 B CN 109151492B CN 201811150049 A CN201811150049 A CN 201811150049A CN 109151492 B CN109151492 B CN 109151492B
- Authority
- CN
- China
- Prior art keywords
- index position
- quick start
- live video
- video
- key 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical 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
- 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/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25858—Management of client data involving client software characteristics, e.g. OS identifier
-
- 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/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4383—Accessing a communication channel
- H04N21/4384—Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
-
- 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/43—Processing 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/439—Processing of audio elementary streams
-
- 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/43—Processing 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/44—Processing 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
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- 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)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种直播视频的快速启动方法及装置,其中,所述方法包括:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。本申请提供的技术方案,能够有效提高不同播放器的首屏显示速度。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种直播视频的快速启动方法及装置。
背景技术
随着视频直播业务的兴起,为了提供稳定快速的视频直播体验,大部分的视频直播平台都选择通过CDN(Content Delivery Network,内容分发网络)进行直播加速。CDN可以接收视频直播平台发来的直播视频的数据流,然后通过与客户端较近的边缘节点将直播视频的数据流提供给客户端,从而实现稳定快速的视频直播体验。
目前,CDN中往往会预先配置视频的快速启动策略,在向客户端下发直播视频的数据时,可以根据该快速启动策略,提高客户端中首屏的显示速度。然而,随着客户端中播放器的种类越来越多,CDN中预先配置的快速启动策略很可能无法适用每种播放器,从而无法有效地提高首屏的显示速度,甚至会引起播放器的卡顿。
发明内容
本申请的目的在于提供一种直播视频的快速启动方法及装置,能够有效提高不同播放器的首屏显示速度。
为实现上述目的,本申请一方面提供一种直播视频的快速启动方法,所述方法包括:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动方法,所述方法包括:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置;将所述目标直播视频中从所述快速启动索引位置处开始的音频数据下发给所述当前播放器,并将所述目标直播视频中从所述快速启动索引位置至下一个关键帧之间的视频数据丢弃。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动方法,所述方法包括:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器,并按照音频帧和视频帧的下发顺序,分别为所述音视频数据中的音频帧和视频帧进行递增编号。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动方法,所述方法包括:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;在所述快速启动策略执行时,读取目标直播视频中当前视频帧的时间戳以及所述当前播放器对应的快速启动配置时间;基于所述当前视频帧的时间戳和所述快速启动配置时间,在所述目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器。
为实现上述目的,本申请另一方面还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
由上可见,本申请提供的技术方案,针对当前常用的一些播放器,可以制定不同的快速启动策略,这样,服务器在接收到播放器发来的请求后,可以识别出该播放器的类型,并调用对应的快速启动策略来向播放器下发直播视频的数据。具体地,在一个实施方式中,可以预先读取当前系统时间和播放器的快速启动配置时间。然后,可以根据该当前系统时间和快速启动配置时间,确定出快速启动索引位置。针对普通的FLASH播放器,可以从快速启动索引位置向前查找到第一个关键帧,然后将第一个关键帧作为关键帧索引位置。接着,可以将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。这样处理的目的在于,FLASH播放器可以通过较快的速度将快速启动索引位置至关键帧索引位置之间的数据播完,既能够提高首屏时间又能够提升直播的实时性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中的系统架构示意图;
图2是本发明一个实施方式中直播视频的快速启动方法的流程图;
图3是本发明一个实施方式中音视频数据下发的时序示意图;
图4是本发明一个实施方式中直播视频的快速启动装置的结构示意图;
图5是本发明另一个实施方式中直播视频的快速启动方法的流程图;
图6是本发明另一个实施方式中音视频数据下发的时序示意图;
图7是本发明另一个实施方式中直播视频的快速启动方法的流程图;
图8是本发明另一个实施方式中音视频数据下发的时序示意图;
图9是本发明另一个实施方式中音视频数据下发的时序示意图;
图10是本发明另一个实施方式中直播视频的快速启动方法的流程图;
图11是本发明另一个实施方式中音视频数据下发的时序示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种直播视频的快速启动方法,所述方法可以应用于CDN的服务器中。请参阅图1,所述服务器可以与视频直播平台的业务服务器相连,从而从该业务服务器处获取并缓存直播视频的视频流数据。此外,该服务器还可以与用户的播放器进行通信,从而接收播放器发来的视频加载请求,并可以向播放器反馈对应的直播视频的数据。
请参阅图2,本申请提供给的直播视频的快速启动方法,可以包括以下步骤。
S11:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略。
在本实施方式中,为了针对不同的播放器都能够提高首屏时间,可以预先在服务器中配置多个快速启动策略,这些快速启动策略可以与不同的播放器相关联。这样,在接收到当前播放器发来的视频加载请求后,可以从该视频加载请求中识别出当前播放器的类型。
在本实施方式中,播放器的类型与对应的快速启动策略可以通过key-value(键值对)的数据结构存储于服务器中。其中,用于表征播放器类型的标识可以作为key,对应的快速启动策略可以作为value。这样,在识别出当前播放器的类型之后,可以将当前播放器的类型作为key,从服务器中查询到相匹配的快速启动策略,并读取该快速启动策略。
S13:在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间。
在本实施方式中,服务器可以执行与当前播放器的类型相适配的快速启动策略,在该策略执行时,首先可以读取服务器的当前系统时间,以及与当前播放器预先约定的快速启动配置时间。其中,所述当前系统时间例如可以是GMT(Greenwich Mean Time,格林威治时间)。所述快速启动配置时间则可以是一段时长。例如,所述快速启动配置时间可以是1秒钟。
S15:基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置。
在本实施方式中,在读取了所述当前系统时间和快速启动配置时间后,可以在当前播放器请求获取的目标直播视频中确定快速启动索引位置。具体地,可以计算所述当前系统时间与所述快速启动配置时间之间的时间差,并将所述时间差在所述目标直播视频中对应的位置作为所述快速启动索引位置。例如,所述当前系统时间为21点18分15秒,所述快速启动配置时间为1秒,那么计算出的时间差为21点18分14秒,该时间差便可以作为快速启动索引位置。
在本实施方式中,如果向播放器发送的视频数据为非关键帧(非I帧)数据,那么播放器在播放非关键帧数据时会产生花屏。因此,首先需要向播放器发送关键帧(I帧)数据。具体地,在该快速启动索引位置的基础上,可以在所述目标直播视频中确定出表征关键帧的关键帧索引位置。
请参阅图3,可以在目标直播视频中从所述快速启动索引位置开始,沿着与视频播放顺序相反的方向查询到第一个关键帧,并将查询得到的所述第一个关键帧对应的位置作为所述关键帧索引位置。图3中箭头所指的方向便是目标直播视频的正常播放顺序。
S17:将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。
请参阅图3,在本实施方式中,在确定出该关键帧索引位置之后,便可以将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。同时,可以将从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的视频数据中各个视频帧的时间戳均设置为0。这样处理的目的在于,FLASH播放器接收到时间戳为0的视频帧时,会不进行解码,这样,对于关键帧索引位置至快速启动索引位置之间的视频帧,FLASH播放器能够快速播完。从所述快速启动索引位置开始,服务器可以按照视频帧的下发顺序,对所述目标直播视频的视频数据中各个视频帧的时间戳进行递增编号,并且从所述快速启动索引位置开始,服务器可以向所述当前播放器下发所述目标直播视频的音频数据。也就是说,从所述快速启动索引位置开始,服务器可以向FLASH播放器下发正常的音视频数据。这样,FLASH播放器能够具备一定的时间来缓存目标直播视频的数据量,又可以快速将关键帧索引位置到快速启动索引位置之间的视频帧播完,在既保证提高首屏时间的同时,又能够保持直播的实时性。
请参阅图4,本申请还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的方法。
请参阅图5,本申请还提供一种直播视频的快速启动方法,该方法可以针对根据音频帧来同步解码器信息的播放器。具体地,如图5所示,该方法可以包括以下步骤。
S21:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略。
S23:在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间。
S25:基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置。
S27:将所述目标直播视频中从所述快速启动索引位置处开始的音频数据下发给所述当前播放器,并将所述目标直播视频中从所述快速启动索引位置至下一个关键帧之间的视频数据丢弃。
在本实施方式中,在识别出当前播放器的类型为根据音频帧来同步解码器信息的播放器时,可以调用对应的快速启动策略。在该快速启动策略执行时,可以按照前述实施方式中描述的方式,读取当前系统时间和与当前播放器约定的快速启动配置时间。然后,可以按照相同的方式,确定出快速启动索引位置。
在本实施方式中,由于该类播放器是基于音频帧来同步解码器信息的,因此,可以按照如图6所示的方式,将所述目标直播视频中从所述快速启动索引位置处开始的音频数据下发给所述当前播放器,并将所述目标直播视频中从所述快速启动索引位置至下一个关键帧之间的视频数据丢弃。其中,所述下一个关键帧是指,从所述快速启动索引位置开始,沿着视频播放顺序搜索到的第一个关键帧。这样处理的目的在于,当前播放器在接收到音频数据后,便可以基于音频帧开始同步解码器信息,从而可以提高后续的解码效率。由于在快速启动索引位置处的视频帧可能是非关键帧,如果将非关键帧下发给播放器,会导致播放器花屏。因此,可以将快速启动索引位置开始,直到下一个关键帧之间的全部视频帧都丢弃,然后从所述下一个关键帧开始,正常向所述当前播放器下发所述目标直播视频的视频数据,从而保证播放器最先接收到的是关键帧数据,从而避免播放器出现花屏现象。
本申请还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的针对根据音频帧来同步解码器信息的播放器的快速启动方法。
请参阅图7,本申请还提供一种直播视频的快速启动方法,该方法可以针对保持音频帧和视频帧同步的播放器。如图7所示,所述方法可以包括以下步骤。
S31:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略。
S33:在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间。
S35:基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置。
S37:将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器,并按照音频帧和视频帧的下发顺序,分别为所述音视频数据中的音频帧和视频帧进行递增编号。
在本实施方式中,在识别出当前播放器的类型为保持音频帧和视频帧同步的播放器时,可以调用对应的快速启动策略。在该快速启动策略执行时,可以按照前述实施方式中描述的方式,读取当前系统时间和与当前播放器约定的快速启动配置时间。然后,可以按照相同的方式,确定出快速启动索引位置。
在一个实施方式中,这类保持音频帧和视频帧同步的播放器,如果对实时性要求不太高,但要求较大的缓冲数据量,并且对于开始的音视频数据的同步要求较高的话,可以如图8所示,在目标直播视频中从所述快速启动索引位置开始,沿着与视频播放顺序相反的方向查询第一个关键帧,并将查询得到的所述第一个关键帧对应的位置作为所述关键帧索引位置。然后,为了保持音频帧和视频帧同步,可以将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器,并按照音频帧和视频帧的下发顺序,分别为所述音视频数据中的音频帧和视频帧进行递增编号。
图8所示的这种关键帧索引位置的确定方式,能够保证播放器有足够的缓冲时间且能保证音视频的同步,但缺陷在于直播视频的延迟会较大。为了解决这一问题,在一个实施方式中,可以按照图9所示的方式,在所述快速启动索引位置和所述当前系统时间对应的位置之间,查询与所述快速启动索引位置距离最近的关键帧,并将查询得到的所述关键帧对应的位置作为所述关键帧索引位置。然后,可以将所述目标直播视频中从图9所示的关键帧索引位置处开始的音视频数据下发给所述当前播放器,并按照音频帧和视频帧的下发顺序,分别为所述音视频数据中的音频帧和视频帧进行递增编号。图9所示的这种方式,既可以保证有一定的缓冲数据量,又能提高播放的实时性,并且由于从关键帧开始发送音视频数据,在保证音视频数据同步的情况下,也能避免播放器出现花屏现象。
本申请还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的保持音频帧和视频帧同步的快速启动方法。
前述实施方式中,都是按照当前系统时间来确定快速启动索引位置,但是这样的方式可能会导致下发的视频数据不够准确。原因在于:服务器在一秒钟的时间内,可能会接收视频直播平台发来的目标直播视频的多秒数据。例如,服务器在21点18分15秒,接收到目标直播视频的3秒音视频数据。然后假设当前系统时间为21点18分16秒,约定的快速启动配置时间为1秒钟,那么确定出的快速启动索引位置便是21点18分15秒。如果从该快速启动索引位置下发音视频数据,则会一次性下发3秒的音视频数据,这样会导致数据下发不够精确。鉴于此,本申请还提供一种直播视频的快速启动方法,所述方法可以针对按照时间戳进行精确缓冲的播放器。请参阅图10,所述方法可以包括以下步骤。
S41:识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略。
S43:在所述快速启动策略执行时,读取目标直播视频中当前视频帧的时间戳以及所述当前播放器对应的快速启动配置时间。
S45:计算所述当前视频帧的时间戳与所述快速启动配置时间之间的时间差,并根据所述时间差在所述目标直播视频中确定关键帧索引位置。
S47:将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器。
在本实施方式中,在识别出当前播放器的类型为按照时间戳进行精确缓冲的播放器时,可以调用对应的快速启动策略。在该快速启动策略执行时,可以读取目标直播视频中已完成缓冲的当前视频帧的时间戳预计预先约定的快速启动配置时间。然后,可以计算所述当前视频帧的时间戳与所述快速启动配置时间之间的时间差,并根据所述时间差在所述目标直播视频中确定关键帧索引位置。具体地,可以在服务器已缓存的关键帧序列中查找时间戳大于或者等于所述时间差的第一个关键帧,并将查找到的所述第一个关键帧在所述目标直播视频中对应的位置作为所述关键帧索引位置。例如,如图11所示,所述当前视频帧的时间戳为3000毫秒,所述快速启动配置时间为1秒,那么计算得到的时间差为2000毫秒。然后,可以在服务器已缓存的关键帧中,查找时间戳大于或者等于2000毫秒,并且与2000毫秒最接近的关键帧,该最接近的关键帧对应的位置便可以作为关键帧索引位置。
在本实施方式中,由于播放器是基于时间戳进行精确缓冲音视频数据,因此可以将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器。由上可见,通过时间戳来计算时间差,能够保证计算得到的时间差处最多只对应一个视频帧,从而能够向播放器下发精准的音视频数据。
本申请还提供一种直播视频的快速启动装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的针对按照时间戳进行精确缓冲的播放器的快速启动方法。
由上可见,本申请提供的技术方案,针对当前常用的一些播放器,可以制定不同的快速启动策略,这样,服务器在接收到播放器发来的请求后,可以识别出该播放器的类型,并调用对应的快速启动策略来向播放器下发直播视频的数据。具体地,在一个实施方式中,可以预先读取当前系统时间和播放器的快速启动配置时间。然后,可以根据该当前系统时间和快速启动配置时间,确定出快速启动索引位置。针对普通的FLASH播放器,可以从快速启动索引位置向前查找到第一个关键帧,然后将第一个关键帧作为关键帧索引位置。接着,可以将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据。这样处理的目的在于,FLASH播放器可以通过较快的速度将快速启动索引位置至关键帧索引位置之间的数据播完,既能够提高首屏时间又能够提升直播的实时性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种直播视频的快速启动方法,其特征在于,所述方法包括:
识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;
若所述当前播放器的类型为FLSAH播放器,在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;
基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;
将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器,并丢弃从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的音频数据;
其中,计算所述当前系统时间与所述快速启动配置时间之间的时间差,并将所述时间差在所述目标直播视频中对应的位置作为所述快速启动索引位置;
在目标直播视频中从所述快速启动索引位置开始,沿着与视频播放顺序相反的方向查询第一个关键帧,并将查询得到的所述第一个关键帧对应的位置作为所述关键帧索引位置。
2.根据权利要求1所述的方法,其特征在于,在将所述目标直播视频中从所述关键帧索引位置处开始的视频数据下发给所述当前播放器时,所述方法还包括:
将从所述关键帧索引位置至所述快速启动索引位置之间的所述目标直播视频的视频数据中各个视频帧的时间戳均设置为0。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
从所述快速启动索引位置开始,按照视频帧的下发顺序,对所述目标直播视频的视频数据中各个视频帧的时间戳进行递增编号,并且从所述快速启动索引位置开始,向所述当前播放器下发所述目标直播视频的音频数据。
4.一种直播视频的快速启动装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至权利要求3中任一所述的方法。
5.一种直播视频的快速启动方法,其特征在于,所述方法包括:
识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;
若所述当前播放器的类型为根据音频帧来同步解码器信息的播放器,在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;
基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置;
将所述目标直播视频中从所述快速启动索引位置处开始的音频数据下发给所述当前播放器,并将所述目标直播视频中从所述快速启动索引位置至下一个关键帧之间的视频数据丢弃;
其中,计算所述当前系统时间与所述快速启动配置时间之间的时间差,并将所述时间差在所述目标直播视频中对应的位置作为所述快速启动索引位置。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
从所述下一个关键帧开始,向所述当前播放器下发所述目标直播视频的视频数据。
7.一种直播视频的快速启动装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求5或权利要求6所述的方法。
8.一种直播视频的快速启动方法,其特征在于,所述方法包括:
识别当前播放器的类型,并调用与所述当前播放器的类型相适配的快速启动策略;
若所述当前播放器的类型为保持音频帧和视频帧同步的播放器,在所述快速启动策略执行时,读取当前系统时间以及所述当前播放器对应的快速启动配置时间;
基于所述当前系统时间和所述快速启动配置时间,在目标直播视频中确定快速启动索引位置,并在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置;
将所述目标直播视频中从所述关键帧索引位置处开始的音视频数据下发给所述当前播放器,并按照音频帧和视频帧的下发顺序,分别为所述音视频数据中的音频帧和视频帧进行递增编号;
其中,计算所述当前系统时间与所述快速启动配置时间之间的时间差,并将所述时间差在所述目标直播视频中对应的位置作为所述快速启动索引位置。
9.根据权利要求8所述的方法,其特征在于,在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置包括:
在目标直播视频中从所述快速启动索引位置开始,沿着与视频播放顺序相反的方向查询第一个关键帧,并将查询得到的所述第一个关键帧对应的位置作为所述关键帧索引位置。
10.根据权利要求8所述的方法,其特征在于,在所述快速启动索引位置的基础上,在所述目标直播视频中确定关键帧索引位置包括:
在所述快速启动索引位置和所述当前系统时间对应的位置之间,查询与所述快速启动索引位置距离最近的关键帧,并将查询得到的所述关键帧对应的位置作为所述关键帧索引位置。
11.一种直播视频的快速启动装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求8至权利要求10中任一所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811150049.XA CN109151492B (zh) | 2018-09-29 | 2018-09-29 | 一种直播视频的快速启动方法及装置 |
EP18934653.9A EP3860129A4 (en) | 2018-09-29 | 2018-11-02 | LIVE VIDEO QUICK START PROCESS AND DEVICE |
US16/617,741 US20210368213A1 (en) | 2018-09-29 | 2018-11-02 | Method and device for quick start of live video streaming |
PCT/CN2018/113733 WO2020062438A1 (zh) | 2018-09-29 | 2018-11-02 | 一种直播视频的快速启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811150049.XA CN109151492B (zh) | 2018-09-29 | 2018-09-29 | 一种直播视频的快速启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109151492A CN109151492A (zh) | 2019-01-04 |
CN109151492B true CN109151492B (zh) | 2021-02-02 |
Family
ID=64813843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811150049.XA Active CN109151492B (zh) | 2018-09-29 | 2018-09-29 | 一种直播视频的快速启动方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210368213A1 (zh) |
EP (1) | EP3860129A4 (zh) |
CN (1) | CN109151492B (zh) |
WO (1) | WO2020062438A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109618179B (zh) * | 2019-01-21 | 2021-05-11 | 北京数码视讯软件技术发展有限公司 | 超高清视频直播的快速起播方法及装置 |
CN109862384A (zh) * | 2019-03-13 | 2019-06-07 | 北京河马能量体育科技有限公司 | 一种音视频自动同步方法及同步系统 |
CN111010603A (zh) * | 2019-12-18 | 2020-04-14 | 浙江大华技术股份有限公司 | 一种视频缓存转发处理方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220118A1 (en) * | 2006-03-15 | 2007-09-20 | Loyer Douglas E | Systems, Methods, and Apparatus for Delivering Randomly Accessible Audio and Video Media |
US8131971B2 (en) * | 2006-06-20 | 2012-03-06 | Patentvc Ltd. | Methods and systems for push-to-storage |
US9906757B2 (en) * | 2009-02-26 | 2018-02-27 | Akamai Technologies, Inc. | Deterministically skewing synchronized events for content streams |
CN103856814B (zh) * | 2012-11-28 | 2017-09-15 | 北京音之邦文化科技有限公司 | Web播放器的播放控制策略控制方法及装置 |
CN103873956B (zh) * | 2012-12-12 | 2018-02-13 | 中国电信股份有限公司 | 媒体文件播放方法、系统、播放器、终端及媒体存储平台 |
EP2773078B1 (en) * | 2013-03-01 | 2017-06-07 | Alcatel-Lucent España | Method, system and devices for multimedia content delivery using adaptive streaming |
GB2534849A (en) * | 2015-01-28 | 2016-08-10 | Canon Kk | Client-driven push of resources by a server device |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN106998485B (zh) * | 2016-01-25 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 视频直播方法及装置 |
CN106254962A (zh) * | 2016-07-28 | 2016-12-21 | 武汉斗鱼网络科技有限公司 | 一种直播客户端快速启动播放的方法及系统 |
CN107690073B (zh) * | 2016-08-05 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN106385594A (zh) * | 2016-09-18 | 2017-02-08 | 深圳市青柠互动科技开发有限公司 | 一种优化视频直播服务的方法 |
CN106488273B (zh) * | 2016-10-10 | 2019-09-10 | 广州酷狗计算机科技有限公司 | 一种传输直播视频的方法和装置 |
CN106899888B (zh) * | 2017-02-14 | 2019-03-05 | 武汉斗鱼网络科技有限公司 | 基于云端适配播放器的tv端播放直播视频的方法及系统 |
CN107147919B (zh) * | 2017-06-19 | 2020-11-27 | 网宿科技股份有限公司 | 直播快速启播方法及系统 |
CN107566918B (zh) * | 2017-09-21 | 2019-08-13 | 中国电子科技集团公司第二十八研究所 | 一种视频分发场景下的低延时取流秒开方法 |
CN108540819B (zh) * | 2018-04-12 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
-
2018
- 2018-09-29 CN CN201811150049.XA patent/CN109151492B/zh active Active
- 2018-11-02 WO PCT/CN2018/113733 patent/WO2020062438A1/zh unknown
- 2018-11-02 US US16/617,741 patent/US20210368213A1/en not_active Abandoned
- 2018-11-02 EP EP18934653.9A patent/EP3860129A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210368213A1 (en) | 2021-11-25 |
WO2020062438A1 (zh) | 2020-04-02 |
EP3860129A1 (en) | 2021-08-04 |
EP3860129A4 (en) | 2022-01-05 |
CN109151492A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303939B2 (en) | Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision | |
JP7313445B2 (ja) | 置換コンテンツの最後を被置換コンテンツの最後と揃えるのに役立つ置換コンテンツ再生における動的短縮 | |
CN109151492B (zh) | 一种直播视频的快速启动方法及装置 | |
KR101741484B1 (ko) | 저-레이턴시 스트림을 처리하기 위한 개선된 블록-요청 스트리밍 시스템 | |
US11812103B2 (en) | Dynamic playout of transition frames while transitioning between playout of media streams | |
US11496781B2 (en) | Advanced preparation for content revision based on expected latency in obtaining new content | |
CN107690093B (zh) | 一种视频播放方法及装置 | |
KR101853441B1 (ko) | 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법 | |
WO2016112641A1 (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
CN114401376B (zh) | 一种多画面视频播放方法及装置 | |
US11523162B2 (en) | Content modification system with prioritized content delivery feature | |
US11930242B2 (en) | Method and electronic device for playing streaming media |
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 |