CN117459799A - 一种视频播放方法、设备及存储介质 - Google Patents
一种视频播放方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117459799A CN117459799A CN202311488078.8A CN202311488078A CN117459799A CN 117459799 A CN117459799 A CN 117459799A CN 202311488078 A CN202311488078 A CN 202311488078A CN 117459799 A CN117459799 A CN 117459799A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- target
- key frame
- file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 abstract description 13
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-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
-
- 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/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/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
-
- 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/47—End-user applications
- H04N21/472—End-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/47217—End-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 controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种视频播放方法、设备及存储介质,涉及视频播放领域,包括:当监测到对目标视频文件的视频播放请求则触发对关键帧列表文件的第一下载事件;若在视频播放过程中监测到进度条拖拽事件则在目标视频文件的视频进度条上确定拖拽结束点;若第一下载事件对应的已下载关键帧列表文件中包含拖拽结束点对应的目标关键帧,则从已下载关键帧列表文件中读取目标关键帧;目标关键帧为目标视频文件中距离拖拽结束点最近且时间戳不大于拖拽结束点时间戳的关键帧;基于目标关键帧触发与进度条拖拽事件对应的目标解码流程以及视频播放操作。本申请在发生进度条拖拽事件时,直接从关键帧列表文件中读取关键帧并解码播放,减少视频缓冲等待时间。
Description
技术领域
本发明涉及视频播放领域,特别涉及一种视频播放方法、设备及存储介质。
背景技术
在视频播放的过程中,不管选择哪种视频格式,每种视频格式都会包含若干个关键帧,由于关键帧中包含了这一帧视频的全部数据,可以独立解码,因此视频解码器只能从关键帧开始解码。如果用户拖动视频进度条,导致发生seek;假设需要seek的点不是关键帧,则需要找到离seek的时间点最近的前一个关键帧,并从这个关键帧开始解码,然后解码到需要seek的点。但是中间包括了两个步骤,第一个步骤是需要从这个最近的关键帧开始下载流媒体数据,并且一直下载用户到seek的时间点;第二个步骤是需要从这个最近的关键帧开始解码,并且一直解码到用户seek的时间点,然后才完成视频缓冲并恢复视频播放,但是该过程容易带来视频缓冲等待时间较长的问题。
发明内容
有鉴于此,本发明的目的在于提供一种视频播放方法、设备及存储介质,能够通过提前下载关键帧列表文件,以在发生进度条拖拽事件时,直接从已下载的关键帧列表文件中读取相应的关键帧并解码播放,减少视频缓冲等待时间,提升用户观看体验感。其具体方案如下:
第一方面,本申请提供了一种视频播放方法,包括:
当监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件;所述关键帧列表文件用于记录所述目标视频文件中的各关键帧;
若在视频播放过程中监测到进度条拖拽事件,则在所述目标视频文件的视频进度条上确定相应的拖拽结束点;
若所述第一下载事件对应的已下载关键帧列表文件中已包含与所述拖拽结束点对应的目标关键帧,则从所述已下载关键帧列表文件中读取所述目标关键帧;所述目标关键帧为所述目标视频文件中的距离所述拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的关键帧;
基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作;所述目标解码流程为以所述目标关键帧为解码起始帧的解码流程。
可选的,所述触发针对关键帧列表文件的第一下载事件之前,还包括:
通过后台服务器对原始视频文件进行编码以得到所述目标视频文件,并基于从所述目标视频文件中提取的各关键帧以及相应的时间戳生成所述关键帧列表文件。
可选的,所述基于从所述目标视频文件中提取的各关键帧以及相应的时间戳生成所述关键帧列表文件,包括:
从所述目标视频文件的所有视频帧中确定当前待解码视频帧;
对所述当前待解码视频帧进行解码,得到所述当前待解码视频帧对应的视频帧描述信息;
基于所述当前待解码视频帧对应的视频帧描述信息确定所述当前待解码视频帧的视频帧类型,若所述当前待解码视频帧的视频帧类型为关键帧,则将所述当前待解码视频帧以及相应的时间戳保存至所述关键帧列表文件;
将所述目标视频文件中的下一视频帧确定为当前待解码视频帧,并重新跳转至所述对所述当前待解码视频帧进行解码的步骤,直到所述目标视频文件中的所有视频帧均完成解码操作。
可选的,所述基于所述当前待解码视频帧对应的视频帧描述信息确定所述当前待解码视频帧的视频帧类型,包括:
基于所述视频帧描述信息中包含的比特位信息确定所述当前待解码视频帧对应的视频帧标识;
若所述当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识相一致,则将所述当前待解码视频帧的视频帧类型确定为关键帧;
若所述当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识不一致,则将所述当前待解码视频帧的视频帧类型确定为非关键帧。
可选的,所述基于所述视频帧描述信息中包含的比特位信息确定所述当前待解码视频帧对应的视频帧标识,包括:
基于预设进制转换规则将所述视频帧描述信息中的与预先指定比特位对应的目标比特位信息进行进制转换处理,以得到所述当前待解码视频帧对应的转换后数值;
将所述当前待解码视频帧对应的转换后数值确定为所述当前待解码视频帧对应的视频帧标识。
可选的,所述当监测到针对目标视频文件的视频播放请求之后,还包括:
触发针对所述目标视频文件的第二下载事件;
相应的,所述基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作,包括:
触发对读取到的所述目标关键帧进行解码的第一解码流程,并对解码后关键帧进行图像显示;
若所述第二下载事件对应的已下载视频帧文件中已包含所述目标关键帧对应的后续视频帧,则触发按照时间戳先后顺序对所述后续视频帧进行依次解码的第二解码流程,并在所述第二解码流程的解码进度达到所述拖拽结束点对应的目标视频帧时进行视频播放。
可选的,所述第一下载事件与所述第二下载事件为通过异步线程触发的事件。
可选的,所述在所述目标视频文件的视频进度条上确定相应的拖拽结束点之后,还包括:
若所述第二下载事件对应的已下载视频帧文件中已包含与所述拖拽结束点对应的目标视频帧,则从所述已下载视频帧文件中确定距离所述拖拽结束点最近并且时间戳小于或等于所述拖拽结束点时间戳的所述目标关键帧;
对所述目标关键帧进行解码,并对所述解码后关键帧进行图像显示;
按照时间戳先后顺序对与所述目标关键帧对应的后续视频帧进行依次解码,并在解码至所述目标视频帧时进行视频播放。
第二方面,本申请提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现前述的视频播放方法。
第三方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的视频播放方法。
本申请中,当监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件;所述关键帧列表文件用于记录所述目标视频文件中的各关键帧;若在视频播放过程中监测到进度条拖拽事件,则在所述目标视频文件的视频进度条上确定相应的拖拽结束点;若所述第一下载事件对应的已下载关键帧列表文件中已包含与所述拖拽结束点对应的目标关键帧,则从所述已下载关键帧列表文件中读取所述目标关键帧;所述目标关键帧为所述目标视频文件中的距离所述拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的关键帧;基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作;所述目标解码流程为以所述目标关键帧为解码起始帧的解码流程。由此可见,本申请在监测到针对目标视频文件的视频播放请求时,便开始对提前生成的记录了目标视频文件中所有关键帧的关键帧列表文件进行下载;以在发生进度条拖拽事件时,可以直接从已下载的关键帧列表文件中找到拖拽结束点对应的目标关键帧,从而直接对目标关键帧进行解码并显示;由于关键帧中包含这一帧视频的全部数据,实时下载关键帧是比较耗时的,因此,通过提前下载关键帧并在需要使用时直接解码,节省了在发生进度条拖拽事件时再去下载关键帧的时间,减少了视频缓冲等待的时间,以及提升了用户的观看体验感。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的视频播放方法所适用的系统框架示意图;
图2为本申请公开的一种视频播放方法流程图;
图3为本申请公开的一种关键帧确定流程图;
图4为本申请公开的一种视频播放流程图;
图5为本申请公开的一种具体的视频播放方法流程图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在视频播放过程中,如果用户拖动视频进度条,导致发生seek;假设需要seek的点不是关键帧,则需要找到离seek的时间点最近的前一个关键帧,并从这个关键帧开始下载并解码,一直下载并解码到需要seek的时间点,完成视频缓冲并恢复视频播放,该过程存在视频缓冲等待时间较长的问题。为此,本申请提供了一种视频播放方法,通过提前下载关键帧列表文件,以在发生进度条拖拽事件时,直接从已下载的关键帧列表文件中读取相应的关键帧并解码播放,减少视频缓冲等待时间,提升用户观看体验感。
本申请的视频播放方法中,采用的系统框架具体可以参见图1所示,具体可以包括:客户端01以及与客户端01建立通信连接的后台服务器02。
本申请中,客户端01用于执行视频播放方法的步骤,包括当监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件;其中,关键帧列表文件用于记录目标视频文件中的各关键帧;若在视频播放过程中监测到进度条拖拽事件,则在目标视频文件的视频进度条上确定相应的拖拽结束点;若第一下载事件对应的已下载关键帧列表文件中已包含与拖拽结束点对应的目标关键帧,则从已下载关键帧列表文件中读取目标关键帧;其中,目标关键帧为目标视频文件中的距离拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的关键帧;基于读取到的目标关键帧触发与进度条拖拽事件对应的目标解码流程以及视频播放操作;其中,目标解码流程为以目标关键帧为解码起始帧的解码流程。
进一步的,当客户端01监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件,以及触发针对目标视频文件的第二下载事件。在此之前,需要先通过后台服务器02预先获取原始视频文件,并对原始视频文件进行编码以得到目标视频文件,然后基于从目标视频文件中提取的各关键帧以及相应的时间戳生成关键帧列表文件。后台服务器02在接收到客户端01发送的下载请求时,将与下载请求对应的目标视频文件以及相应的关键帧列表文件下发至客户端01,也即客户端01从后台服务器02下载目标视频文件以及相应的关键帧列表文件。
参见图2所示,本发明实施例公开了一种视频播放方法,包括:
步骤S11、当监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件;所述关键帧列表文件用于记录所述目标视频文件中的各关键帧。
本实施例中,用户在客户端的交互界面上点击想要观看的视频,同时客户端会通过交互界面中的预设接口获取针对目标视频文件的视频播放请求,而在客户端监测到针对目标视频文件的视频播放请求时,不仅会触发针对用于记录目标视频文件中的所有关键帧的关键帧列表文件的第一下载事件,同时会触发针对目标视频文件的第二下载事件。需要说明的是,针对关键帧列表文件的第一下载事件和针对目标视频文件的第二下载事件是通过异步线程触发的事件,也即对于关键帧列表文件的下载操作以及对于目标视频文件的下载操作可以同时执行。需要说明的是,目标视频文件以及关键帧列表文件均为一边进行视频播放一边进行下载,不需要在视频开始进行播放之前全部下载完成。这样一来,通过异步线程触发针对关键帧列表文件的第一下载事件以及针对目标视频文件的第二下载事件,可以提高文件下载速率,减少视频缓冲等待时间,以及保障流量消耗与视频缓冲等待时间两者之间的平衡。
本实施例中,在触发针对关键帧列表文件的第一下载事件,以及触发针对目标视频文件的第二下载事件之前,需要预先通过后台服务器对原始视频文件进行编码,以得到目标视频文件,并基于从目标视频文件中提取的各关键帧以及相应的时间戳生成关键帧列表文件。可以理解的是,后台服务器提前获取原始视频文件,并对原始视频文件进行编码,从而获取原始视频文件中每一视频帧的信息,例如,每一视频帧的时间戳、视频帧类型等,以得到编码后的目标视频文件。进一步的,后台服务器通过对目标视频文件中的所有关键帧以及相应的时间戳进行提取,以将目标视频文件中的所有关键帧以及相应的时间戳编码成一个单独的关键帧列表文件;并对目标视频文件以及相应的关键帧列表文件进行存储。
其中,基于从目标视频文件中提取的各关键帧以及相应的时间戳生成关键帧列表文件,可以包括:从目标视频文件的所有视频帧中确定当前待解码视频帧;对当前待解码视频帧进行解码,得到当前待解码视频帧对应的视频帧描述信息;基于当前待解码视频帧对应的视频帧描述信息确定当前待解码视频帧的视频帧类型,若当前待解码视频帧的视频帧类型为关键帧,则将当前待解码视频帧以及相应的时间戳保存至关键帧列表文件;将目标视频文件中的下一视频帧确定为当前待解码视频帧,并重新跳转至上述对当前待解码视频帧进行解码的步骤,直到目标视频文件中的所有视频帧均完成解码操作。可以理解的是,如图3所示,后台服务器打开目标视频文件,并先将目标视频文件包含的所有视频帧中的第一个视频帧确定为当前待解码视频帧;对当前待解码视频帧进行解码,可以得到当前待解码视频帧对应的视频帧描述信息;基于当前待解码视频帧对应的视频帧描述信息确定当前待解码视频帧对应的视频帧类型是否为关键帧。若当前待解码视频帧对应的视频帧类型为非关键帧,则将目标视频文件包含的所有视频帧中的下一个视频帧确定为新的当前待解码视频帧,并重新跳转至上述对当前待解码视频帧进行解码的步骤,直至目标视频文件中的所有视频帧均完成解码操作;其中,非关键帧仅包含这一视频帧相对于上一视频帧的差别数据。若当前待解码视频帧对应的视频帧类型为关键帧,则将当前待解码视频帧以及相应的时间戳保存至关键帧列表文件,然后将目标视频文件包含的所有视频帧中的下一个视频帧确定为新的当前待解码视频帧,并重新跳转至上述对当前待解码视频帧进行解码的步骤,直至目标视频文件中的所有视频帧均完成解码操作。
本实施例中,对于触发针对关键帧列表文件的第一下载事件,以及触发针对目标视频文件的第二下载事件,具体包括:客户端发送针对关键帧列表文件的第一下载请求以及针对目标视频文件的第二下载请求至后台服务器。后台服务器在接收到第一下载请求以及第二下载请求之后,将与第一下载请求对应的关键帧列表文件以及与第二下载请求对应的目标视频文件下发至客户端,也即客户端从后台服务器下载目标视频文件以及关键帧列表文件。
步骤S12、若在视频播放过程中监测到进度条拖拽事件,则在所述目标视频文件的视频进度条上确定相应的拖拽结束点。
本实施例中,若在视频播放过程中,用户通过客户端的交互界面进行视频进度条的拖拽操作,也即客户端通过交互界面中的预设接口监测到了进度条拖拽事件,则在进度条拖拽结束时暂停当前视频播放,并在目标视频文件的视频进度条上确定出与进度条拖拽事件对应的拖拽结束点;其中,进度条拖拽事件既可以为进度条前进事件,也可以为进度条后退事件。
需要说明的是,若在视频播放过程中未监测到进度条拖拽事件,则按照时间戳先后顺序对目标视频文件中的视频帧进行下载,并对已下载的视频帧进行解码,以及对解码后的视频帧进行渲染显示。
步骤S13、若所述第一下载事件对应的已下载关键帧列表文件中已包含与所述拖拽结束点对应的目标关键帧,则从所述已下载关键帧列表文件中读取所述目标关键帧;所述目标关键帧为所述目标视频文件中的距离所述拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的关键帧。
本实施例中,在发生进度条拖拽事件之后,若与第二下载事件对应的已下载视频帧文件中不包含拖拽结束点对应的目标视频帧,也即对于目标视频文件的第二下载事件中还未下载拖拽结束点对应的目标视频帧,则从目标视频文件中确定出距离拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的目标关键帧,并判断与第一下载事件对应的已下载关键帧列表文件中是否包含目标关键帧。若与第一下载事件对应的已下载关键帧列表文件中不包含目标关键帧,也即对于关键帧列表文件的第一下载事件中还未下载目标关键帧,则按照时间戳先后顺序对目标视频文件中的目标关键帧以及后续视频帧进行下载和解码操作,并在解码至拖拽结束点对应的目标视频帧时恢复视频播放。若与第一下载事件对应的已下载关键帧列表文件中已包含目标关键帧,则直接从已下载的关键帧列表文件中读取目标关键帧。这样一来,通过直接从已下载的关键帧列表文件中读取距离拖拽结束点最近并且时间戳不大于拖拽结束点时间戳的目标关键帧,可以缓解在发生进度条拖拽事件之后,再去下载关键帧所带来的视频缓冲等待时间较长的问题。
需要说明的是,若与第二下载事件对应的已下载视频帧文件中已包含拖拽结束点对应的目标视频帧,则从已下载视频帧文件中找到距离拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的目标关键帧。然后对目标关键帧进行解码以得到解码后关键帧,并对解码后关键帧进行图像渲染显示,以便用户可以在第一时间看到视频画面变换,提升用户观看体验感。进一步的,按照时间戳先后顺序对与目标关键帧对应的后续视频帧进行解码,并在解码至拖拽结束点对应的目标视频帧时恢复视频播放。
步骤S14、基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作;所述目标解码流程为以所述目标关键帧为解码起始帧的解码流程。
本实施例中,在从第一下载事件对应的已下载关键帧列表文件中读取目标关键帧之后,对读取到的目标关键帧进行解码,并对解码后关键帧进行图像显示。这样一来,当进度条拖拽操作结束时,使得用户可以在第一时间看到视频画面,提升用户的视频观感。进一步的,若与第二下载事件对应的已下载视频帧文件中已包含与目标关键帧对应的后续视频帧,则按照时间戳先后顺序对与目标关键帧对应的后续视频帧进行依次解码,并在解码进度达到拖拽结束点对应的目标视频帧时恢复视频播放。
如图4所示,当监测到针对目标视频文件的视频播放请求时,触发针对关键帧列表文件的第一下载事件,以及触发针对目标视频文件的第二下载事件。若在视频播放过程中监测到进度条拖拽事件,也即监测到发生seek,则暂停当前视频播放,并在目标视频文件的视频进度条上确定相应的拖拽结束点,也即确定当前seek的时间点。然后从目标视频文件中确定距离拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的目标关键帧,并判断与第一下载事件对应的已下载关键帧列表文件中是否包含目标关键帧。若不包含,则按照时间戳先后顺序对目标视频文件中的目标关键帧以及后续视频帧依次进行下载和解码操作,并在解码至拖拽结束点对应的目标视频帧时恢复视频播放。若包含,则从与第一下载事件对应的已下载关键帧列表文件中读取目标关键帧,并对目标关键帧进行解码,以及对解码后关键帧进行图像显示。然后在与第二下载事件对应的已下载视频帧文件中包含与目标关键帧对应的后续视频帧时,按照时间戳先后顺序对与目标关键帧对应的后续视频帧进行依次解码,并在解码进度达到拖拽结束点对应的目标视频帧时恢复视频播放,完成本次seek。
由此可见,本申请在监测到针对目标视频文件的视频播放请求时,便开始对提前生成的记录了目标视频文件中所有关键帧的关键帧列表文件进行下载;以在发生进度条拖拽事件时,可以直接从已下载的关键帧列表文件中找到拖拽结束点对应的目标关键帧,从而直接对目标关键帧进行解码并显示;由于关键帧中包含这一帧视频的全部数据,实时下载关键帧是比较耗时的,因此,通过提前下载关键帧并在需要使用时直接解码,节省了在发生进度条拖拽事件时再去下载关键帧的时间,减少了视频缓冲等待的时间,以及提升了用户的观看体验感。
基于前一实施例可知,本申请描述了在视频播放过程中监测到进度条拖拽事件时,如何快速恢复视频播放的整体过程,接下来,本申请将对如何确定目标视频文件中的视频帧对应的视频帧类型是否为关键帧进行详细阐述。
参见图5所示,本发明实施例公开了一种关键帧确定的过程,包括:
步骤S21、基于视频帧描述信息中包含的比特位信息确定当前待解码视频帧对应的视频帧标识。
本实施例中,在后台服务器对原始视频文件进行H264编码得到目标视频文件的情况下,客户端通过从目标视频文件包含的所有视频帧中确定当前待解码视频帧,并对当前待解码视频帧进行解码,以得到当前待解码视频帧对应的视频帧描述信息,此时的视频帧描述信息即为网络抽象层单元(NAL,Network Abstract Layer);然后客户端基于视频帧描述信息中包含的比特位信息确定当前待解码视频帧对应的视频帧标识。具体的,对视频帧描述信息中的与低五位对应的目标比特位信息进行十进制转换处理,以得到当前待解码视频帧对应的转换后数值,并将当前待解码视频帧对应的转换后数值确定为当前待解码视频帧对应的视频帧标识。
步骤S22、若当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识相一致,则将当前待解码视频帧的视频帧类型确定为关键帧。
本实施例中,通过预先配置关键帧标识为5,若发现当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识“5”相一致,则将当前待解码视频帧对应的视频帧类型确定为关键帧。
步骤S23、若当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识不一致,则将当前待解码视频帧的视频帧类型确定为非关键帧。
本实施例中,若发现当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识“5”不一致,则将当前待解码视频帧对应的视频帧类型确定为非关键帧。需要说明的是,通过其他编码方式得到的视频文件确定视频帧对应的类型是否为关键帧的方法类似。
由此可见,本申请通过从目标视频文件中提取所有关键帧,并基于所有关键帧构建关键帧列表文件,以在监测到针对目标视频文件的视频播放请求时,便开始对关键帧列表文件进行下载;从而在视频播放过程中发生进度条拖拽事件时,可以直接从已下载的关键帧列表文件中找到拖拽结束点对应的目标关键帧,并直接对目标关键帧进行解码以及渲染显示,节省在发生进度条拖拽事件时再去下载关键帧的时间,减少视频缓冲等待的时间,以及提升用户的观看体验感。
进一步的,本申请实施例还公开了一种电子设备,图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的视频播放方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的视频播放方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的视频播放方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种视频播放方法,其特征在于,包括:
当监测到针对目标视频文件的视频播放请求,则触发针对关键帧列表文件的第一下载事件;所述关键帧列表文件用于记录所述目标视频文件中的各关键帧;
若在视频播放过程中监测到进度条拖拽事件,则在所述目标视频文件的视频进度条上确定相应的拖拽结束点;
若所述第一下载事件对应的已下载关键帧列表文件中已包含与所述拖拽结束点对应的目标关键帧,则从所述已下载关键帧列表文件中读取所述目标关键帧;所述目标关键帧为所述目标视频文件中的距离所述拖拽结束点最近并且时间戳小于或等于拖拽结束点时间戳的关键帧;
基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作;所述目标解码流程为以所述目标关键帧为解码起始帧的解码流程。
2.根据权利要求1所述的视频播放方法,其特征在于,所述触发针对关键帧列表文件的第一下载事件之前,还包括:
通过后台服务器对原始视频文件进行编码以得到所述目标视频文件,并基于从所述目标视频文件中提取的各关键帧以及相应的时间戳生成所述关键帧列表文件。
3.根据权利要求2所述的视频播放方法,其特征在于,所述基于从所述目标视频文件中提取的各关键帧以及相应的时间戳生成所述关键帧列表文件,包括:
从所述目标视频文件的所有视频帧中确定当前待解码视频帧;
对所述当前待解码视频帧进行解码,得到所述当前待解码视频帧对应的视频帧描述信息;
基于所述当前待解码视频帧对应的视频帧描述信息确定所述当前待解码视频帧的视频帧类型,若所述当前待解码视频帧的视频帧类型为关键帧,则将所述当前待解码视频帧以及相应的时间戳保存至所述关键帧列表文件;
将所述目标视频文件中的下一视频帧确定为当前待解码视频帧,并重新跳转至所述对所述当前待解码视频帧进行解码的步骤,直到所述目标视频文件中的所有视频帧均完成解码操作。
4.根据权利要求3所述的视频播放方法,其特征在于,所述基于所述当前待解码视频帧对应的视频帧描述信息确定所述当前待解码视频帧的视频帧类型,包括:
基于所述视频帧描述信息中包含的比特位信息确定所述当前待解码视频帧对应的视频帧标识;
若所述当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识相一致,则将所述当前待解码视频帧的视频帧类型确定为关键帧;
若所述当前待解码视频帧对应的视频帧标识与预先配置的关键帧标识不一致,则将所述当前待解码视频帧的视频帧类型确定为非关键帧。
5.根据权利要求4所述的视频播放方法,其特征在于,所述基于所述视频帧描述信息中包含的比特位信息确定所述当前待解码视频帧对应的视频帧标识,包括:
基于预设进制转换规则将所述视频帧描述信息中的与预先指定比特位对应的目标比特位信息进行进制转换处理,以得到所述当前待解码视频帧对应的转换后数值;
将所述当前待解码视频帧对应的转换后数值确定为所述当前待解码视频帧对应的视频帧标识。
6.根据权利要求1至5任一项所述的视频播放方法,其特征在于,所述当监测到针对目标视频文件的视频播放请求之后,还包括:
触发针对所述目标视频文件的第二下载事件;
相应的,所述基于读取到的所述目标关键帧触发与所述进度条拖拽事件对应的目标解码流程以及视频播放操作,包括:
触发对读取到的所述目标关键帧进行解码的第一解码流程,并对解码后关键帧进行图像显示;
若所述第二下载事件对应的已下载视频帧文件中已包含所述目标关键帧对应的后续视频帧,则触发按照时间戳先后顺序对所述后续视频帧进行依次解码的第二解码流程,并在所述第二解码流程的解码进度达到所述拖拽结束点对应的目标视频帧时进行视频播放。
7.根据权利要求6所述的视频播放方法,其特征在于,所述第一下载事件与所述第二下载事件为通过异步线程触发的事件。
8.根据权利要求6所述的视频播放方法,其特征在于,所述在所述目标视频文件的视频进度条上确定相应的拖拽结束点之后,还包括:
若所述第二下载事件对应的已下载视频帧文件中已包含与所述拖拽结束点对应的目标视频帧,则从所述已下载视频帧文件中确定距离所述拖拽结束点最近并且时间戳小于或等于所述拖拽结束点时间戳的所述目标关键帧;
对所述目标关键帧进行解码,并对所述解码后关键帧进行图像显示;
按照时间戳先后顺序对与所述目标关键帧对应的后续视频帧进行依次解码,并在解码至所述目标视频帧时进行视频播放。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的视频播放方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311488078.8A CN117459799A (zh) | 2023-11-09 | 2023-11-09 | 一种视频播放方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311488078.8A CN117459799A (zh) | 2023-11-09 | 2023-11-09 | 一种视频播放方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117459799A true CN117459799A (zh) | 2024-01-26 |
Family
ID=89587234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311488078.8A Pending CN117459799A (zh) | 2023-11-09 | 2023-11-09 | 一种视频播放方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117459799A (zh) |
-
2023
- 2023-11-09 CN CN202311488078.8A patent/CN117459799A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109168078B (zh) | 一种视频清晰度切换方法及装置 | |
CN110557670B (zh) | 在网页页面中播放视频的方法、装置、终端和存储介质 | |
CN103650526A (zh) | 用于实时或近实时流传输的播放列表 | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
CN111316659A (zh) | 动态减少替代内容的播出以帮助使替代内容的结束与被替代内容的结束对准 | |
CN108924582A (zh) | 视频录制方法、计算机可读存储介质及录播系统 | |
CN113225585A (zh) | 一种视频清晰度的切换方法、装置、电子设备以及存储介质 | |
KR20210029829A (ko) | 미디어 스트림 재생들 사이를 트랜지션하는 동안 트랜지션 프레임들의 동적 재생 | |
CN110267100A (zh) | Flv视频的码率切换方法、装置、电子设备及存储介质 | |
CN111866457B (zh) | 监控图像处理方法、电子设备、存储介质及系统 | |
JP2017519406A (ja) | ネットワークビデオ再生方法及び装置 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN107690093B (zh) | 一种视频播放方法及装置 | |
WO2018014545A1 (zh) | 一种码流数据的处理方法及装置 | |
JP4315914B2 (ja) | 画像再生装置及び画像再生方法 | |
CN112235600B (zh) | 视频数据及视频业务请求的处理方法、装置及系统 | |
CN111436009A (zh) | 一种实时视频流传送、显示方法以及传送和播放系统 | |
CN111698261B (zh) | 基于流媒体的视频播放方法、装置、设备及存储介质 | |
CN112291591A (zh) | 一种视频数据回放方法、电子设备和存储介质 | |
CN117459799A (zh) | 一种视频播放方法、设备及存储介质 | |
JP6397341B2 (ja) | 受信装置、バッファ管理方法、及びプログラム | |
CN114285836B (zh) | 一种视频播放方法、装置及介质 | |
CN108833349B (zh) | 实现机会主义的源文件帧预览和帧高速缓存的方法 | |
CN114268830A (zh) | 云导播同步方法、装置、设备及存储介质 | |
CN114827724A (zh) | 视频播放方法以及相关设备 |
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 |