CN112165653B - 一种视频播放方法、装置及设备 - Google Patents

一种视频播放方法、装置及设备 Download PDF

Info

Publication number
CN112165653B
CN112165653B CN202011044667.3A CN202011044667A CN112165653B CN 112165653 B CN112165653 B CN 112165653B CN 202011044667 A CN202011044667 A CN 202011044667A CN 112165653 B CN112165653 B CN 112165653B
Authority
CN
China
Prior art keywords
video
key frame
processed
frame interval
target
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
Application number
CN202011044667.3A
Other languages
English (en)
Other versions
CN112165653A (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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202011044667.3A priority Critical patent/CN112165653B/zh
Publication of CN112165653A publication Critical patent/CN112165653A/zh
Application granted granted Critical
Publication of CN112165653B publication Critical patent/CN112165653B/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • 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
    • 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

一种视频播放方法、装置及设备
技术领域
本说明书实施例涉及视频处理技术领域,特别涉及一种视频播放方法、装置及设备。
背景技术
随着科技的发展,用户目前能够较为方便在各类终端上收看不同类型的视频,例如,用户希望在收看直播时,希望能够回看直播视频,则可以直接发出相应的请求至服务器,由服务器将视频转码或编码后反馈至客户端进行播放。
为了保障视频的传输速率,一般在将视频数据传输至客户端之前,需要对视频数据进行压缩。常用的可以将视频数据转换为关键帧和非关键帧,只有关键帧包含有对应于该帧图像的全部数据,而非关键帧只包含该帧图像与前后图像之间的差异数据。客户端在接收到视频数据之后需要基于关键帧所对应的图像数据对非关键帧的图像进行重构,从而生成相应的视频。
通过将视频数据划分为关键帧和非关键帧,减小了视频数据的容量,提高了视频的传输速率。但是,客户端需要根据关键帧对非关键帧的图像进行处理,进而生成对应的图像。而在不同的客户端具有不同的处理性能以及不同的兼容性的情况下,在获取到视频数据之后,可能会消耗较多的时间用于生成相应的视频,从而在播放视频时产生延迟,影响用户的观看体验。因此,目前亟需一种使得客户端能够流畅播放视频的方法。
发明内容
本说明书实施例的目的是提供一种视频播放方法、装置及设备,以解决如何使得客户端能够流畅地播放视频的问题。
为解决上述技术问题,本说明书实施例提供一种视频播放方法,包括:
接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;
获取所述目标视频标识对应的待处理视频;
判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
若大于,基于所述预设关键帧间隔对所述待处理视频进行编码;
将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
本说明书实施例还提出一种视频播放装置,包括:
视频播放请求接收模块,用于接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;
待处理视频获取模块,用于获取所述目标视频标识对应的待处理视频;
判断模块,用于判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
编码模块,用于在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,基于所述预设关键帧间隔对所述待处理视频进行编码;
目标视频反馈模块,用于将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
本说明书实施例还提出一种服务器,包括存储器和处理器;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述计算机程序指令以实现以下步骤:接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;获取所述目标视频标识对应的待处理视频;判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;若大于,基于所述预设关键帧间隔对所述待处理视频进行编码;将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
为了解决上述技术问题,本说明书实施例还提出一种视频播放方法,包括:
基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;
将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;
播放所述目标视频。
本说明书实施例还提出一种视频播放装置,包括:
视频播放请求生成模块,用于基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;
视频播放请求发送模块,用于将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
目标视频接收模块,用于接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;
目标视频播放模块,用于播放所述目标视频。
本说明书实施例还提出一种客户端,包括存储器和处理器;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述计算机程序指令以实现以下步骤:基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;播放所述目标视频。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,服务器在接收到客户端对于视频的获取请求后,获取对应的待处理视频,并在所述待处理视频中起始关键帧间隔大于预设关键帧间隔时,基于预设关键帧间隔对待处理视频进行编码,使得编码后的待处理视频中的起始关键帧间隔能够缩减至预设关键帧间隔。在关键帧之间的间隔缩小的情况下,客户端所处理的非关键帧的数量也相应的减少,从而加快了客户端生成视频的速度,降低了生成视频的延迟,进而提高了用户的观看体验。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种视频播放系统的结构图;
图2为本说明书实施例一种视频播放方法的流程图;
图3为本说明书实施例一种视频播放方法的流程图;
图4为本说明书实施例一种视频播放方法的流程图;
图5为本说明书实施例一种视频播放装置的模块图;
图6为本说明书实施例一种视频播放装置的模块图;
图7为本说明书实施例一种服务器的结构图;
图8为本说明书实施例一种客户端的结构图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
为了更好地理解本申请的发明构思,首先介绍本说明书实施例一种视频播放系统。如图1所示,所述视频播放系统100包括服务器110和客户端120。
所述服务器可以是单一的服务器,也可以是由多个服务器所构成的服务器集群,或者也可以是具备多个分布式节点的分布式系统等。对于所述服务器的具体类型不限于上述示例,在此不再赘述。
服务器可以用于对视频处理,例如可以对视频进行编码或解码等。相应的,所述服务器中也可以存储有一定的视频数据。所述视频数据可以是能够直接在客户端上进行播放的视频数据,也可以是需要重新进行转码或编码后才能被客户端正常播放的视频数据。所述服务器也可以具备与客户端进行通信的能力,从而能够接受客户端的相应的请求并反馈客户端相应的数据或信息。
客户端可以是用户所使用的设备。例如,所述客户端可以包括但不限于PC机、移动终端、智能穿戴设备等。
所述客户端可以包含有显示屏,从而能够用于播放视频。在一些实施方式中,所述客户端也可以不具备直接播放视频的能力,而是将视频数据传输至其他播放设备中进行播放,对此不做限制。
所述客户端也可以具备一定的视频处理能力,即所述客户端在接收到由关键帧和非关键帧所构成的视频时,可以根据所述关键帧对非关键帧所对应的图像进行补充,从而得到能够用于正常播放的视频。
为了更好地对后续过程中对于视频的处理步骤进行理解,首先介绍对视频进行编码、解码的具体步骤。
视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。
在完成对于视频的编码后,可以将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。常见的封装格式有AVI、FLV、MP4、MOV。具体的封装格式与编码格式的对应关系在此不再赘述。
但是,由于不同的视频播放器具备不同的视频处理能力,因此,在对视频进行播放之前,可能需要对视频进行转码,即将视频的封装格式由一种转换为另一种,或将视频的编码格式由一种转换为另一种。
而在对视频进行传输的过程中,若将视频中的每一帧都按照原始的完整图像数据进行传输,虽然保证了传输的视频数据的完整性和视频本身的清晰度,但所传输的视频数据的容量会比较大,从而影响视频的码率,在网络传输带宽较小的情况下容易造成视频即时播放的卡顿,因此,在传输视频之前,一般需要对视频本身进行压缩。
目前较为常用的视频压缩方法主要是将视频划分为I帧、P帧和B帧。
其中I帧即为关键帧,包含一帧画面的全部数据。客户端在对视频进行解码时只需获取本帧数据即为获取该镇对应的完整画面。
P帧对应的数据中记载的是该帧与前一帧之间的差别,在解码时只需获取到之前所缓存的前一帧的画面再叠加上这两帧视频数据之间的差异,即可获取对应于该帧的最终画面。
B帧为双向差别帧,所记录的是本帧与前后帧之间的差别。在解码B帧时,不仅需要获取之前缓存的画面,还需要获取解码之后的画面。B帧具有最高的压缩率,但在解码时对于播放器的解码性能以及客户端的处理器性能也具有较高的要求。
在编码后的视频中,若关键帧越少,则视频的传输速率也会越高,但是相应的,客户端解码视频所消耗的时间也会越多。在关键帧之间的间隔过大时,由于播放器在解码P帧时需要获取到前后帧的差别,因此会使得对于视频的开始片段的解码消耗大量的时间,严重影响了用户的观看体验。
因此,为了解决上述技术问题,基于上述视频播放系统,介绍本说明书实施例一种视频播放方法。所述视频播放方法的执行主体为所述视频播放系统。如图2所示,所述视频播放方法可以包括以下具体实施步骤。
S210:客户端接收用户的播放指令。
播放指令可以是用于下达的用于收看特定视频的指令,即所述播放指令对应于特定的视频内容。客户端通过所述播放指令可以确定对应的视频标签,从而根据所述播放指令向服务器发送相应的视频播放请求。
所述播放指令可以用户直接通过客户端进行发送的,也可以是通过其它设备转发至所述客户端的指令。
具体的下达所述播放指令的方式可以根据客户端的具体情况进行设置,利用用户可以是移动光标至对应的视频标签上进行点击,或者可以是用户触摸显示屏上对应的视频标签,也可以是用户直接发出相应的语音指令用于观看相应的视频。实际应用中对于所述播放指令以及播放指令的下达方式可以根据具体应用的需求进行设置,并不限于上述示例,在此不再赘述。
S220:客户端基于所述播放指令生成视频播放请求。
客户端在接收到所述播放指令之后,即可根据所述播放指令生成相应的视频播放请求。所述视频播放请求用于从服务器处获取对应的目标视频,从而能够播放对应的目标视频。
所述视频播放请求中可以包含有目标视频标识。所述目标视频标识可以对应于所述播放指令所指示的视频。服务器在接收到所述视频播放请求之后,即可从所述视频播放请求中获取相应的目标视频标识,进而根据所述目标视频标识生成相应的目标视频以反馈至所述客户端。
S230:客户端将所述视频播放请求发送至服务器。
在所述客户端生成所述视频播放请求后,即可将所述视频播放请求发送至服务器,以使所述服务器能够根据所述视频播放请求生成对应的可供所述客户端播放的视频。
具体的发送所述资源分配请求的方式可以根据实际应用的需求进行设置,例如可以是有线或无线的传输方式,在此不再赘述。
S240:服务器获取目标视频标识对应的待处理视频。
服务器在接收到所述视频播放请求后,可以从所述视频播放请求中解析出相应的目标视频标识,从而能够获取对应于所述目标视频标识的视频。所述待处理视频可以是存储在所述服务器中的视频数据,也可以是存储在对应于所述服务器的数据库中的视频数据,所述服务器根据目标视频标识可以获取到对应的待处理视频。
具体的,可以是所述服务器利用数据表记录不同的目标视频标识与所存储的视频之间的对应关系,确定所述目标视频标识所对应的具体视频,从而获取到对应的视频,并将所获取的视频作为待处理视频。
实际应用中可以根据相应的需求获取到所述目标视频标识所对应的待处理视频,并不限于上述示例,在此不再赘述。
在一些实施方式中,所述待处理视频可以是直播视频,即用户在收看直播时,希望能够对直播视频进行回看,则需要将所述直播视频进行编码或转码,从而获取到对应的点播视频并转发至用户。
S250:服务器判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔。
服务器在获取到所述待处理视频之后,可以获取所述待处理视频的起始关键帧间隔。所述起始关键帧间隔是所述待处理视频的起始的两个关键帧之间的视频帧数量,即为所述待处理视频的第一个关键帧与第二个关键帧之间的非关键帧的数量。
由于在对视频进行解码时,对于P帧的解码最消耗时间,因此还未解码的视频的前两个关键帧之间的间距对视频解码的速率影响最大。因此可以根据所述起始关键帧间隔判断客户端在解码视频时是否具备较为明显的延迟。
所述预设关键帧间隔用于表示一个固定的视频帧的数量,即可以用于限定起始关键帧间隔的最大值。当所述起始关键帧间隔大于所述预设关键帧间隔时,客户端在对视频进行解码时可能就需要花费较多的时间。
在一些实施方式中,所述预设关键帧间隔可以是在获取到所述视频播放请求中的分辨率信息后,基于所述分辨率信息和对应于所述客户端的带宽信息确定对应于所述客户端的预设关键帧间隔。所述分辨率信息可以用于表示关键帧的大小,从而大体上衡量压缩后的视频的大小,所述带宽信息可以用于表示所述客户端传输或接收数据的速率。根据所述分辨率信息和所述带宽信息可以确定在一定时间内客户端能够接收到的数据量。根据所述数据量可以确定所述客户端在不具备明显延迟的情况下对视频进行解码时起始的两个关键帧之间的间距。
在一些实施方式中,服务器在获取到待处理视频之后,可以先依次提取所述待处理视频个的视频帧,并对所提取的视频帧进行解码。
若无法提取待处理视频中的视频帧,可以从所述待处理视频中去除无法提取的视频帧。相应的,若无法对所提取的视频帧进行解码,也可以从所述待处理视频中去除无法解码的视频帧。
由于待处理视频中可能存在一定的冗余数据,客户端在解码视频时,这些冗余数据对于视频的展示没有做出贡献,还会降低视频解码的效率,因此,在对所述待处理视频进行处理之前,服务器可以先通过对视频帧的提取和解码来判断视频帧是否为冗余数据,从而能够预先在待处理视频中去除相应的冗余数据,提高客户端解码视频的速率,进而提高了用户的观看体验。
在一些实施方式中,服务器在获取到待处理视频之后,可以先判断所述待处理视频是否音频编码格式为ACC格式且视频编码格式为H.264格式,相应的,在所述待处理视频的音频编码格式为ACC格式且视频编码格式为H.264格式的情况下,执行判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔的步骤。
若所述待处理视频的音频编码格式不为ACC格式或视频编码格式不为H.264格式,反馈视频获取失败信息至所述客户端。
由于一般情况下,用户所收看的点播视频的音视频格式分别为ACC格式和H.264格式,若所述待处理视频的音频编码格式不为ACC格式或视频编码格式不为H.264格式,则需要对所述待处理视频进行重新编码,从而需要消耗大量的时间,无法通过对待处理视频进行简单的封装或转码来生成相应的目标视频,因此可以反馈视频获取失败信息至客户端表示无法直接生成相应的目标视频。
在一些实施方式中,若所述待处理视频的音视频格式不满足上述要求,也可以对所述待处理视频进行重新编码或将所述待处理视频转发至其他具备相应的处理能力的设备进行处理,并将处理完毕的视频转发至所述客户端。具体的处理方式在此不再赘述。
S260:若大于,服务器基于所述预设关键帧间隔对所述待处理视频进行编码。
若所述起始关键帧间隔大于所述预设关键帧间隔,则需要对所述待处理视频进行编码。具体的,可以是基于所述预设关键帧间隔对所述待处理视频进行编码,以使编码后的待处理视频的起始关键帧间隔等于所述预设关键帧间隔。
在一些实施方式中,对所述待处理视频进行编码的方式可以是确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧,并将所述待处理视频帧编码为补充关键帧。
利用一个具体的示例进行说明,假设所述待处理视频的第一个视频帧为关键帧,第二个关键帧是所述待处理视频的第二十个视频帧,而预设关键帧间隔为10。所述待处理视频的起始关键帧间隔为18,大于所述预设关键帧间隔。因此,可以将所述待处理视频的第12个视频帧编码为关键帧,以使所述待处理视频满足所述预设关键帧间隔的需求。
在获取到所述补充关键帧之后,还可以基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码。由于非关键帧是基于之前的视频帧或前后的视频帧进行解码的,因此,在调整关键帧之后,也需要针对调整后的视频帧重新进行编码,以使所述客户端在接收到目标视频时能够正常对视频进行解码。
在只针对起始关键帧之间的视频帧进行编码的情况下,减少了需要进行编码的视频帧的数量,不仅无需对视频进行重新编码,也加快了对视频进行处理的速率,从而能够降低用户获取视频的延时,提高了用户的使用体验。
在一些实施方式中,经过步骤S250中的判断之后,所述待处理视频的起始关键帧间隔也可以不大于所述预设关键帧间隔,则客户端在对所述待处理视频进行解码时可能并不会对视频的解码速率造成较为明显的影响。因此,在所述待处理视频的起始关键帧间隔不大于所述预设关键帧间隔的情况下,可以直接将所述待处理视频反馈至所述客户端,以使所述客户端直接播放所述待处理视频。具体的播放所述待处理视频的方式可以参考步骤S280中的说明,在此不再赘述。
S270:服务器将编码后的待处理视频作为目标视频反馈至客户端。
服务器在对待处理视频进行编码后,编码后的待处理视频即可符合客户端解码视频的速率情况,因此可以将所述待处理视频作为目标视频反馈至客户端。
具体的反馈视频的方式可以根据实际应用的情况进行调整,例如可以是有线或无线的传输方式,在此不再赘述。
S280:客户端播放所述目标视频。
客户端在获取所述目标视频之后,即可播放所述目标视频。由于所传输的目标视频一般仅为视频数据,而并不包含各帧画面所对应的完整内容,因此可以首先对所述目标视频进行解码,例如通过关键帧或补全后的非关键帧的数据对未补全的非关键帧的数据进行补全,最终获得各帧的完整图像数据。
实际应用中播放所述目标视频的方式可以根据实际需求进行调整,并不限于上述示例,在此不再赘述。
具体的所述客户端对所述目标视频的播放方式可以根据实际应用的需求进行设置,并不限于上述示例,在此不再赘述。
通过上述视频播放方法的实施例,可以看出,服务器在接收到客户端对于视频的获取请求后,获取对应的待处理视频,并在所述待处理视频中起始关键帧间隔大于预设关键帧间隔时,基于预设关键帧间隔对待处理视频进行编码,使得编码后的待处理视频中的起始关键帧间隔能够缩减至预设关键帧间隔。在关键帧之间的间隔缩小的情况下,客户端所处理的非关键帧的数量也相应的减少,从而加快了客户端生成视频的速度,降低了生成视频的延迟,进而提高了用户的观看体验。
基于图2所对应的视频播放方法,介绍本说明书实施例另一种视频播放方法。所述视频播放方法的执行主体为所述服务器。如图3所示,所述视频播放方法可以包括以下具体实施步骤。
S310:接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识。
对于该步骤的具体描述可以参考步骤S210、S220、S230中的说明,在此不再赘述。
S320:获取所述目标视频标识对应的待处理视频。
对于该步骤的具体描述可以参考步骤S240中的说明,在此不再赘述。
S330:判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量。
对于该步骤的具体描述可以参考步骤S250中的说明,在此不再赘述。
S340:若大于,基于所述预设关键帧间隔对所述待处理视频进行编码。
对于该步骤的具体描述可以参考步骤S260中的说明,在此不再赘述。
S350:将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
对于该步骤的具体描述可以参考步骤S270、S280中的说明,在此不再赘述。
基于图2所对应的视频播放方法,介绍本说明书实施例另一种视频播放方法。所述视频播放方法的执行主体为所述客户端。如图4所示,所述视频播放方法可以包括以下具体实施步骤。
S410:基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识。
对于该步骤的具体描述可以参考步骤S210、S220中的说明,在此不再赘述。
S420:将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量。
对于该步骤的具体描述可以参考步骤S230、S240、S250中的说明,在此不再赘述。
S430:接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频。
对于该步骤的具体描述可以参考步骤S260、S270中的说明,在此不再赘述。
S440:播放所述目标视频。
对于该步骤的具体描述可以参考步骤S280中的说明,在此不再赘述。
基于图3所对应的视频播放方法,介绍本说明书实施例一种视频播放装置。所述视频播放装置设置于所述服务器。如图5所示,所述视频播放装置包括以下模块。
视频播放请求接收模块510,用于接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;
待处理视频获取模块520,用于获取所述目标视频标识对应的待处理视频;
判断模块530,用于判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
编码模块540,用于在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,基于所述预设关键帧间隔对所述待处理视频进行编码;
目标视频反馈模块550,用于将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
基于图4所对应的视频播放方法,介绍本说明书实施例一种视频播放装置。所述视频播放装置设置于所述客户端。如图6所示,所述视频播放装置包括以下模块。
视频播放请求生成模块610,用于基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;
视频播放请求发送模块620,用于将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
目标视频接收模块630,用于接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;
目标视频播放模块640,用于播放所述目标视频。
基于图3所对应的视频播放方法,本说明书实施例提供一种服务器。如图7所示,所述服务器可以包括存储器和处理器。
在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机程序指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机程序指令实现以下步骤:接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;获取所述目标视频标识对应的待处理视频;判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;若大于,基于所述预设关键帧间隔对所述待处理视频进行编码;将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
基于图4所对应的视频播放方法,本说明书实施例提供一种客户端。如图8所示,所述客户端可以包括存储器和处理器。
在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机程序指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机程序指令实现以下步骤:基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;播放所述目标视频。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的第一硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多第一或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (14)

1.一种视频播放方法,其特征在于,包括:
接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;
获取所述目标视频标识对应的待处理视频;
判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
若大于,基于所述预设关键帧间隔对所述待处理视频进行编码;所述基于所述预设关键帧间隔对所述待处理视频进行编码,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;
将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
2.如权利要求1所述的方法,其特征在于,所述待处理视频包括直播视频;相应的,所述目标视频包括点播视频。
3.如权利要求1所述的方法,其特征在于,所述预设关键帧间隔通过以下方式确定:
获取所述视频播放请求中的分辨率信息;
基于所述分辨率信息和对应于所述客户端的带宽信息确定对应于所述客户端的预设关键帧间隔。
4.如权利要求1所述的方法,其特征在于,所述获取所述目标视频标识对应的待处理视频之后,还包括:
判断所述待处理视频是否音频编码格式为ACC格式且视频编码格式为H.264格式;
相应的,所述判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔,包括:
在所述待处理视频的音频编码格式为ACC格式且视频编码格式为H.264格式的情况下,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔。
5.如权利要求4所述的方法,其特征在于,所述判断所述待处理视频是否音频编码格式为ACC格式且视频编码格式为H.264格式之后,还包括:
在所述待处理视频的音频编码格式不为ACC格式或视频编码格式不为H.264格式,反馈视频获取失败信息至所述客户端。
6.如权利要求1所述的方法,其特征在于,所述判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔之前,还包括:
依次提取所述待处理视频中的视频帧;
对所提取的视频帧进行解码。
7.如权利要求6所述的方法,其特征在于,所述依次提取所述待处理视频中的视频帧,包括:
若无法提取待处理视频中的视频帧,从所述待处理视频中去除无法提取的视频帧;
相应的,所述对所提取的视频帧进行解码,包括:
若无法对所提取的视频帧进行解码,从所述待处理视频中去除无法解码的视频帧。
8.如权利要求1所述的方法,其特征在于,所述判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔之后,还包括:
若不大于,将所述待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
9.一种视频播放装置,其特征在于,包括:
视频播放请求接收模块,用于接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;
待处理视频获取模块,用于获取所述目标视频标识对应的待处理视频;
判断模块,用于判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
编码模块,用于在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,基于所述预设关键帧间隔对所述待处理视频进行编码;所述基于所述预设关键帧间隔对所述待处理视频进行编码,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;
目标视频反馈模块,用于将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
10.一种服务器,包括存储器和处理器;
所述存储器,用于存储计算机程序指令;
所述处理器,用于执行所述计算机程序指令以实现以下步骤:接收客户端发送的视频播放请求;所述视频播放请求包含有目标视频标识;获取所述目标视频标识对应的待处理视频;判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;若大于,基于所述预设关键帧间隔对所述待处理视频进行编码;所述基于所述预设关键帧间隔对所述待处理视频进行编码,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;将编码后的待处理视频作为目标视频反馈至客户端以使所述客户端播放所述目标视频。
11.一种视频播放方法,其特征在于,包括:
基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;
将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;所述基于预设关键帧间隔对待处理视频进行编码后的视频,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;
播放所述目标视频。
12.如权利要求11所述的方法,其特征在于,所述将所述视频播放请求发送至服务器之后,还包括:
在所述待处理视频的起始关键帧间隔不大于预设关键帧间隔的情况下,接收所述服务器反馈的待处理视频;
播放所述待处理视频。
13.一种视频播放装置,其特征在于,包括:
视频播放请求生成模块,用于基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;
视频播放请求发送模块,用于将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;
目标视频接收模块,用于接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;所述基于预设关键帧间隔对待处理视频进行编码后的视频,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;
目标视频播放模块,用于播放所述目标视频。
14.一种客户端,包括存储器和处理器;
所述存储器,用于存储计算机程序指令;
所述处理器,用于执行所述计算机程序指令以实现以下步骤:基于用户的播放指令,生成视频播放请求;所述视频播放请求中包含所述播放指令对应的目标视频标识;将所述视频播放请求发送至服务器,以使所述服务器获取所述目标视频标识对应的待处理视频后,判断所述待处理视频的起始关键帧间隔是否大于预设关键帧间隔;所述起始关键帧间隔包括所述待处理视频起始的两个关键帧之间的视频帧数量;接收服务器反馈的目标视频;所述目标视频包括在所述待处理视频的起始关键帧间隔大于预设关键帧间隔的情况下,所述服务器基于预设关键帧间隔对待处理视频进行编码后的视频;所述基于预设关键帧间隔对待处理视频进行编码后的视频,包括:确定与所述待处理视频的第一个关键帧间隔所述预设关键帧间隔的待处理视频帧;将所述待处理视频帧编码为补充关键帧;基于所述补充关键帧,对补充关键帧与补充关键帧的下一个关键帧之间的非关键帧进行编码;播放所述目标视频。
CN202011044667.3A 2020-09-28 2020-09-28 一种视频播放方法、装置及设备 Active CN112165653B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011044667.3A CN112165653B (zh) 2020-09-28 2020-09-28 一种视频播放方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011044667.3A CN112165653B (zh) 2020-09-28 2020-09-28 一种视频播放方法、装置及设备

Publications (2)

Publication Number Publication Date
CN112165653A CN112165653A (zh) 2021-01-01
CN112165653B true CN112165653B (zh) 2022-04-15

Family

ID=73861813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011044667.3A Active CN112165653B (zh) 2020-09-28 2020-09-28 一种视频播放方法、装置及设备

Country Status (1)

Country Link
CN (1) CN112165653B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395589B (zh) * 2021-06-11 2023-02-10 深圳万兴软件有限公司 视频文件播放方法、装置、计算机设备及存储介质
CN115529474A (zh) * 2021-06-24 2022-12-27 北京金山云网络技术有限公司 一种全景视频的传输方法、装置、电子设备及存储介质
CN114466224B (zh) * 2022-01-26 2024-04-16 广州繁星互娱信息科技有限公司 视频数据的编解码方法和装置、存储介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383959B (zh) * 2008-10-23 2012-01-11 中兴通讯股份有限公司 流媒体业务中获取关键帧的方法、系统及用户设备
US9106887B1 (en) * 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth
CN106937141A (zh) * 2017-03-24 2017-07-07 北京奇艺世纪科技有限公司 一种码流切换方法及装置
CN110062262B (zh) * 2019-04-12 2022-05-03 北京字节跳动网络技术有限公司 视频数据的转码控制方法、装置、电子设备和存储介质
CN110662044B (zh) * 2019-10-22 2022-02-18 浙江大华技术股份有限公司 一种视频编码方法、视频编码装置及计算机存储介质

Also Published As

Publication number Publication date
CN112165653A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN112165653B (zh) 一种视频播放方法、装置及设备
US10171541B2 (en) Methods, devices, and computer programs for improving coding of media presentation description data
CN107634930B (zh) 一种媒体数据的获取方法和装置
WO2017063399A1 (zh) 一种视频播放方法和装置
WO2019024919A1 (zh) 视频转码方法及其装置、服务器、可读存储介质
US11700419B2 (en) Re-encoding predicted picture frames in live video stream applications
US10965969B2 (en) Method and apparatus for playing online television program
US10819951B2 (en) Recording video from a bitstream
US9877056B1 (en) Compressed media with still images selected from a video stream
CN112954457A (zh) 视频播放显示方法、装置和系统
CN113225585A (zh) 一种视频清晰度的切换方法、装置、电子设备以及存储介质
CN111343504B (zh) 视频处理方法、装置、计算机设备和存储介质
CN111935500A (zh) 视频解码方法、装置及电子设备
CN116600169A (zh) 媒体文件的预加载方法、装置、电子设备及存储介质
CN113079386B (zh) 一种视频在线播放方法、装置、电子设备及存储介质
US11621991B2 (en) Adaptive content streaming based on bandwidth
CN112954396B (zh) 视频的播放方法、装置、电子设备及计算机可读存储介质
US10547878B2 (en) Hybrid transmission protocol
CN112073727A (zh) 转码方法、装置、电子设备及存储介质
CN108989905B (zh) 媒体流控制方法、装置、计算设备及存储介质
CN112449213A (zh) 一种基于FFmpeg实现的HLS切片服务方案
CN113364728B (zh) 媒体内容接收方法、装置、存储介质和计算机设备
US20230224557A1 (en) Auxiliary mpds for mpeg dash to support prerolls, midrolls and endrolls with stacking properties
JP2003299106A (ja) マルチメディア・コンテンツの処理を行う方法
US20220272394A1 (en) Systems and methods for improved adaptive video streaming

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