CN112822503B - 直播视频流的播放方法、装置、设备及存储介质 - Google Patents
直播视频流的播放方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112822503B CN112822503B CN202011613210.XA CN202011613210A CN112822503B CN 112822503 B CN112822503 B CN 112822503B CN 202011613210 A CN202011613210 A CN 202011613210A CN 112822503 B CN112822503 B CN 112822503B
- Authority
- CN
- China
- Prior art keywords
- live
- image frame
- video stream
- live broadcast
- live video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/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/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing 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
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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
Abstract
本申请公开了一种直播视频流的播放方法、装置、设备及存储介质,属于直播技术领域。该方法包括:从内容分发服务器中拉取直播视频流,直播视频流中包括直播图像帧序列,直播图像帧序列中的直播图像帧携带有缓存时间戳,缓存时间戳用于指示内容分发服务器缓存直播图像帧的时刻;基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻;基于起播时刻和缓存时间戳,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧;以第一直播图像帧为起点,播放直播视频流。该方法能够控制直播视频流播放的延迟时长,满足更低延时要求的直播场景,同时减少视频直播卡顿现象的发生。
Description
技术领域
本申请涉及直播技术领域,特别涉及一种直播视频流的播放方法、装置、设备及存储介质。
背景技术
如今,直播技术应用广泛,比如,应用开发和应用测试分别由专属工程师来完成,测试工程师在测试应用时发现问题,可以采用直播的方式与开发工程师沟通上述问题,而直播技术中一直存在延时问题。
为了解决直播技术中的延时问题,在直播系统的观看终端中设置第一延时阈值和第二延时阈值,观看终端对直播视频进行播放,在直播进行了一段时间后,观看终端比较正在播放的图像帧与最新直播的图像帧之间的时间差异,当上述时间差值达到上述第一延时阈值时,对直播视频进行倍速播放,当上述时间差值达到第二延时阈值时,恢复直播视频的原播放速度;其中,上述第一延时阈值大于上述第二延时阈值。
但是,在更低延时要求的应用场景下,若起播时直播的第一个图像帧与最新图像帧之间的延时过大,观看终端采用上述技术方案需要对直播视频进行倍速播放,此时,容易发生直播卡顿的情况。
发明内容
本申请实施例提供了一种直播视频流的播放方法、装置、设备及存储介质,能够控制直播视频流播放的延迟时长,满足更低延时要求的直播场景,同时减少视频直播卡顿现象的发生。所述技术方案如下:
根据本申请的一个方面,提供了一种直播视频流的播放方法,应用于直播的观看终端中,该方法包括:
从内容分发服务器中拉取直播视频流,直播视频流中包括直播图像帧序列,直播图像帧序列中的直播图像帧携带有缓存时间戳,缓存时间戳用于指示内容分发服务器缓存直播图像帧的时刻;
基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻;
基于起播时刻和缓存时间戳,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧;
以第一直播图像帧为起点,播放直播视频流。
根据本申请的另一个方面,提供了一种直播视频流的播放装置,该装置包括:
获取模块,用于从内容分发服务器中拉取直播视频流,直播视频流中包括直播图像帧序列,直播图像帧序列中的直播图像帧携带有缓存时间戳,缓存时间戳用于指示内容分发服务器缓存直播图像帧的时刻;
确定模块,用于基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻;
匹配模块,用于基于起播时刻和缓存时间戳,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧;
播放模块,用于以第一直播图像帧为起点,播放直播视频流。
根据本申请的另一方面,提供了一种终端,上述终端包括:处理器和存储器,上述存储器存储有计算机程序,上述计算机程序由上述处理器加载并执行以实现如上所述的直播视频流的播放方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序由处理器加载并执行以实现如上所述的直播视频流的播放方法。
根据本申请的另一个方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上所述的直播视频流的播放方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在直播开始时,观看终端从内容分发服务器中拉取直播视频流,在第一次拉取到直播视频流之后并非是从直播开始的第一帧开始播放,而是基于直播视频流的第一次拉取时刻确定出一个起播时刻,从拉取的直播视频流中找到与起播时刻匹配的直播图像帧,从这一直播图像帧开始播放,达到控制直播视频流播放的延迟时长的目的,满足更低延时要求的直播场景,同时上述直播仍以标准速度来播放,能够避免由于倍速播放来拉短延迟时长而导致的视频直播卡顿现象。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的直播系统的结构示意图;
图2示出了本申请一个示例性实施例提供的直播视频流的播放方法的流程图;
图3示出了本申请一个示例性实施例提供的观看终端上播放直播的流程图;
图4示出了本申请另一个示例性实施例提供的直播视频流的播放方法的流程图;
图5示出了本申请一个示例性实施例提供的直播图像帧的播放示意图;
图6示出了本申请另一个示例性实施例提供的直播图像帧的播放示意图;
图7示出了本申请另一个示例性实施例提供的直播视频流的播放方法的流程图;
图8示出了本申请另一个示例性实施例提供的直播视频流的播放方法的流程图;
图9示出了本申请另一个示例性实施例提供的直播视频流的播放方法的流程图;
图10示出了本申请另一个示例性实施例提供的直播视频流的播放方法的流程图;
图11示出了本申请一个示例性实施例提供的直播视频流的播放装置的框图;
图12示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍:
直播,是指视频的后期合成、播出同时进行的播放方式。直播延时,是指直播源上直播图像帧的采集时刻和直播的观看终端上该直播图像帧的播放时刻之间的时间差。比如,直播源从10点00分00秒开始推流,经过传输和加载的过程,直播源在10点00分00秒时的画面在终端上的播放时刻为10点00分03秒,则上述3秒的时间差即为直播延时。
直播与点播的区别在于,直播的视频源是实时生成的,有推流的直播才有意义,一旦主播端停止推流则直播结束,而且由于是实时直播,所以播放器在播放直播视频流时是没有进度条的。点播的视频源是一个视频文件,该视频文件只要没有从服务器中被删除就可以随时被获取播放,由于整个视频都在服务器上,所以播放时是有进度条的。
推流,是指把采集阶段封包好的内容传输到服务器的过程,即是将现场的视频信号传导网络的过程。
图1示出了本申请一个示例性实施例提供的直播系统的结构示意图,该直播系统包括主播终端110、分布式推流节点120、直播源站130、分布式播放节点140和观看终端150;分布式推流节点120与主播终端110、直播源站130之间分别通过通信网络连接,分布式播放节点140与直播源站130、观看终端150之间分别通过通信网络连接。
主播终端110是直播视频流的采集端,主播终端110可以采用屏幕采集、摄像头采集、以及其他可扩展采集的方式进行直播视频流的采集,通过推流端的软件开发工具包(Software Development Kit,SDK)对采集的直播图像帧进行打包,以直播视频流的形式推送至分布式推流节点120,示例性的,主播终端110将直播视频流推送至与主播终端110距离最近的分布式推流节点120;分布式推流节点120将直播视频流推送至直播源站130,由直播源站130对直播视频流进行缓存;分布式播放节点140从直播源站130中拉取直播视频流,对直播视频流进行缓存;观看终端150拉取分布式播放节点140中缓存的直播视频流,示例性的,观看终端150是从距离最近的分布式播放节点140中拉取直播视频流;观看终端150通过播放器的SDK对直播视频流中的直播图像帧进行解码播放。
示例性的,分布式推流节点120是由多个服务器分布在各地组成的;上述分布式播放节点140是由多个内容分发服务器分布在各地组成的。上述直播源站包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种;比如,直播源站可以是直播云服务器。
该直播系统还包括转码集群160;转码集群160与直播源站130之间通过通信网络连接。示例性的,转码集群160是由一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种组成的提供转码服务的服务器集群。
示例性的,直播源站130将直播视频流发送至转码集群160,由转码集群160进行视频转码,即将已经压缩编码的视频码流转换为另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的客户需求。转码集群160将转码后的直播视频流返回至直播源站130缓存。直播源站130将转码前和转码后的直播视频流发送至分布式播放节点140,由分布式播放节点140基于观看终端150的网络带宽、终端处理能力、以及客户需求进行直播视频流的分发。
该直播系统还包括录制集群170;录制集群170与直播源站130之间通过通信网络连接。示例性的,录制集群170是一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种组成的提供视频录制服务的服务器集群。示例性的,直播源站130将直播视频流发送至录制集群170,由录制集群170对直播视频流进行视频录制,生成并存储视频文件。当观看终端150对视频进行点播时,可以从录制集群170中获取视频的点播流。
示例性的,上述通信网络包括有线网络和无线网络中的至少一种。本领域技术人员可以知晓,上述直播系统中终端的数量可以更多或更少,上述终端包括主播终端和观看终端。比如,上述直播系统中终端可以仅为一个,或者为几十个或几百个,或者更多数量,本申请实施例对直播系统中终端的数量和设备类型不加以限定。
图2示出了本申请的一个示例性实施例提供的直播视频流的播放方法的流程图,以该方法应用于上述直播系统的观看终端中为例,该方法包括:
步骤201,从内容分发服务器中拉取直播视频流,直播视频流中包括直播图像帧序列,直播图像帧序列中的直播图像帧携带有缓存时间戳。
内容分发服务器作为分布式播放节点,从直播源站拉流,获得并缓存直播视频流,内容分发服务器还对缓存的直播视频流包括的直播图像帧序列中每一个直播图像帧标记缓存时间戳,该缓存时间戳用于指示内容分发服务器缓存直播图像帧的时刻。
示例性的,观看终端通过播放器加载直播视频流,从内容分发服务器中拉取直播视频流,该直播视频流中包括直播图像帧序列,直播图像帧序列中的每一个直播图像帧携带有缓存时间戳。
步骤202,基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻。
示例性的,观看终端将直播视频流的第一次拉取时刻确定为直播视频流的起播时刻。
示例性的,观看终端中设置有第一预期延迟时长,第一预期延迟时长是允许的直播延迟时长;示例性的,第一预期延迟时长小于或者等于允许的最大直播延迟时长。观看终端确定出m个候选起播时刻,m个候选起播时刻中每一个候选起播时刻与上述第一次拉取时刻之间的时间差值小于第一预期延迟时长,也就是说,要保证确定出的m个候选起播时刻中每一个候选起播时刻都不能超过允许的直播延迟时长;观看终端从m个候选起播时刻中确定出起播时刻,m为正整数。
示例性的,观看终端从直播图像帧序列中确定出h个关键帧的h个缓存时刻,从h个缓存时刻中确定出m个候选起播时刻;从m个候选起播时刻中确定出起播时刻,h为大于或者等于m的正整数。示例性的,观看终端可以从m个候选起播时刻中随机确定出起播时刻。
视频压缩中每一个帧代表一幅静止的图像,而在实际压缩时,会采用各种算法减少数据的容量,其中,IPB就是最常见的。以IPB为例对关键帧进行说明,IPB中的I帧即帧内编码图像帧(Intra-coded picture),可以不参考其他图像帧,只利用本帧的信息进行编码;IPB中的P帧即预测编码图像帧(Predictive-coded Picture),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码;IPB中的B帧即双向预测编码图像帧(Bidirectionally predicted picture),需要之前的I帧或者P帧、以及后来的P帧,采用运动预测的方式进行帧间双向预测编码,其中,I帧即为关键帧。
步骤203,基于起播时刻和缓存时间戳,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧。
观看终端从直播图像帧序列中确定出缓存时间戳与起播时刻一致的第一直播图像帧。
示例性的,观看终端从直播图像帧序列中确定出缓存时间戳与起播时刻一直的关键帧,即得到起播时刻对应的第一直播图像帧。若直播图像帧序列中不存在缓存时间戳与起播时刻一致的关键帧,从直播图像帧序列中确定出缓存时间戳与起播时刻之间的时间差值最小的关键帧,即得到起播时刻对应的第一直播图像帧。
步骤204,以第一直播图像帧为起点,播放直播视频流。
观看终端通过播放器以第一直播图像帧为起点,播放直播视频流。
示例性的,观看终端在浏览器中通过播放器以第一直播图像帧为起点,播放直播视频流;或者,观看终端上运行有直播应用程序,在直播应用程序中通过播放器以第一直播图像帧为起点,播放直播视频流。
示例性的,观看终端播放直播视频流可以简单的概括为三步,如图3所示:步骤11,通过播放器加载直播视频流;步骤12,从内容分发服务器中拉取直播视频流;步骤13,通过播放器播放直播视频流。如图4所示,本实施例提供的直播视频流的播放方法可以采用步骤21至步骤23来实现上述步骤13,示例性步骤如下:步骤21,通过播放器自动开始播放直播视频流;步骤22,确定出第一直播图像帧;步骤23,以第一直播图像帧为起点,播放直播视频流。
示例性的,如图5,主播终端31对F0至F1帧进行推流,观看终端32确定出缓存时间戳与第一次拉取时刻一致的F1帧,观看终端从F1帧开始播放,舍弃F0至F1帧之间的直播图像帧;或者是舍弃F0至F1帧之间的部分直播图像帧,从F0至F1帧之间一个可设定的时间点开始直播,以减少直播延时。
综上所述,本实施例提供的直播视频流的播放方法,在直播开始时,观看终端从内容分发服务器中拉取直播视频流,在第一次拉取到直播视频流之后并非是从直播开始的第一帧开始播放,而是基于直播视频流的第一次拉取时刻确定出一个起播时刻,从拉取的直播视频流中找到与起播时刻匹配的直播图像帧,从这一直播图像帧开始播放,达到控制直播视频流播放的延迟时长的目的,满足更低延时要求的直播场景,同时上述直播仍以标准速度来播放,能够避免由于倍速播放来拉短延迟时长而导致的视频直播卡顿现象。
示例性的,上述直播视频流的播放方法应用于推流端与观看终端距离较近、实时性要求更高的直播场景中,可以将直播延时优化到3秒以下,能够有效地控制直播起播与长时间直播的延时。比如,开发与测试的问题演示场景,在开发工程师的观看终端中应用上述直播视频流的播放方法,在测试工程师进行直播推流后,能够将观看终端的起播的直播延时控制在3秒以下,可以快速地进入问题沟通状态,示例性的,如图6所示,能够与应用程序日志等其他的实时传输实现高度实时性同步,达到同时观看测试端的应用程序测试直播41与应用程序日志42等其他相关信息的效果,更好的实现开发工程师与测试工程师之间针对应用程序问题的沟通。
为了尽量避免观看终端上直播的起播发生严重的延迟现象,需要开启观看终端上的直播视频的自动播放功能,示例性的,若观看终端从内容分发服务器中拉取到直播视频流,则响应于直播视频流的自动播放功能已开启,基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻,进而基于缓存时间戳和起播时刻,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧,通过播放器以第一直播图像帧为起点,播放直播视频流。
示例性的,若观看终端从内容分发服务器中拉取到直播视频流,还响应于直播视频流的自动播放功能未开启,显示直播已开始的提示信息。
示例性的,观看终端上还包括直播的开播提醒的设置功能,可以由观众自定义开播提醒时间;观看终端在开播提醒时间上发起开播提醒,提醒观众开启直播视频流的自动播放功能。
上述直播视频流的自动播放功能的开启能够保证直播不会因为无法自动播放而导致起播延迟。
在一些实施例中,观看终端中设置有第二预期延迟时长,示例性的,第二预期延迟时长是指直播允许的最大延迟时长;在直播起播之后,观看终端还获取直播延时的大小,在直播延时超出第二预期延迟时长时,即时调整直播的播放进度,以保证直播的更高实时性,示例性的,可以在步骤204之后增加步骤301至步骤302,如图7,步骤如下:
步骤301,在校正时刻计算第二直播图像帧与第三直播图像帧之间的延迟时长。
其中,上述第二直播图像帧是正在播放的直播图像帧,第三直播图像帧是在第二直播图像帧的播放时刻上拉取到的直播图像帧。
存在按照周期设置的校正时间,观看终端在校正时刻计算第二直播图像帧与第三直播图像帧之间的延迟时长。示例性的,观看终端在计算延迟时长时,首先获取第二直播图像帧中携带的第一缓存时间戳,以及第三直播图像帧携带的第二缓存时间戳,计算第一缓存时间戳和第二缓存时间戳之间的时间差,即得到第二直播图像帧与第三直播图像帧之间的延迟时长。
或者,观看终端获取第二直播图像帧携带的第一生成时间戳,以及第三直播图像帧携带的第二生成时间戳,计算第一生成时间戳和第二生成时间戳之间的时间差,即得到第二直播图像帧与第三直播图像帧之间的延迟时长。其中,上述缓存时间戳指示内容分发服务器对拉流得到的直播图像帧缓存的时间;上述生成时间戳指示主播终端采集生成直播图像帧的时间。
步骤302,响应于延迟时长等于或者大于第二预期延迟时长,在第二直播图像帧播放后的下一个播放时刻,以第三直播图像帧为衔接点,继续播放直播视频流。
延迟时长等于或者大于第二预期延迟时长,表示直播延迟即将超出第二预期延迟时长,或是已经超出第二预期延迟时长,则观看终端将第三直播图像帧确定为下一个播放时刻的直播图像帧,也即将第三直播图像帧作为第二直播图像帧与第三直播图像帧之后的直播图像帧之间衔接点,继续播放直播视频流,将直播延迟拉回至第二预期延迟时长之内。
示例性的,对本实施例的整个直播视频流播放流程进行说明,如图8所示,可以概括为7个步骤,步骤如下:步骤51,观看终端通过播放器加载直播视频流;步骤52,观看终端拉取直播视频流;步骤53,观看终端通过播放器自动播放直播视频流;步骤54,观看终端确定出第三直播图像帧,其中,第三直播图像帧是在第二直播图像帧的播放时刻上拉取到的直播图像帧,第二直播图像帧是正在播放的直播图像帧;步骤55,观看终端通过播放器播放第三直播图像帧;步骤56,观看终端在校正时刻计算直播延迟;步骤57,观看终端确定直播延迟超出第二预期延迟时长,返回步骤54,重新确定第三直播图像帧。
综上所述,本实施例提供的直播视频流的播放方法,不仅能够在起播时控制直播延迟,还在长时间的播放过程中对直播延迟进行获取,以保证在直播延迟超出或者即将超出第二预期延迟时长时及时进行调整,将直播延迟控制在第二预期延迟时长之内,保证直播具有更高的实时性,避免影响观众观看直播。比如,在开发工程师和测试工程师通过直播沟通问题的过程中,采用上述直播视频流的播放方法,可以长时间保持直播延迟在3秒之下,保证开发工程师和测试工程师之间的沟通能够一直处于同一节奏上。
在一些实施例中,还可能出现在直播窗口与其他窗口之间来回切换的情况,此时,在从其他窗口切回直播窗口时,观看终端需要保证直播窗口在切回到前台运行时直播的低延时,因此,可以采用如图9所示的方法,也就是说,在步骤204之后还可以增加步骤401,步骤如下:
步骤401,响应于从其他窗口切换至直播窗口的切换信号,以第四直播图像帧为衔接点,继续播放直播视频流。
其中,第四直播图像帧是在切换信号的触发时刻上拉取到的直播图像帧。示例性的,观看终端响应于从其他窗口切换至直播窗口的切换信号,将第四直播图像帧确定为切换至直播窗口后显示的第一个直播图像帧,也就是说,观看终端检测到直播窗口从后台运行转变为前台运行时,确定出第四直播图像帧,以第四直播图像帧为衔接点,继续播放直播视频流。
示例性的,对本实施例的整个直播视频流播放流程进行说明,如图10所示,可以概括为7个步骤,步骤如下:步骤61,观看终端通过播放器加载直播视频流;步骤62,观看终端拉取直播视频流;步骤63,观看终端通过播放器自动播放直播视频流;步骤64,观看终端确定出最新直播图像帧;步骤65,观看终端通过播放器播放最新直播图像帧;步骤66,观看终端检测直播窗口的运行状态;步骤67,观看终端确定直播窗口切换至前台运行,返回步骤64,重新确定出最新直播图像帧;其中,最新直播图像帧是第三直播图像帧或第四直播图像帧,第三直播图像帧是在第二直播图像帧的播放时刻上拉取到的直播图像帧,第二直播图像帧是正在播放的直播图像帧;第四直播图像帧是在切换信号的触发时刻上拉取到的直播图像帧。
综上所述,本实施例提供的直播视频流的播放方法,不仅能够在起播时控制直播延迟,还在直播窗口与其他窗口之间来回切换的情况下,保证了直播窗口切换至前台运行时直播延迟仍控制在预期延迟时长之内,保证直播具有更高的实时性,避免影响观众观看直播。比如,在开发工程师与测试工程师沟通的过程中,在需要前期准备的场景下,观看终端上可以先将直播窗口设置为后台运行,在到达问题演示场景时,再切回直播窗口,此时,可以采用上述直播视频流的播放方法以将直播延时控制在3秒以下,保证开发工程师和测试工程师之间可以即刻进入同一节奏上的沟通。
在一些实施例中,观看终端在通过播放器从起播时刻对应的第一直播图像帧开始直播时,还保留第一直播图像帧之前的k个直播图像帧,其中,k等于或者大于两个相邻关键帧之间的间隔帧数,k为正整数;基于k个直播图像帧,以第一直播图像帧为起点,播放直播视频流。其次,观看终端在通过播放器长时间播放直播视频流时,还保留第三直播图像帧之前的k个直播图像帧;基于k个直播图像帧,以第三直播图像帧为起点,播放直播视频流。还有,观看终端在其他窗口与直播窗口之间进行来回切换时,还保留第四直播图像帧之前的k个直播图像帧;基于k个直播图像帧,以第四直播图像帧为起点,播放直播视频流。该方法可以避免由于确定出的直播视频流的播放起点和衔接点上直播图像帧不是关键帧,使得直播图像帧无法正常解码播放,而导致的直播视频卡顿。
图11示出了本申请一个示例性实施例提供的直播视频流的播放装置的框图,该装置可以通过软件、硬件、或者二者结合实现成为终端的部分或者全部。该装置包括:
获取模块501,用于从内容分发服务器中拉取直播视频流,直播视频流中包括直播图像帧序列,直播图像帧序列中的直播图像帧携带有缓存时间戳,缓存时间戳用于指示内容分发服务器缓存直播图像帧的时刻;
确定模块502,用于基于直播视频流的第一次拉取时刻确定出直播视频流的起播时刻;
匹配模块503,用于基于起播时刻和缓存时间戳,在直播图像帧序列中确定出与起播时刻对应的第一直播图像帧;
播放模块504,用于以第一直播图像帧为起点,播放直播视频流。
在一些实施例中,确定模块502,用于响应于直播视频流的自动播放功能已启动,基于第一次拉取时刻确定出直播视频流的起播时刻。
在一些实施例中,确定模块502,用于将第一次拉取时刻确定为直播视频流的起播时刻。
在一些实施例中,确定模块502,用于确定出m个候选起播时刻,每一个候选起播时刻与第一次拉取时刻之间的时间差值小于第一预期延迟时长;从m个候选起播时刻中随机确定出起播时刻,m为正整数。
在一些实施例中,确定模块502,用于从直播图像帧序列中确定出h个关键帧的h个缓存时刻;从h个缓存时刻中确定出m个候选起播时刻,h为等于或者大于m的正整数。
在一些实施例中,该装置还包括:计算模块505;
计算模块505,用于在校正时刻计算第二直播图像帧与第三直播图像帧之间的延迟时长,第二直播图像帧是正在播放的直播图像帧,第三直播图像帧是在第二直播图像帧的播放时刻上拉取到的直播图像帧;
播放模块504,用于响应于延迟时长大于第二预期延迟时长,在第二直播图像帧播放后下一个播放时刻,以第三直播图像帧为衔接点,继续播放直播视频流。
在一些实施例中,播放模块504,用于响应于从其他窗口切换至直播窗口的切换信号,以第四直播图像帧为衔接点,继续播放直播视频流,第四直播图像帧是在切换信号的触发时刻上拉取到的直播图像帧。
在一些实施例中,播放模块504,用于保留第一直播图像帧之前的k个直播图像帧,k等于或者大于两个相邻关键帧之间的间隔帧数,k为正整数;基于k个直播图像帧,以第一直播图像帧为起点,播放直播视频流,k为正整数。
综上所述,本实施例提供的直播视频流的播放装置,在直播开始时,该装置从内容分发服务器中拉取直播视频流,在第一次拉取到直播视频流之后并非是从直播开始的第一帧开始播放,而是基于直播视频流的第一次拉取时刻确定出一个起播时刻,从拉取的直播视频流中找到与起播时刻匹配的直播图像帧,从这一直播图像帧开始播放,达到控制直播视频流播放的延迟时长的目的,满足更低延时要求的直播场景,同时上述直播仍以标准速度来播放,能够避免由于倍速播放来拉短延迟时长而导致的视频直播卡顿现象。
图12示出了本申请一个示例性实施例提供的计算机设备的结构示意图。该计算机设备可以是执行如本申请提供的直播视频流的播放方法的设备,该计算机设备可以是终端。具体来讲:
计算机设备600包括中央处理单元(CPU,Central Processing Unit)601、包括随机存取存储器(RAM,Random Access Memory)602和只读存储器(ROM,Read Only Memory)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。计算机设备600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统,Input Output System)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为计算机设备600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者紧凑型光盘只读存储器(CD-ROM,Compact Disc Read Only Memory)驱动器之类的计算机可读介质(未示出)。
计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(DVD,Digital Versatile Disc)或固态硬盘(SSD,Solid State Drives)、其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,计算机设备600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在一个可选的实施例中,提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上所述的直播视频流的播放方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本申请还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的直播视频流的播放方法。
本申请还提供了一种计算机程序产品,上述计算机程序产品包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上所述的直播视频流的播放方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种直播视频流的播放方法,其特征在于,所述方法包括:
从内容分发服务器中拉取直播视频流,所述直播视频流中包括直播图像帧序列,所述直播图像帧序列中的直播图像帧携带有缓存时间戳,所述缓存时间戳用于指示所述内容分发服务器缓存所述直播图像帧的时刻;
响应于所述直播视频流的自动播放功能已启动,基于第一次拉取时刻确定出所述直播视频流的起播时刻;
基于所述起播时刻和所述缓存时间戳,在所述直播图像帧序列中确定出与所述起播时刻对应的第一直播图像帧;
以所述第一直播图像帧为起点,播放所述直播视频流;
在校正时刻计算第二直播图像帧与第三直播图像帧之间的延迟时长,所述第二直播图像帧是正在播放的直播图像帧,所述第三直播图像帧是在所述第二直播图像帧的播放时刻上拉取到的直播图像帧;
响应于所述延迟时长大于第二预期延迟时长,在所述第二直播图像帧播放后下一个播放时刻,以所述第三直播图像帧为衔接点,继续播放所述直播视频流。
2.根据权利要求1所述的方法,其特征在于,所述基于第一次拉取时刻确定出所述直播视频流的起播时刻,包括:
将所述第一次拉取时刻确定为所述直播视频流的所述起播时刻。
3.根据权利要求1所述的方法,其特征在于,所述基于第一次拉取时刻确定出所述直播视频流的起播时刻,包括:
确定出m个候选起播时刻,每一个所述候选起播时刻与所述第一次拉取时刻之间的时间差值小于第一预期延迟时长;
从所述m个候选起播时刻中随机确定出所述起播时刻,m为正整数。
4.根据权利要求3所述的方法,其特征在于,所述确定出m个候选起播时刻,包括:
从所述直播图像帧序列中确定出h个关键帧的h个缓存时刻;
从所述h个缓存时刻中确定出所述m个候选起播时刻,h为等于或者大于m的正整数。
5.根据权利要求1至4任一所述的方法,其特征在于,所述以所述第一直播图像帧为起点,播放所述直播视频流之后,包括:
响应于从其他窗口切换至直播窗口的切换信号,以第四直播图像帧为衔接点,继续播放所述直播视频流,所述第四直播图像帧是在切换信号的触发时刻上拉取到的直播图像帧。
6.根据权利要求1至4任一所述的方法,其特征在于,所述以所述第一直播图像帧为起点,播放所述直播视频流,包括:
保留所述第一直播图像帧之前的k个直播图像帧,所述k等于或者大于两个相邻关键帧之间的间隔帧数,所述k为正整数;
基于所述k个直播图像帧,以所述第一直播图像帧为起点,播放所述直播视频流,k为正整数。
7.一种直播视频流的播放装置,其特征在于,所述装置包括:
获取模块,用于从内容分发服务器中拉取直播视频流,所述直播视频流中包括直播图像帧序列,所述直播图像帧序列中的直播图像帧携带有缓存时间戳,所述缓存时间戳用于指示所述内容分发服务器缓存所述直播图像帧的时刻;
确定模块,用于响应于所述直播视频流的自动播放功能已启动,基于第一次拉取时刻确定出所述直播视频流的起播时刻;
匹配模块,用于基于所述起播时刻和所述缓存时间戳,在所述直播图像帧序列中确定出与所述起播时刻对应的第一直播图像帧;
播放模块,用于以所述第一直播图像帧为起点,播放所述直播视频流,在校正时刻计算第二直播图像帧与第三直播图像帧之间的延迟时长,所述第二直播图像帧是正在播放的直播图像帧,所述第三直播图像帧是在所述第二直播图像帧的播放时刻上拉取到的直播图像帧;响应于所述延迟时长大于第二预期延迟时长,在所述第二直播图像帧播放后下一个播放时刻,以所述第三直播图像帧为衔接点,继续播放所述直播视频流。
8.一种终端,其特征在于,所述终端包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一所述的直播视频流的播放方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至6任一所述的直播视频流的播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613210.XA CN112822503B (zh) | 2020-12-30 | 2020-12-30 | 直播视频流的播放方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613210.XA CN112822503B (zh) | 2020-12-30 | 2020-12-30 | 直播视频流的播放方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822503A CN112822503A (zh) | 2021-05-18 |
CN112822503B true CN112822503B (zh) | 2022-04-22 |
Family
ID=75856258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011613210.XA Active CN112822503B (zh) | 2020-12-30 | 2020-12-30 | 直播视频流的播放方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822503B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596568B (zh) * | 2021-07-01 | 2023-10-17 | 广州虎牙科技有限公司 | 视频播放方法、装置、智能终端及计算机可读存储介质 |
CN115623230A (zh) * | 2021-07-14 | 2023-01-17 | 腾讯科技(深圳)有限公司 | 直播视频的播放方法、装置、电子设备及存储介质 |
CN113784154B (zh) * | 2021-07-30 | 2022-09-30 | 北京达佳互联信息技术有限公司 | 直播方法、装置、电子设备和计算机可读存储介质 |
CN113645481B (zh) * | 2021-08-23 | 2023-01-24 | 歌尔科技有限公司 | 视频录制方法、摄像设备、控制终端及视频录制系统 |
CN113824985B (zh) * | 2021-09-18 | 2023-08-22 | 北京百度网讯科技有限公司 | 直播拉流方法、装置、设备、存储介质及计算机程序产品 |
CN114339426A (zh) * | 2022-01-11 | 2022-04-12 | 北京易智时代数字科技有限公司 | 一种视频直播编解码转发系统 |
CN114339316A (zh) * | 2022-01-11 | 2022-04-12 | 北京易智时代数字科技有限公司 | 一种基于视频直播的视频流编码处理方法 |
CN114697695B (zh) * | 2022-03-28 | 2024-03-08 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0209674D0 (en) * | 2002-04-27 | 2002-06-05 | Pace Micro Tech Plc | Method of data synchronisation |
EP1510031A4 (en) * | 2002-05-06 | 2009-02-04 | Syncronation Inc | LOCALIZED AUDIO NETWORKS AND ASSOCIATED DIGITAL TOOLS |
JP2005341132A (ja) * | 2004-05-26 | 2005-12-08 | Toshiba Corp | 映像データ処理装置及び処理方法 |
CN107333163A (zh) * | 2017-06-29 | 2017-11-07 | 上海鋆创信息技术有限公司 | 一种视频处理方法及装置、一种终端及存储介质 |
JP6826965B2 (ja) * | 2017-08-31 | 2021-02-10 | 株式会社日立国際電気 | 放送通信システム、放送通信装置及び放送通信方法 |
CN109756749A (zh) * | 2017-11-07 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 视频数据处理方法、装置、服务器和存储介质 |
CN110152293B (zh) * | 2018-02-13 | 2022-07-22 | 腾讯科技(深圳)有限公司 | 操控对象的定位方法及装置、游戏对象的定位方法及装置 |
CN108540819B (zh) * | 2018-04-12 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
CN110392269B (zh) * | 2018-04-17 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 媒体数据处理方法和装置、媒体数据播放方法和装置 |
CN109413469A (zh) * | 2018-08-31 | 2019-03-01 | 北京潘达互娱科技有限公司 | 一种直播连麦延迟控制方法、装置、电子设备及存储介质 |
CN111245680B (zh) * | 2020-01-10 | 2021-10-08 | 腾讯科技(深圳)有限公司 | 检测云游戏响应延迟的方法、装置、系统、终端和服务器 |
CN111918092B (zh) * | 2020-08-12 | 2022-07-01 | 广州繁星互娱信息科技有限公司 | 视频流处理方法、装置、服务器及存储介质 |
-
2020
- 2020-12-30 CN CN202011613210.XA patent/CN112822503B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112822503A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822503B (zh) | 直播视频流的播放方法、装置、设备及存储介质 | |
CN110248204B (zh) | 一种直播缓存的处理方法、装置、设备和存储介质 | |
JP4729570B2 (ja) | トリックモードおよび速度移行 | |
CN109089130B (zh) | 一种调整直播视频的时间戳的方法和装置 | |
US10638192B2 (en) | Live streaming quick start method and system | |
EP3448040A1 (en) | Live broadcast rapid-startup method and system | |
CN111372145B (zh) | 一种多视点视频的视点切换方法和系统 | |
CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
TW201427391A (zh) | 影音串流傳輸方法、影音裝置以及影音提供裝置 | |
CN112822502B (zh) | 直播去抖动的智能缓存与直播方法、设备及存储介质 | |
CN104918123A (zh) | 用于运动视频回放的方法和系统 | |
CN111447455A (zh) | 直播视频流回放处理方法、装置及计算设备 | |
CN109348279A (zh) | 一种推流方法、装置、设备及存储介质 | |
CN112929713A (zh) | 数据同步方法、装置、终端及存储介质 | |
CN108471548B (zh) | 直播视频快速播放方法及装置 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN112788360A (zh) | 直播方法、直播装置与计算机程序产品 | |
CN113852824A (zh) | 视频转码方法、装置、电子设备和存储介质 | |
CN110139128B (zh) | 一种信息处理方法、拦截器、电子设备及存储介质 | |
CN113225585A (zh) | 一种视频清晰度的切换方法、装置、电子设备以及存储介质 | |
CN111107387B (zh) | 视频转码方法、装置及计算机存储介质 | |
CN114245153A (zh) | 切片方法、装置、设备及可读存储介质 | |
EP3661216A1 (en) | A method and apparatus for loop-playing video content | |
US20190387271A1 (en) | Image processing apparatus, image processing method, and program | |
US20220417571A1 (en) | Bandwidth Allocation for Low Latency Content and Buffered Content |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40043549 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |