CN112929755B - 进度拖动过程中的视频文件播放方法及装置 - Google Patents
进度拖动过程中的视频文件播放方法及装置 Download PDFInfo
- Publication number
- CN112929755B CN112929755B CN202110082632.7A CN202110082632A CN112929755B CN 112929755 B CN112929755 B CN 112929755B CN 202110082632 A CN202110082632 A CN 202110082632A CN 112929755 B CN112929755 B CN 112929755B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- time
- decoding
- pixel data
- 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/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/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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- 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/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/482—End-user interface for program selection
- H04N21/4825—End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
Abstract
本发明公开了一种进度拖动过程中的视频文件播放方法、介质、设备及装置,其中方法包括:对视频文件中的视频帧进行解码,并将得到的帧像素数据缓存至第一缓存队列;根据拖动指令获取对应的目标时间;判断该第一缓存队列中是否存储有目标时间对应的帧像素数据;如果否,则获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取目标时间对应的第一关键帧时间和当前视频帧时间对应的第二关键帧时间;判断是否一致;如果是,则视频流渲染线程进入等待状态,并在第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;能够避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
Description
技术领域
本发明涉及播放器控制技术领域,特别涉及一种进度拖动过程中的视频文件播放方法、一种计算机可读存储介质、一种计算机设备以及一种极度拖动过程中的视频文件播放装置。
背景技术
在播放器对视频进行播放的过程中,用户经常会根据需要对当前视频帧进行跳过,以快进到自己想要观看的视频帧,或者,快退到播放过的视频帧;而这些操作,往往都是通过拖动的方式实现的。
相关技术中,在用户进行进度拖动时,均需要进行查找逻辑;即言,每一次用户拖动都需要进行相应关键帧的查找,并根据关键帧进行目标视频帧的解码;导致视频帧同步更新较慢,无法进行画面的实时更新。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种进度拖动过程中的视频文件播放方法,能够避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种进度拖动过程中的视频文件播放装置。
为达到上述目的,本发明第一方面实施例提出了一种进度拖动过程中的视频文件播放方法,包括以下步骤:获取用户发送的视频文件,并通过视频流解码线程对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据;如果所述第一缓存队列中不存在目标时间对应的帧像素数据,则根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;判断所述第一关键帧时间与所述第二关键帧时间是否一致;如果是,则所述视频流渲染线程进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染。
根据本发明实施例的进度拖动过程中的视频文件播放方法,首先,获取用户发送的视频文件,并通过视频流解码线程对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;接着,在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;然后,根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据;接着,如果所述第一缓存队列中不存在目标时间对应的帧像素数据,则根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;然后,判断所述第一关键帧时间与所述第二关键帧时间是否一致;接着,如果是,则所述视频流渲染线程进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
另外,根据本发明上述实施例提出的进度拖动过程中的视频文件播放方法还可以具有如下附加的技术特征:
可选地,如果所述第一缓存队列中存在目标时间对应的帧像素数据,则视频流渲染线程获取该帧像素数据,并根据该帧像素数据对目标时间对应的视频帧进行渲染。
可选地,如果所述第一关键帧时间与所述第二关键帧时间不一致,则所述视频流渲染线程生成查找指令,其中,所述查找指令包括第一关键帧时间。
可选地,通过视频流解码线程对所述视频文件进行解码,以及将解码后的帧像素数据缓存至第一缓存队列,包括:所述视频流解码线程遍历视频关键帧列表,以便根据所述关键帧列表进行视频帧的解码;判断当前是否存在查找指令;如果是,则清空第一缓存队列,并根据所述查找指令中的第一关键帧时间查找对应的第一关键帧;根据所述第一关键帧进行下一视频帧的解码,并在解码结束后将该下一视频帧存储到第一缓存队列,以及在存储完毕后根据该下一视频帧的播放时间更新所述当前视频帧时间。
可选地,在视频的播放过程中,通过音频流解码线程对音频帧进行解码,并将解码得到的音频数据存储到第二缓存队列;通过音频流播放线程获取所述第二缓存队列中存储的音频数据,并对所述音频数据进行播放。
可选地,通过所述音频流解码线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间,以及根据所述目标时间获取对应的音频帧。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有进度拖动过程中的视频文件播放程序,该进度拖动过程中的视频文件播放程序被处理器执行时实现如上述的进度拖动过程中的视频文件播放方法。
根据本发明实施例的计算机可读存储介质,通过存储进度拖动过程中的视频文件播放程序,以使得处理器在执行该进度拖动过程中的视频文件播放程序时,实现如上述的进度拖动过程中的视频文件播放方法;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了实现上述实施例,本发明实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如上述的进度拖动过程中的视频文件播放方法。
根据本发明实施例的计算机设备,通过存储器对进度拖动过程中的视频文件播放程序进行存储,以使得处理器在执行该进度拖动过程中的视频文件播放程序时,实现如上述的进度拖动过程中的视频文件播放方法;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了实现上述实施例,本发明实施例提出了一种进度拖动过程中的视频文件播放装置,包括:获取模块,所述获取模块用于获取用户发送的视频文件;视频流解码模块,所述视频流解码模块用于对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;视频流渲染模块,所述视频流渲染模块用于在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;所述视频流渲染模块还用于根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据,并在所述第一缓存队列中不存在目标时间对应的帧像素数据时,根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;所述视频流渲染模块判断所述第一关键帧时间与所述第二关键帧时间是否一致,如果一致,则进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染。
根据本发明实施例的进度拖动过程中的视频文件播放装置,通过设置获取模块用于获取用户发送的视频文件;视频流解码模块用于对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;视频流渲染模块用于在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;视频流渲染模块还用于根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据,并在所述第一缓存队列中不存在目标时间对应的帧像素数据时,根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;视频流渲染模块判断所述第一关键帧时间与所述第二关键帧时间是否一致,如果一致,则进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
另外,根据本发明上述实施例提出的进度拖动过程中的视频文件播放装置还可以具有如下附加的技术特征:
可选地,如果所述第一缓存队列中存在目标时间对应的帧像素数据,则视频流渲染线程获取该帧像素数据,并根据该帧像素数据对目标时间对应的视频帧进行渲染。
附图说明
图1为根据本发明实施例的进度拖动过程中的视频文件播放方法的流程示意图;
图2为根据本发明实施例的视频流解码线程的解码流程示意图;
图3为根据本发明实施例的进度拖动过程中的视频文件播放装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
相关技术中,在用户进行进度拖动时,视频帧同步更新较慢,无法进行画面的实时更新;根据本发明实施例的进度拖动过程中的视频文件播放方法,首先,获取用户发送的视频文件,并通过视频流解码线程对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;接着,在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;然后,根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据;接着,如果所述第一缓存队列中不存在目标时间对应的帧像素数据,则根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;然后,判断所述第一关键帧时间与所述第二关键帧时间是否一致;接着,如果是,则所述视频流渲染线程进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为根据本发明实施例的进度拖动过程中的视频文件播放方法的流程示意图;如图1所述,该进度拖动过程中的视频文件播放方法包括以下步骤:
S101,获取用户发送的视频文件,并通过视频流解码线程对视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列。
即言,获取用户发送的视频文件,然后,通过视频流解码线程对该视频文件中的视频帧进行解码,视频帧解码完成后,可以获得该视频帧对应的帧像素数据,将该帧像素数据缓存到第一缓存队列中。
作为一种示例,在获取到用户要播放的视频文件之后,首先,启动视频流解码线程,并对视频解码器进行初始化;接着,视频解码器遍历视频关键帧列表(可以理解,在视频压缩技术中,视频帧包括关键帧、预测帧和双向预测帧;其中,关键帧是全帧压缩编码帧;预测帧是通过充分降低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,预测帧以关键帧作为参考帧,可以得到完整的视频帧;双向预测帧是既考虑与源图像序列前面已编码帧,也顾忌源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像);并根据关键帧进行对应的下一视频帧的解码,以及在解码完成之后,将得到的帧像素数据缓存至第一缓存队列;其中,在缓存完成之后,视频解码器可以对当前视频帧时间进行更新,以标识当前视频解码器的工作状态。
S102,在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据拖动指令获取该拖动行为对应的目标时间。
也就是说,在根据用户所选择的视频文件进行视频播放的过程中,用户可以根据自身的需要进行快进或者快退的操作,而在进行快进或者快退时,用户通过拖动的行为来发起拖动指令;此时,视频流渲染线程获取用户的拖动指令,并根据拖动指令获取该拖动行为对应的目标时间,该目标时间即为用户快进或快退的目标视频帧的时间。
S103,根据目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有目标时间对应的帧像素数据。
即言,在获取到目标时间之后,首先根据目标时间对第一缓存队列进行查询,以判断该第一缓存队列中是否存储有目标时间对应的帧像素数据;如果是,则对该第一缓存队列中存储的目标时间对应的帧像素数据进行获取,以根据该帧像素数据对目标时间对应的视频帧进行渲染;而非根据目标时间进行关键帧的获取,再根据该关键帧进行解码,以获取目标时间对应的视频帧;从而,可以避免重复地进行视频帧的解码行为,提高用户拖动过程中,视频帧的同步效率。
S104,如果第一缓存队列中不存在目标时间对应的帧像素数据,则根据拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取目标时间对应的第一关键帧时间和当前视频帧时间对应的第二关键帧时间。
S105,判断第一关键帧时间与第二关键帧时间是否一致。
S106,如果是,则视频流渲染线程进入等待状态,并在第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染。
可以理解,如果第一缓存队列中不存在目标时间对应的帧像素数据,则表示视频解码器当前正在解码的行为所依据的关键帧与目标时间对应的关键帧不同;或者,视频解码器当前正在解码的行为所依据的关键帧与目标时间对应的关键帧相同,可是,按其解码顺序还未解码到目标时间对应的视频帧;因此,首先,根据拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取目标时间对应的第一关键帧时间和当前视频帧时间对应的第二关键帧时间;接着,判断第一关键帧时间与第二关键帧时间是否一致;如果一致,则表示视频解码器当前正在解码的行为所依据的关键帧与目标时间对应的关键帧相同,可是,按其解码顺序还未解码到目标时间对应的视频帧;进而,视频流渲染线程进入等待状态,而视频流解码线程按其既定方式继续执行其解码行为,当第一缓存队列中存储有目标时间对应的帧像素数据时,视频流渲染线程获取该帧像素数据,并进行目标时间对应的视频帧的渲染;从而,可以防止已解码视频帧的重复解码;提高视频拖动过程中视频帧解码的效率。
在一些实施例中,如果第一关键帧时间与第二关键帧时间不一致,则视频流渲染线程生成查找指令,其中,查找指令包括第一关键帧时间。
可以理解,如果第一关键帧时间与第二关键帧时间不一致,则表示视频解码器当前正在解码的行为所依据的关键帧与目标时间对应的关键帧不同;则视频流渲染线程生成查找指令,以便视频流解码线程根据该查找指令获知当前需要进行关键帧的变更,进行关键帧的重新选择。
在一些实施例中,通过视频流解码线程对视频文件进行解码,以及将解码后的帧像素数据缓存至第一缓存队列,包括:视频流解码线程遍历视频关键帧列表,以便根据关键帧列表进行视频帧的解码;判断当前是否存在查找指令;如果是,则清空第一缓存队列,并根据查找指令中的第一关键帧时间查找对应的第一关键帧;根据第一关键帧进行下一视频帧的解码,并在解码结束后将该下一视频帧存储到第一缓存队列,以及在存储完毕后根据该下一视频帧的播放时间更新当前视频帧时间。
作为一种示例,如图2所示,视频流解码线程的解码流程为:
S201,遍历视频关键帧列表,以获取关键帧信息。
S202,获取待解码视频帧信息。
S203,判断当前是否存在查找指令;如果是,则执行步骤S205;如果否,则执行步骤S204。
S204,对待解码视频帧进行解码;并在解码完成后执行步骤S207。
S205,清空第一缓存队列,并根据第一关键帧时间查找对应的第一关键帧。
S206,根据第一关键帧确定待解码视频帧,返回步骤S204。
S207,将解码得到的帧像素数据缓存至第一缓存队列。
S208,根据待解码视频帧对应的播放时间更新当前视频帧时间。
S209,根据当前视频帧时间判断解码任务是否已完成;如果是,则执行步骤S210;如果否,则返回步骤S202。
S210,结束。
在一些实施例中,由于视频流和音频流解码逻辑相互影响,导致音频、视频之间生产、消费等逻辑需要互相同步、等待,将使得处理逻辑复杂度增加;并且,会产生不必要的等到耗时,进而降低视频的解码效率;因此,将音频流的解码线程和视频流的解码线程进行分离,以实现音频/视频的解码、消费Seek等逻辑的独立处理;提高视频的解码效率。
作为一种示例,在视频的播放过程中,通过音频流解码线程对音频帧进行解码,并将解码得到的音频数据存储到第二缓存队列;通过音频流播放线程获取第二缓存队列中存储的音频数据,并对音频数据进行播放。其中,通过音频流解码线程获取用户的拖动指令,并根据拖动指令获取该拖动行为对应的目标时间,以及根据目标时间获取对应的音频帧。
可以理解,音频帧没有关键帧、预测帧等区分;并且,音频的解码速度较快,因此,在获取到用户发送的拖动指令之后,可以根据用户的拖动指令获取对应的目标时间,并且,通过音频解码线程对目标时间对应的音频帧进行解码;在解码完成之后,将解码得到的音频数据缓存至第二缓存队列,以便音频流播放线程取用后进行音频的播放。
综上所述,根据本发明实施例的进度拖动过程中的视频文件播放方法,首先,获取用户发送的视频文件,并通过视频流解码线程对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;接着,在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;然后,根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据;接着,如果所述第一缓存队列中不存在目标时间对应的帧像素数据,则根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;然后,判断所述第一关键帧时间与所述第二关键帧时间是否一致;接着,如果是,则所述视频流渲染线程进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有进度拖动过程中的视频文件播放程序,该进度拖动过程中的视频文件播放程序被处理器执行时实现如上述的进度拖动过程中的视频文件播放方法。
根据本发明实施例的计算机可读存储介质,通过存储进度拖动过程中的视频文件播放程序,以使得处理器在执行该进度拖动过程中的视频文件播放程序时,实现如上述的进度拖动过程中的视频文件播放方法;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了实现上述实施例,本发明实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如上述的进度拖动过程中的视频文件播放方法。
根据本发明实施例的计算机设备,通过存储器对进度拖动过程中的视频文件播放程序进行存储,以使得处理器在执行该进度拖动过程中的视频文件播放程序时,实现如上述的进度拖动过程中的视频文件播放方法;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
为了实现上述实施例,本发明实施例提出了一种进度拖动过程中的视频文件播放装置,如图3所示,该进度拖动过程中的视频文件播放装置包括:获取模块10、视频流解码模块20、视频流渲染模块30。
其中,获取模块10用于获取用户发送的视频文件;
视频流解码模块20用于对视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;
视频流渲染模块30用于在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据拖动指令获取该拖动行为对应的目标时间;
视频流渲染模块30还用于根据目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有目标时间对应的帧像素数据,并在第一缓存队列中不存在目标时间对应的帧像素数据时,根据拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取目标时间对应的第一关键帧时间和当前视频帧时间对应的第二关键帧时间;
视频流渲染模块30判断第一关键帧时间与第二关键帧时间是否一致,如果一致,则进入等待状态,并在第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染。
在一些实施例中,如果第一缓存队列中存在目标时间对应的帧像素数据,则视频流渲染线程获取该帧像素数据,并根据该帧像素数据对目标时间对应的视频帧进行渲染。
需要说明的是,上述关于图1中进度拖动过程中的视频文件播放方法的描述同样适用于该进度拖动过程中的视频文件播放装置,在此不做赘述。
综上所述,根据本发明实施例的进度拖动过程中的视频文件播放装置,通过设置获取模块用于获取用户发送的视频文件;视频流解码模块用于对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;视频流渲染模块用于在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;视频流渲染模块还用于根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据,并在所述第一缓存队列中不存在目标时间对应的帧像素数据时,根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;视频流渲染模块判断所述第一关键帧时间与所述第二关键帧时间是否一致,如果一致,则进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;从而实现避免视频帧的重复解码,提高进度拖动过程中视频画面更新的实时性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种进度拖动过程中的视频文件播放方法,其特征在于,包括以下步骤:
获取用户发送的视频文件,并通过视频流解码线程对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;
在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;
根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据;
如果所述第一缓存队列中不存在目标时间对应的帧像素数据,则根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;
判断所述第一关键帧时间与所述第二关键帧时间是否一致;
如果是,则所述视频流渲染线程进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;
如果所述第一关键帧时间与所述第二关键帧时间不一致,则所述视频流渲染线程生成查找指令,其中,所述查找指令包括第一关键帧时间;
通过视频流解码线程对所述视频文件进行解码,以及将解码后的帧像素数据缓存至第一缓存队列,包括:
所述视频流解码线程遍历视频关键帧列表,以便根据所述关键帧列表进行视频帧的解码;
判断当前是否存在查找指令;
如果是,则清空第一缓存队列,并根据所述查找指令中的第一关键帧时间查找对应的第一关键帧;
根据所述第一关键帧进行下一视频帧的解码,并在解码结束后将该下一视频帧存储到第一缓存队列,以及在存储完毕后根据该下一视频帧的播放时间更新所述当前视频帧时间。
2.如权利要求1所述的进度拖动过程中的视频文件播放方法,其特征在于,如果所述第一缓存队列中存在目标时间对应的帧像素数据,则视频流渲染线程获取该帧像素数据,并根据该帧像素数据对目标时间对应的视频帧进行渲染。
3.如权利要求1所述的进度拖动过程中的视频文件播放方法,其特征在于,在视频的播放过程中,通过音频流解码线程对音频帧进行解码,并将解码得到的音频数据存储到第二缓存队列;
通过音频流播放线程获取所述第二缓存队列中存储的音频数据,并对所述音频数据进行播放。
4.如权利要求3所述的进度拖动过程中的视频文件播放方法,其特征在于,通过所述音频流解码线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间,以及根据所述目标时间获取对应的音频帧。
5.一种计算机可读存储介质,其特征在于,其上存储有进度拖动过程中的视频文件播放程序,该进度拖动过程中的视频文件播放程序被处理器执行时实现如权利要求1-4中任一项所述的进度拖动过程中的视频文件播放方法。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1-4中任一项所述的进度拖动过程中的视频文件播放方法。
7.一种进度拖动过程中的视频文件播放装置,其特征在于,包括:
获取模块,所述获取模块用于获取用户发送的视频文件;
视频流解码模块,所述视频流解码模块用于对所述视频文件中的视频帧进行解码,以及将解码得到的帧像素数据缓存至第一缓存队列;
视频流渲染模块,所述视频流渲染模块用于在视频的播放过程中,通过视频流渲染线程获取用户的拖动指令,并根据所述拖动指令获取该拖动行为对应的目标时间;
所述视频流渲染模块还用于根据所述目标时间查询第一缓存队列,以根据查询结果判断该第一缓存队列中是否存储有所述目标时间对应的帧像素数据,并在所述第一缓存队列中不存在目标时间对应的帧像素数据时,根据所述拖动指令获取解码线程的当前视频帧时间,并遍历视频关键帧列表,以获取所述目标时间对应的第一关键帧时间和所述当前视频帧时间对应的第二关键帧时间;
所述视频流渲染模块判断所述第一关键帧时间与所述第二关键帧时间是否一致,如果一致,则进入等待状态,并在所述第一缓存队列中存储有目标时间对应的帧像素数据之后,根据该帧像素数据对目标时间对应的视频帧进行渲染;
如果所述第一关键帧时间与所述第二关键帧时间不一致,则所述视频流渲染线程生成查找指令,其中,所述查找指令包括第一关键帧时间;
视频流解码模块,具体用于所述视频流解码线程遍历视频关键帧列表,以便根据所述关键帧列表进行视频帧的解码;
判断当前是否存在查找指令;
如果是,则清空第一缓存队列,并根据所述查找指令中的第一关键帧时间查找对应的第一关键帧;
根据所述第一关键帧进行下一视频帧的解码,并在解码结束后将该下一视频帧存储到第一缓存队列,以及在存储完毕后根据该下一视频帧的播放时间更新所述当前视频帧时间。
8.如权利要求7所述的进度拖动过程中的视频文件播放装置,其特征在于,如果所述第一缓存队列中存在目标时间对应的帧像素数据,则视频流渲染线程获取该帧像素数据,并根据该帧像素数据对目标时间对应的视频帧进行渲染。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082632.7A CN112929755B (zh) | 2021-01-21 | 2021-01-21 | 进度拖动过程中的视频文件播放方法及装置 |
PCT/CN2021/106958 WO2022156166A1 (zh) | 2021-01-21 | 2021-07-17 | 进度拖动过程中的视频文件播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082632.7A CN112929755B (zh) | 2021-01-21 | 2021-01-21 | 进度拖动过程中的视频文件播放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929755A CN112929755A (zh) | 2021-06-08 |
CN112929755B true CN112929755B (zh) | 2022-08-16 |
Family
ID=76165665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110082632.7A Active CN112929755B (zh) | 2021-01-21 | 2021-01-21 | 进度拖动过程中的视频文件播放方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112929755B (zh) |
WO (1) | WO2022156166A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929755B (zh) * | 2021-01-21 | 2022-08-16 | 稿定(厦门)科技有限公司 | 进度拖动过程中的视频文件播放方法及装置 |
CN114222166B (zh) * | 2021-09-29 | 2024-02-13 | 重庆创通联达智能技术有限公司 | 多路视频码流实时处理、同屏播放方法及相关系统 |
CN113965786B (zh) * | 2021-09-29 | 2024-03-26 | 杭州当虹科技股份有限公司 | 精准控制视频输出播放的方法 |
CN115396729B (zh) * | 2022-08-26 | 2023-12-08 | 百果园技术(新加坡)有限公司 | 视频目标帧确定方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924941A (zh) * | 2010-08-30 | 2010-12-22 | 深圳市宏电技术股份有限公司 | 一种多媒体解码方法、系统及多媒体播放设备 |
CN112104893A (zh) * | 2020-11-04 | 2020-12-18 | 武汉中科通达高新技术股份有限公司 | 一种实现网页端无插件播放的视频流管理方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093292B (zh) * | 2016-11-21 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 用于管理缓存的方法、装置及系统 |
CN108769815B (zh) * | 2018-06-21 | 2021-02-26 | 威盛电子股份有限公司 | 视频处理方法及其装置 |
CN109525879A (zh) * | 2018-10-30 | 2019-03-26 | 北京凯视达科技有限公司 | 视频播放控制方法及装置 |
CN110418186B (zh) * | 2019-02-01 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 音视频播放方法、装置、计算机设备和存储介质 |
CN111684816A (zh) * | 2019-05-15 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 视频解码方法、视频解码装置、存储介质与电子设备 |
CN110022489B (zh) * | 2019-05-30 | 2021-12-24 | 腾讯音乐娱乐科技(深圳)有限公司 | 视频播放方法、装置及存储介质 |
CN110248245B (zh) * | 2019-06-21 | 2022-05-06 | 维沃移动通信有限公司 | 一种视频定位方法、装置、移动终端及存储介质 |
CN112929755B (zh) * | 2021-01-21 | 2022-08-16 | 稿定(厦门)科技有限公司 | 进度拖动过程中的视频文件播放方法及装置 |
-
2021
- 2021-01-21 CN CN202110082632.7A patent/CN112929755B/zh active Active
- 2021-07-17 WO PCT/CN2021/106958 patent/WO2022156166A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924941A (zh) * | 2010-08-30 | 2010-12-22 | 深圳市宏电技术股份有限公司 | 一种多媒体解码方法、系统及多媒体播放设备 |
CN112104893A (zh) * | 2020-11-04 | 2020-12-18 | 武汉中科通达高新技术股份有限公司 | 一种实现网页端无插件播放的视频流管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022156166A1 (zh) | 2022-07-28 |
CN112929755A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112929755B (zh) | 进度拖动过程中的视频文件播放方法及装置 | |
JP5332773B2 (ja) | 画像処理装置および方法 | |
US20070157268A1 (en) | Portable media device with improved video acceleration capabilities | |
GB2600309A (en) | Video processing method and apparatus, and electronic device and storage medium | |
CN104091607B (zh) | 一种基于ios设备的视频编辑方法及装置 | |
US20160217825A1 (en) | Intelligent playback method for video records based on a motion information and apparatus thereof | |
CN108965910B (zh) | 一种视频缓存方法及播放器 | |
JP2015179909A5 (zh) | ||
US20170302720A1 (en) | Transition points in an image sequence | |
US20120093489A1 (en) | Smooth rewind media playback | |
CN112601127A (zh) | 视频显示方法及装置、电子设备、计算机可读存储介质 | |
KR20140004240A (ko) | 이미지 검색 방법, 시스템 및 컴퓨터 기록매체 | |
CN114827663A (zh) | 分布式直播插帧系统及方法 | |
US8300701B2 (en) | Offspeed playback in a video editing system of video data compressed using long groups of pictures | |
JP4827669B2 (ja) | 動画再生方法および装置 | |
CN112969092B (zh) | 视频文件播放系统 | |
JP2008166895A (ja) | 映像表示装置及びその制御方法、プログラム、記録媒体 | |
CN112929792A (zh) | 基于Sox的音频处理方法及装置 | |
CN116132719A (zh) | 视频处理方法、装置、电子设备及可读存储介质 | |
CN115396729A (zh) | 视频目标帧确定方法、装置、设备及存储介质 | |
JPWO2007013407A1 (ja) | ダイジェスト生成装置、ダイジェスト生成方法、ダイジェスト生成プログラムを格納した記録媒体、およびダイジェスト生成装置に用いる集積回路 | |
JPWO2014065165A1 (ja) | 情報処理装置、情報処理方法、およびプログラム、並びに情報処理システム | |
JP2006025124A (ja) | 映像信号処理装置、メモリ制御方法、及びプログラム | |
CN110569396A (zh) | 一种数据搜索方法、电子设备和计算机可读存储介质 | |
CN111432291B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221011 Address after: 361001 unit R, 2nd floor, No. 33-102, Punan 1st Road, Siming District, Xiamen City, Fujian Province Patentee after: GAODING (XIAMEN) TECHNOLOGY Co.,Ltd. Patentee after: Draft (Xiamen) Information Service Co.,Ltd. Address before: G15-2, 3rd floor, No.10, Punan 1st Road, Dongpu Road, Siming District, Xiamen City, Fujian Province Patentee before: GAODING (XIAMEN) TECHNOLOGY Co.,Ltd. |