CN112087633A - 视频解码方法、装置及存储介质 - Google Patents

视频解码方法、装置及存储介质 Download PDF

Info

Publication number
CN112087633A
CN112087633A CN201910506089.1A CN201910506089A CN112087633A CN 112087633 A CN112087633 A CN 112087633A CN 201910506089 A CN201910506089 A CN 201910506089A CN 112087633 A CN112087633 A CN 112087633A
Authority
CN
China
Prior art keywords
target
video
decoding
video frame
decoder
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.)
Granted
Application number
CN201910506089.1A
Other languages
English (en)
Other versions
CN112087633B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910506089.1A priority Critical patent/CN112087633B/zh
Priority to PCT/CN2020/094600 priority patent/WO2020248909A1/zh
Publication of CN112087633A publication Critical patent/CN112087633A/zh
Priority to US17/377,370 priority patent/US11930197B2/en
Application granted granted Critical
Publication of CN112087633B publication Critical patent/CN112087633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种视频解码方法、装置及存储介质,当接收到目标视频的播放指令时,获取目标视频的目标类型信息;获取终端配置的多个解码器的指定类型信息;通过将多个解码器的指定类型信息与目标类型信息进行对比,确定多个解码器中支持解码目标视频的目标解码器;采用目标解码器对目标视频进行解码,播放解码后的视频。本发明实施例提供了一种自适应选取目标解码器的方式,不会直接采用默认解码器对目标视频进行解码,而是通过将多个解码器的指定类型信息与目标类型信息进行对比,选取出支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码可以避免出现解码失败的问题,提高了视频解码的成功率,进而提高了视频播放的成功率。

Description

视频解码方法、装置及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种视频解码方法、装置及存储介质。
背景技术
随着视频处理技术的快速发展和视频数据量的逐渐扩大,为了减小视频的数据量通常会对视频进行编码,当需要播放视频时,先对编码后的视频进行解码,再播放解码后的视频。
相关技术中,终端配置有用于进行视频解码的一个或多个解码器,会从配置的一个或多个解码器中选取一个解码器,作为默认解码器。当终端要播放编码后的目标视频时,采用默认解码器对该目标视频进行解码,得到解码后的视频,再播放解码后的视频。
但是,视频的类型包括多种,而默认解码器支持解码的视频类型有限。如果该默认解码器不支持该目标视频所属的类型,会导致该默认解码器对该目标视频的解码失败,也就无法播放该目标视频,视频解码的成功率较低。
发明内容
本发明实例提供了一种视频解码方法、装置及存储介质,能够提高视频解码的成功率。所述技术方案如下:
一方面,提供了一种视频解码方法,所述方法包括:
当接收到目标视频的播放指令时,获取所述目标视频的目标类型信息,所述目标类型信息用于指示所述目标视频所属的类型;
获取终端配置的多个解码器的指定类型信息,所述指定类型信息用于指示所述解码器支持解码的视频所属的类型;
通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器;
采用所述目标解码器对所述目标视频进行解码,播放解码后的视频。
在一种可能实现方式中,所述目标视频包括多个原始视频帧,所述采用所述目标解码器对所述目标视频进行解码,播放解码后的视频,包括:
当确定支持解码所述目标视频的至少一个目标解码器时,采用所述至少一个目标解码器中的第一目标解码器,对第一原始视频帧进行解码,得到与所述第一原始视频帧对应的第一解码视频帧,所述第一原始视频帧为所述目标视频中的任一个原始视频帧;
播放所述第一解码视频帧,将所述第一原始视频帧存储于第一缓存区中。
在另一种可能实现方式中,所述目标视频包括多个原始视频帧,所述采用所述目标解码器对所述目标视频进行解码,播放解码后的视频,包括:
当确定支持解码所述目标视频的多个目标解码器时,采用所述多个目标解码器中的第一目标解码器,对第二原始视频帧进行解码,当解码失败时,确定所述第二原始视频帧的时刻,所述第二原始视频帧为所述目标视频中的任一个原始视频帧;
将所述第二原始视频帧存储于第一缓存区中;
采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧。
在另一种可能实现方式中,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;所述方法还包括:
当采用所述第一目标解码器对所述目标视频中的任一起始视频帧解码成功或失败时,将所述第一缓存区中已存储的原始视频帧删除,将所述起始视频帧存储于所述第一缓存区中。
在另一种可能实现方式中,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;所述采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧,包括:
采用所述第二目标解码器,对所述第一缓存区中的任一起始视频帧进行解码,得到所述起始视频帧对应的解码视频帧;
当所述起始视频帧的时刻与所述第二原始视频帧的时刻不同时,丢弃所述解码视频帧;
继续对下一个原始视频帧进行解码,得到对应的解码视频帧,直至当前解码的原始视频帧的时刻与所述第二原始视频帧的时刻相同时,播放所述原始视频帧对应的第二解码视频帧。
在另一种可能实现方式中,所述采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧之后,所述方法还包括:
采用所述第二目标解码器,对第二缓存区中的第三原始视频帧进行解码,得到第三解码视频帧,播放所述第三解码视频帧,所述第二缓存区用于存储所述目标视频,所述第三原始视频帧为所述第二原始视频帧的时刻的下一时刻的原始视频帧。
在另一种可能实现方式中,所述获取终端配置的多个解码器的指定类型信息之前,所述方法还包括:
获取历史解码记录,所述历史解码记录中包括至少一个解码记录条目,每个解码记录条目中包括已进行解码操作的视频的类型信息、对所述视频进行解码操作的解码器与解码结果之间的对应关系,所述解码结果包括解码成功或解码失败;
对于每个解码器,从所述历史解码记录中,获取包括所述解码器且包括的解码结果为解码成功的解码记录条目;
根据获取到的解码记录条目中的类型信息,获取所述解码器的指定类型信息。
在另一种可能实现方式中,所述获取终端配置的多个解码器的指定类型信息之前,所述方法还包括:
获取历史播放记录,所述历史播放记录中包括至少一个播放记录条目,每个播放记录条目中包括已进行播放操作的视频的类型信息、进行播放操作之前对所述视频进行解码操作的解码器与播放结果之间的对应关系,所述播放结果包括播放成功或播放失败;
对于每个解码器,从所述历史播放记录中,获取包括所述解码器且包括的播放结果为播放成功的播放记录条目;
根据获取到的播放记录条目中的类型信息,获取所述解码器的指定类型信息。
在另一种可能实现方式中,所述通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器,包括:
通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的多个目标解码器;
按照所述多个目标解码器的优先级,从所述多个目标解码器中选取优先级最高的目标解码器。
在另一种可能实现方式中,所述通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器,包括:
获取当前登录的用户标识的等级;
从所述多个解码器中,选取与所述等级匹配的多个解码器;
通过将与所述等级匹配的多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述目标解码器。
另一方面,提供了一种视频解码装置,所述装置包括:
第一获取模块,用于当接收到目标视频的播放指令时,获取所述目标视频的目标类型信息,所述目标类型信息用于指示所述目标视频所属的类型;
第二获取模块,用于获取终端配置的多个解码器的指定类型信息,所述指定类型信息用于指示所述解码器支持解码的视频所属的类型;
确定模块,用于通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器;
解码模块,用于采用所述目标解码器对所述目标视频进行解码;
播放模块,用于播放解码后的视频。
在一种可能实现方式中,所述目标视频包括多个原始视频帧,所述装置还包括存储模块;
所述解码模块,还用于当确定支持解码所述目标视频的至少一个目标解码器时,采用所述至少一个目标解码器中的第一目标解码器,对第一原始视频帧进行解码,得到与所述第一原始视频帧对应的第一解码视频帧,所述第一原始视频帧为所述目标视频中的任一个原始视频帧;
所述播放模块,还用于播放所述第一解码视频帧;
所述存储模块,用于将所述第一原始视频帧存储于第一缓存区中。
在另一种可能实现方式中,所述目标视频包括多个原始视频帧,所述装置还包括存储模块;
所述解码模块,还用于当确定支持解码所述目标视频的多个目标解码器时,采用所述多个目标解码器中的第一目标解码器,对第二原始视频帧进行解码;
所述确定模块,还用于当所述解码模块解码失败时,确定所述第二原始视频帧的时刻,所述第二原始视频帧为所述目标视频中的任一个原始视频帧;
所述存储模块,用于将所述第二原始视频帧存储于所述第一缓存区中;
所述解码模块,还用于采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧;
所述播放模块,还用于播放所述第二解码视频帧。
在另一种可能实现方式中,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;
所述存储模块,还用于当采用所述第一目标解码器对所述目标视频中的任一起始视频帧解码成功或失败时,将所述第一缓存区中已存储的原始视频帧删除,将所述起始视频帧存储于所述第一缓存区中。
在另一种可能实现方式中,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;所述解码模块还用于:
采用所述第二目标解码器,对所述第一缓存区中的任一起始视频帧进行解码,得到所述起始视频帧对应的解码视频帧;
当所述原始视频帧的时刻与所述第二原始视频帧的时刻不同时,丢弃所述解码视频帧;
继续对所述起始视频帧的下一个原始视频帧进行解码,得到对应的解码视频帧,直至当前解码的原始视频帧的时刻与所述第二原始视频帧的时刻相同时,触发所述播放模块播放所述原始视频帧对应的第二解码视频帧。
在另一种可能实现方式中,所述解码模块还用于采用所述第二目标解码器,对第二缓存区中的第三原始视频帧进行解码,得到第三解码视频帧;
所述播放模块,还用于播放所述第三解码视频帧,所述第二缓存区用于存储所述目标视频,所述第三原始视频帧为所述第二原始视频帧的时刻的下一时刻的原始视频帧。
在另一种可能实现方式中,所述装置还包括:
第三获取模块,用于获取历史解码记录,所述历史解码记录中包括至少一个解码记录条目,每个解码记录条目中包括已进行解码操作的视频的类型信息、对所述视频进行解码操作的解码器与解码结果之间的对应关系,所述解码结果包括解码成功或解码失败;
第四获取模块,用于对于每个解码器,从所述历史解码记录中,获取包括所述解码器且包括的解码结果为解码成功的解码记录条目;
第五获取模块,用于根据获取到的解码记录条目中的类型信息,获取所述解码器的指定类型信息。
在另一种可能实现方式中,所述装置还包括:
第三获取模块,用于获取历史播放记录,所述历史播放记录中包括至少一个播放记录条目,每个播放记录条目中包括已进行播放操作的视频的类型信息、进行播放操作之前对所述视频进行解码操作的解码器与播放结果之间的对应关系,所述播放结果包括播放成功或播放失败;
第四获取模块,用于对于每个解码器,从所述历史播放记录中,获取包括所述解码器且包括的播放结果为播放成功的播放记录条目;
第五获取模块,用于根据获取到的播放记录条目中的类型信息,获取所述解码器的指定类型信息。
在另一种可能实现方式中,所述确定模块,包括:
对比单元,用于通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的多个目标解码器;
选取单元,用于按照所述多个目标解码器的优先级,从所述多个目标解码器中选取优先级最高的目标解码器。
在另一种可能实现方式中,所述确定模块,包括:
获取单元,用于获取当前登录的用户标识的等级;
选取单元,用于从所述多个解码器中,选取与所述等级匹配的多个解码器;
对比单元,用于通过将与所述等级匹配的多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述目标解码器。
另一方面,提供了一种视频解码装置,所述装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如所述视频解码方法中所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如所述视频解码方法中所执行的操作。
本发明实施例提供的视频解码方法、装置及存储介质,通过获取目标视频的目标类型信息和终端配置的多个解码器的指定类型信息,该目标类型信息用于指示目标视频所属的类型,该指定类型信息用于指示解码器支持解码的视频所属的类型,将多个解码器的指定类型信息与目标类型信息进行对比,确定该多个解码器中支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码,播放解码后的视频。本发明实施例提供了一种自适应选取目标解码器的方式,不会直接采用默认解码器对目标视频进行解码,而是通过将多个解码器的指定类型信息与目标类型信息进行对比,选取出支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码可以避免出现解码失败的问题,提高了视频解码的成功率,进而提高了视频播放的成功率。而且不会受到目标视频所属类型的限制,对于任意类型的目标视频均可采用本发明实施例提供的方式进行解码,扩展了应用范围。
并且,通过从终端配置的多个解码器中选取支持解码目标视频的多个目标解码器,采用该多个目标解码器中的第一目标解码器对目标视频中的第一原始视频帧进行解码,播放解码后的第一解码视频帧,在第一缓存区中存储该第一原始视频帧,而当采用该第一目标解码器对第二原始视频帧解码失败时,在第一缓存区中存储该第二原始视频帧,采用多个目标解码器中的第二目标解码器对第一缓存区中与第二原始视频帧时刻相同的原始视频帧解码,播放解码后的第二解码视频帧,通过将第一目标解码器解码成功的原始视频帧存储于第一缓存区中,后续对第二原始视频帧解码失败时,第二目标解码器可以对第一缓存区中的起始视频帧进行解码,无需等待目标视频中的下一个起始视频帧,缩短了等待时间,避免终端处于黑屏状态,提升了目标视频的播放效果。
并且,当采用第一目标解码器对目标视频中的任一起始视频帧解码成功或失败时,将起始视频帧存储于第一缓存区中,在保证解码效果的基础上尽可能地节省存储空间,加快第二目标解码器的解码速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种终端的结构示意图;
图2是本发明实施例提供的另一种终端的结构示意图;
图3是本发明实施例提供的一种视频解码方法的流程图;
图4是本发明实施例提供的一种构建解码能力表的示意图;
图5是本发明实施例提供的一种视频解码方法的流程图;
图6是本发明实施例提供的一种视频帧的示意图;
图7是本发明实施例提供的一种视频帧的示意图;
图8是本发明实施例提供的一种黑屏时长的示意图;
图9是本发明实施例提供的一种视频解码方法的应用流程图;
图10是本发明实施例提供的一种切换目标解码器的示意图;
图11是本发明实施例提供的一种视频解码装置的结构示意图;
图12是本发明实施例提供的另一种视频解码装置的结构示意图;
图13是本发明实施例提供的一种终端的结构示意图;
图14是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种终端的结构示意图,该终端可以为智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑、台式电脑、头戴设备,或其他任意智能终端等电子设备。参见图1,该终端包括处理器101、存储器102、多个解码器103及播放器104。
其中,处理器101用于从终端配置的多个解码器103中确定一个解码器103。存储器102中包括缓存区,该缓存区用于存储获取的视频。该多个解码器103用于从存储器102中的缓存区提取视频,对该视频进行解码,将解码后的视频发送给播放器104,播放器104用于播放解码后的视频。
因此,当终端获取到待播放的目标视频后,将获取到的目标视频存储于存储器102中的缓存区中,处理器101获取终端配置的多个解码器103的指定类型信息和目标视频的目标类型信息,从该多个解码器103中选取支持解码目标视频的解码器103,控制该解码器103从存储器102中提取目标视频,对该目标视频进行解码,将解码后的视频发送给播放器104,由播放器104播放解码后的视频。
其中,终端配置的多个解码器103可以包括MediaCodec(一种安卓系统中的解码接口框架)解码器、VideoToolBox(一种iOS系统中的解码接口框架)解码器、AudioToolBox(一种iOS系统中的解码接口框架)解码器以及FFmpeg(一种解码接口框架)解码器等。
且终端配置的多个解码器103按照类型划分可以包括硬件解码器和软件解码器,该硬件解码器为终端出厂时就配置好的解码器,且该硬件解码器在终端中的GPU(GraphicsProcessing Unit,图形处理器)中运行。而软件解码器在终端中的CPU(CentralProcessing Unit,中央处理器)中运行。
图2是本发明实施例提供的另一种终端的结构示意图,参见图2,处理器101包括解码能力收集模块201、解码器自适应控制模块202、解码器切换模块203。
其中,解码能力收集模块201用于获取解码器的指定类型信息,以指定类型信息来表示解码器的解码能力。
解码器自适应控制模块202用于根据解码能力收集模块201提供的指定类型信息,对多个解码器支持解码的视频类型进行分析,从中选取支持解码目标视频的解码器,控制采用该解码器对目标视频进行解码。
解码器切换模块203用于在采用任一解码器进行解码失败时,将当前采用的解码器切换为另一个解码器,控制采用另一个解码器进行解码,实现解码器的切换。
需要说明的是,本发明实施例仅是以终端执行视频解码方法为例进行说明,而在另一实施例中,可以由服务器执行,还可以由服务器和终端进行交互,配合执行视频解码方法。比如,当接收到目标视频的播放指令时,由服务器根据目标视频的目标类型信息和多个解码器的指定类型信息,确定终端上支持解码目标视频的目标解码器,由终端采用服务器确定的目标解码器对目标视频进行解码,播放解码后的视频。
本发明实施例提供的方法应用于播放视频的任一场景下。
例如,在线播放视频的场景下,终端接收视频服务器发送的视频,采用本发明实施例提供的视频解码方法,对视频进行解码,播放解码后的视频,用户即可在线观看视频。
或者,在离线播放视频的场景下,终端从服务器下载视频,存储于终端中,用户打开该视频时,终端采用本发明实施例提供的视频解码方法,对视频进行解码,播放解码后的视频。
或者,本发明实施例提供的方法还可以应用于其他场景下,在此不再赘述。
图3是本发明实施例提供的一种视频解码方法的流程图。该方法应用于终端中,参见图3,该方法包括:
301、获取历史解码记录。
为了减小视频的数据量,从而减小占用的存储空间和传输时耗费的网络资源,通常先对视频进行编码,得到编码后的视频。后续可以采用解码器对编码后的视频进行解码,播放解码后得到的视频。
然而,终端配置有多个解码器,且不同解码器所支持解码的视频类型不同,即不同解码器对视频的兼容性不同。为了避免解码器对视频进行解码时,不支持解码该视频而导致解码失败的情况,本发明实施例提供了一种自适应确定解码器的方案,能够根据多个解码器支持解码的视频类型和待播放视频的视频类型,选取支持解码该待播放视频的目标解码器,从而提高了视频解码的成功率。
为了确定每个解码器支持解码的视频类型,先获取终端的历史解码记录,根据该历史解码记录确定解码器的指定类型信息,该指定类型信息用于指示解码器支持解码的视频所属的类型,能够表示解码器的解码能力。
历史解码记录中包括至少一个解码记录条目,每个解码记录条目中包括已进行解码操作的视频的类型信息、对视频进行解码操作的解码器与解码结果之间的对应关系。
关于历史解码记录的生成方式:当终端采用配置的多个解码器中的任一个解码器对任一视频进行解码操作时,获取该视频的类型信息,确定本次进行解码操作的解码器,确定解码器对该视频进行解码操作得到的解码结果,其中解码结果包括解码成功或解码失败,解码成功表示解码器支持解码该视频,解码失败表示解码器不支持解码该视频。之后,终端生成解码记录条目,该解码记录条目包括视频的类型信息、对该视频进行解码操作的解码器与解码结果,添加至历史解码记录中。
其中,视频的类型信息用于表示该视频所属的类型,可以包括该视频的分辨率、编码格式、加密类型、旋转类型等多项类型信息。
1、分辨率:是视频中视频帧数据量的直观表述,用于表示视频中视频帧包含的像素数量。视频的分辨率越高,数据量就越大。
2、编码格式:视频在编码时所采用的格式。该编码格式包括H264(一种编码标准)、H265(一种编码标准)等多种格式。
3、加密类型:视频可以分为加密视频和非加密视频。例如,视频可以为采用DRM(Digital Rights Management,内容数字版权加密保护技术)进行加密的视频。
4、旋转类型:视频可以分为解码时需要旋转的的视频和解码时不需要旋转的视频。如果视频在编码时进行了旋转,则解码时需要进行反向旋转,以还原原始的视频,保证视频的正常播放。如果视频在编码时没有进行旋转,则解码时也不需要进行旋转。
例如,该历史解码记录可以如表1所示:
表1
Figure BDA0002091886170000111
Figure BDA0002091886170000121
其中,指定类型信息可以包括分辨率、编码格式、加密类型、旋转类型等多项类型信息。
1、分辨率:是指解码器支持解码的视频的分辨率。若某一视频的分辨率低于或等于该分辨率时,该解码器支持解码该视频。若某一视频的分辨率高于该分辨率时,该解码器解码该视频时会出现该视频无法正常播放的问题,因此不支持解码该视频。
2、编码格式:是指解码器支持解码的视频的编码格式。若某一视频的编码格式为解码器支持解码视频的编码格式,该解码器支持解码该视频。若某一视频的编码格式不是解码器支持解码视频的编码格式,该解码器不支持解码该视频。
不同的解码器支持解码的编码格式不同。例如,对于安装安卓系统的终端来说,终端中配置的硬件解码器仅可以支持解码编码格式为H264的视频,而对于安装iOS(iphoneoperating system,苹果操作系统)的终端来说,该终端中的VideoToolBox(一种iOS系统中的解码接口框架)仅可以支持解码编码格式为H264的视频。
3、加密类型:是指解码器是否支持解码加密视频。
例如,当视频为采用DRM(Digital Rights Management,内容数字版权加密保护技术)进行加密的视频,硬件解码器支持解码该DRM视频。
4、旋转类型:是指解码器在解码时是否进行旋转。
例如,当视频为编码时进行了旋转,软件解码器支持解码该视频。
302、对于每个解码器,从历史解码记录中,获取包括该解码器且包括的解码结果为解码成功的解码记录条目。
对于历史解码记录中的每个解码记录条目,当该解码记录条目中的解码结果为解码成功时,表示该解码记录条目中的解码器支持解码满足该解码记录条目中的类型信息的视频。当该解码记录条目中的解码结果为解码失败时,表示该解码记录条目中的解码器不支持解码满足该解码记录条目中的类型信息的视频。
因此,对于每个解码器,从历史解码记录中获取包括该解码器且包括的解码结果为解码成功的至少一个解码记录条目,该多个解码记录条目中包括的类型信息均为该解码器支持解码的视频的类型信息。
303、根据获取到的解码记录条目中的类型信息,获取该解码器的指定类型信息。
当步骤302中获取的解码记录条目为一个时,获取该解码记录条目中的类型信息,将该类型信息作为解码器的指定类型信息。
当步骤302中获取的解码记录条目为多个时,获取该多个解码记录条目中每个解码记录条目的类型信息,将获取的多个类型信息进行组合,将组合得到的类型信息作为解码器的指定类型信息。
其中,每个视频可以包括多项类型信息,则每个解码记录条目中可以包括多项类型信息。当获取到多个解码记录条目中的类型信息时,将多个类型信息中属于同一项的类型信息进行组合,得到属于同一项的类型信息的并集,从而得到多个并集,将得到的多个并集作为指定类型信息。
例如,当获取到4个解码记录条目中的分辨率分别为720p、1080p、720p、1080p时,组合得到的并集为{720p、1080p},则确定指定类型信息中的分辨率为{720p、1080p}。
需要说明的第一点是,本发明实施例仅是以根据终端的历史解码记录获取指定类型信息为例进行说明,而在另一实施例中,由于视频的播放结果也能代表解码器是否支持解码视频,因此还可以根据历史播放记录获取解码器的指定类型信息。
因此,获取指定类型信息,包括:获取历史播放记录,历史播放记录中包括至少一个播放记录条目,每个播放记录条目中包括已进行播放操作的视频的类型信息、进行播放操作之前对视频进行解码操作的解码器与播放结果之间的对应关系,播放结果包括播放成功或播放失败,对于每个解码器,从历史播放记录中,获取包括解码器且包括的播放结果为播放成功的播放记录条目,将获取到的播放记录条目中的类型信息进行组合,得到解码器的指定类型信息。
其中,根据历史播放记录获取指定类型信息的过程与根据历史解码记录获取指定类型信息的过程类似,在此不再赘述。
需要说明的第二点是,本发明实施例中的步骤301-303为可选步骤,在另一实施例中,终端获取解码器的指定类型信息的过程还可以包括:
在一种可能实现方式中,测试终端中配置有多个解码器,测试终端获取多个样本视频和该多个样本视频的类型信息,对于该测试终端中的每个解码器,采用该解码器对多个样本视频进行解码,根据解码结果确定该解码器所支持的至少一个样本视频,将该至少一个样本视频的类型信息进行组合,得到该解码器的指定类型信息,将得到的解码器的指定类型信息发送至服务器中,由服务器对应存储解码器与解码器的指定类型信息,终端可以从服务器中获取本端配置的任一个或多个解码器的指定类型信息。
在另一种可能实现方式中,测试终端中配置有多个解码器,测试终端获取多个样本视频和该多个样本视频的类型信息,对于该测试终端中的每个解码器,采用该解码器对多个样本视频进行解码,根据解码结果确定该解码器解码成功的至少一个样本视频,分别播放解码成功的至少一个样本视频,根据播放结果确定播放成功的至少一个样本视频,将确定的该至少一个样本视频作为解码器所支持的样本视频,将该至少一个样本视频的类型信息进行组合,得到该解码器的指定类型信息,将得到的解码器的指定类型信息发送至服务器中,由服务器对应存储解码器与解码器的指定类型信息,终端可以从服务器中获取本端配置的任一个或多个解码器的指定类型信息。
终端获取到配置的每个解码器的指定类型信息后,存储每个解码器的指定类型信息。
304、当接收到目标视频的播放指令时,获取目标视频的目标类型信息,目标类型信息用于指示目标视频所属的类型。
其中,该目标视频可以为任一视频,且该目标视频为编码后的视频,当接收到目标视频的播放指令时,需要先对该目标视频进行解码,再播放解码后的视频。而在解码之前需要选用支持解码该目标视频的解码器。
因此,获取目标视频的类型信息,作为目标类型信息,该目标类型信息用于指示目标视频所属的类型,可以包括该目标视频的分辨率、编码格式、加密类型、旋转类型等。后续根据该目标视频的目标类型信息和每个解码器的指定类型信息,可以确定支持解码该目标视频的解码器。在一种可能实现方式中,本发明实施例应用于在线播放该目标视频的场景下。
服务器中存储有多个视频,每个视频具有一个标识信息,终端中显示服务器提供的多个视频的标识信息,用户希望播放目标视频时可以对该目标视频的标识信息进行触发操作,该触发操作可以为点击操作、长按操作或者其他操作。终端检测到对该目标视频的标识信息的触发操作时,确定接收到目标视频的播放指令,向服务器发送该播放指令,该播放指令中携带目标视频的标识信息,服务器根据标识信息确定目标视频,将目标视频发送给终端,终端接收服务器发送的目标视频,且该目标视频中包括类型信息,则从该目标视频中获取类型信息,作为目标类型信息。
在另一种可能实现方式中,本发明实施例应用于离线播放该目标视频的场景下。
终端中存储有多个视频,可以显示存储的任一个或多个视频,当用户希望播放目标视频时可以对该目标视频进行触发操作,该触发操作可以为点击操作、长按操作或者其他操作。终端检测到对该目标视频的触发操作时,确定接收到目标视频的播放指令,则终端从该目标视频中获取类型信息,作为目标类型信息。
305、获取终端配置的多个解码器的指定类型信息,指定类型信息用于指示解码器支持解码的视频所属的类型。
在上述步骤301-303中,终端获取到多个解码器的指定类型信息后进行存储,则在步骤305中,终端可以直接获取该多个解码器的指定类型信息。
306、通过将多个解码器的指定类型信息与目标类型信息进行对比,确定多个解码器中支持解码目标视频的目标解码器。
对于该多个解码器中的每个解码器,将该解码器的指定类型信息与目标类型信息进行对比,判断两者是否匹配。当该指定类型信息与该目标类型信息匹配时,确定该解码器支持解码该目标视频,则将该解码器作为目标解码器。
通过对每个解码器重复执行上述步骤,可以从多个解码器中,确定支持解码该目标视频的一个或多个目标解码器。
可选地,考虑到目标类型信息可以包括多项类型信息,在进行匹配时可以逐项进行匹配。也即是,对于该多个解码器中的每个解码器,获取该指定类型信息中的多项类型信息,以及目标类型信息中的多项类型信息,判断该指定类型信息中的每项指定类型信息与目标类型信息中属于同一项的类型信息是否匹配,当该指定类型信息中的每项指定类型信息与目标类型信息中属于同一项的类型信息均匹配时,确定该解码器支持解码该目标视频,则将该解码器作为目标解码器。
例如,如图4所示,为了直观地确定硬件解码器和软件解码器是否支持解码目标视频,根据硬件解码器和软件解码器的指定类型信息,以及目标视频的目标类型信息,构建解码能力表,该解码能力表中包括目标类型信息中的多项类型信息,判断硬件解码器和软件解码器是否支持每项类型信息,将得到的判断结果填入解码能力表中,通过逐项对比,得到如表2所示的解码能力表。根据该解码能力表可以直观地看出硬件解码器和软件解码器是否支持解码目标视频。
表2
目标类型信息 硬件解码器是否支持 软件解码器是否支持
分辨率(1280*720)
编码格式(H264)
需要旋转
在一种可能实现方式中,终端预先设置类型信息的匹配规则,终端在判断指定类型信息与目标类型信息是否匹配时,可以根据该匹配规则进行判断。例如,匹配规则中规定加密视频仅能采用硬件解码器进行解码。因此,当目标类型信息中的加密类型为加密时,表示目标视频为加密视频,仅确定硬件解码器的指定类型信息与目标类型信息匹配,以保证仅采用硬件解码器对该目标视频进行解码。
在一种可能实现方式中,如果确定多个解码器中支持解码目标视频的多个目标解码器,则按照多个目标解码器的优先级,从多个目标解码器中选取优先级最高的目标解码器。
其中,该优先级用于表示解码器的优先程度。例如,确定的目标解码器为解码器A、解码器B和解码器C,且解码器A、解码器B和解码器C的优先级依次递减,那么选取解码器A。
可选地,解码器的优先级的确定方式包括以下至少一项:
1、按照解码器在进行解码时占用的内存多少确定优先级,为占用内存较少的解码器确定较高的优先级,为占用内存较多的解码器确定较低的优先级。
例如,解码器分为硬件解码器和软件解码器两种类型,硬件解码器占用的内存少于软件解码器占用的内存,则设置为硬件解码器的优先级高于软件解码器的优先级。
2、按照解码器支持解码的分辨率的高低确定优先级,为支持较高分辨率的解码器确定较高的优先级,为支持较低分辨率的解码器确定较低的优先级,根据优先级的高低能够尽可能地选取出支持较高分辨率的目标解码器,采用该目标解码器进行解码能够得到高清晰度的视频。
3、按照解码器支持解码的编码格式的复杂程度确定优先级,为支持较复杂的编码格式的解码器确定较高的优先级,为支持较简单的编码格式的解码器确定较低的优先级,根据优先级的高低能够尽可能地选取出支持较复杂的编码格式的目标解码器。
在另一种可能实现方式中,获取当前登录的用户标识的等级,从多个解码器中,选取与该等级匹配的多个解码器,通过将与该等级匹配的多个解码器的指定类型信息与目标类型信息进行对比,确定目标解码器。
其中,用户标识用于确定唯一对应的用户,且用户标识具有所属的等级,不同用户标识的等级可以相同,也可以不同。
并且,终端为每个等级设置匹配的解码器,以表示采用匹配的解码器为相应等级的用户标识提供解码服务,实现不同等级用户的个性化服务。其中,等级越高,匹配的解码器的解码能力越高,等级越低,匹配的解码器的解码能力越低。例如,等级越高,匹配的解码器为支持较高分辨率的解码器,而等级越低,匹配的解码器为支持较低分辨率的解码器。
因此,根据终端当前登录的用户标识的等级,从多个解码器中选取与用户标识的等级匹配的多个解码器,再从选取的多个解码器中根据每个解码器的指定类型信息与目标视频的目标类型信息进行对比,确定支持解码该目标视频的目标解码器。
本发明实施例提供了一种上层业务逻辑策略,能够根据匹配规则、解码器的优先级或用户标识的等级等多种方式进行解码器的匹配,从而选取满足要求的目标解码器,对目标视频进行解码,通过配置上层业务逻辑策略提高了灵活性。
需要说明的是,本发明实施例中以步骤301-306由终端执行为例进行说明,而在另一实施例中,还可以由服务器执行上述步骤301-306确定支持解码目标视频的目标解码器,将确定的目标解码器发送给终端,由终端根据确定的目标解码器执行后续步骤。
307、采用目标解码器对目标视频进行解码,播放解码后的视频。
其中,该目标视频包括多个原始视频帧,在采用目标解码器对目标视频进行解码的过程中,采用目标解码器对目标视频中的任一原始视频帧进行解码,得到原始视频帧对应的解码视频帧,播放该解码视频帧,再对该目标视频中的下一原始视频帧进行解码,得到下一个解码视频帧,播放该下一个解码视频帧,以此类推,可以对目标视频中的原始视频帧依次进行解码和播放。
本发明实施例提供的方法,通过获取目标视频的目标类型信息和终端配置的多个解码器的指定类型信息,该目标类型信息用于指示目标视频所属的类型,该指定类型信息用于指示解码器支持解码的视频所属的类型,将多个解码器的指定类型信息与目标类型信息进行对比,确定该多个解码器中支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码,播放解码后的视频。本发明实施例提供了一种自适应选取目标解码器的方式,不会直接采用默认解码器对目标视频进行解码,而是通过将多个解码器的指定类型信息与目标类型信息进行对比,选取出支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码可以避免出现解码失败的问题,提高了视频解码的成功率,进而提高了视频播放的成功率。而且不会受到目标视频所属类型的限制,对于任意类型的目标视频均可采用本发明实施例提供的方式进行解码,扩展了应用范围。
图5是本发明实施例提供的一种视频解码方法的流程图,应用于终端,参见图5,该方法包括:
501、当接收到目标视频的播放指令时,获取目标视频的目标类型信息,目标类型信息用于指示目标视频所属的类型。
502、获取终端配置的多个解码器的指定类型信息,指定类型信息用于指示解码器支持解码的视频所属的类型。
503、通过将多个解码器的指定类型信息与目标类型信息进行对比,确定多个解码器中支持解码目标视频的多个目标解码器。
步骤501-503的过程与步骤304-306类似,在此不再赘述。
504、采用多个目标解码器中的第一目标解码器,对目标视频中的第一原始视频帧进行解码,得到与第一原始视频帧对应的第一解码视频帧,播放该第一解码视频帧。
当从终端配置的多个解码器中确定支持解码目标视频的目标解码器为多个时,从多个目标解码器中选取第一目标解码器,采用第一目标解码器对目标视频进行解码。
其中,该第一目标解码器可以为从多个目标解码器中随机选取的任一目标解码器,或者为多个目标解码器中优先级最高的目标解码器,或者还可以为采用其他方式选取的目标解码器。
该目标视频包括多个原始视频帧,在采用第一目标解码器对目标视频进行解码的过程中,会对目标视频中的每个原始视频帧依次进行解码。因此,本发明实施例以第一原始视频帧为例,该第一原始视频帧为目标视频中的任一个原始视频帧。则终端采用第一目标解码器对第一原始视频帧进行解码,得到与该第一原始视频帧对应的第一解码视频帧,播放该第一解码视频帧。
需要说明的是,从多个解码器中确定多个目标解码器后,终端会保存支持解码目标视频的多个目标解码器,如果当第一目标解码器对目标视频解码失败时,可以切换至保存的多个目标解码器中的另一个目标解码器,采用另一个目标解码器对目标视频继续进行解码。
505、将该第一原始视频帧存储于第一缓存区中。
其中,该第一缓存区用于存储目标视频中的原始视频帧,终端对第一原始视频帧进行解码后,将该第一原始视频帧存储于第一缓存区中,以便后续能够在第一缓存区中查找到该第一原始视频帧。
506、采用第一目标解码器对目标视频中的第二原始视频帧进行解码,当解码失败时,确定第二原始视频帧的时刻。
507、将第二原始视频帧存储于第一缓存区中。
其中,该第二原始视频帧为目标视频中第一原始视频帧的下一个原始视频帧。
在采用第一目标解码器对第二原始视频帧进行解码的过程中,虽然第一目标解码器会对第二原始视频帧进行解码操作,但可能会出现解码失败的情况,此时第二原始视频帧解码失败,无法得到第二原始视频帧对应的解码视频帧,终端也无法正常播放该第二原始视频帧对应的解码视频帧。
例如,采用第一目标解码器对第二原始视频帧解码失败,可以包括以下情况:
1、采用的第一目标解码器在终端中的部分文件丢失,导致该第一目标解码器不能实现解码功能。
2、终端中配置有Surface(屏幕缓冲区),该Surface用于当终端对目标视频中的视频帧解码成功后,对该视频帧进行渲染,当该Surface需要更新时,第一目标解码器的解码中断,导致第一目标解码器解码失败。
为了采用另一个目标解码器来解码该第二原始视频帧,当采用第一目标解码器对第二原始视频帧进行解码失败时,确定该第二原始视频帧的时刻,将第二原始视频帧存储于第一缓存区中,以便根据该时刻在第一缓存区中查找到第二原始视频帧。
508、采用多个目标解码器中的第二目标解码器,对第一缓存区中,时刻与第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放第二解码视频帧。
第一目标解码器解码失败时,从该多个目标解码器中选取第二目标解码器,根据解码失败的时刻在第一缓存区中查找对应的原始视频帧,则该原始视频帧即为解码失败的第二原始视频帧,因此采用第二目标解码器重新对第二原始视频帧进行解码,得到第二解码视频帧,播放该第二解码视频帧,从而实现了视频帧的连续解码和连续播放。后续过程中,还可以继续采用第二目标解码器对第二原始视频帧之后的原始视频帧进行解码。
在另一种可能实现方式中,在对任一视频进行编码时,如果对视频中的每个视频帧分别进行编码,会导致计算量较大,且编码后的视频数据量较大,不能满足压缩要求。因此,提供了一种参考相邻视频帧来进行编码的方案,对于视频中的某些视频帧可以直接编码,而对于直接编码的视频帧之后的视频帧,可以获取该视频帧与相邻视频帧之间的差值,对差值进行编码。相应地,在对视频进行解码时,对于直接编码的视频帧,可以直接进行解码,而对于通过参考相邻视频帧来进行编码的视频帧,无法直接进行解码,而是需要根据解码后得到的差值与相邻视频帧,还原出原始的视频帧。
将直接编码的视频帧称为I帧,将参考上一个视频帧来进行编码的视频帧称为B帧,将参考上一个视频帧和下一个视频帧来进行编码的视频帧称为P帧,则该I帧、I帧之后的B帧和P帧形成一个GOP(Group of Pictures,图片组),即视频帧序列。
因此,在本发明实施例中,如图6所示,目标视频可以包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧(I帧),且每个视频帧序列中的视频帧数量为预设数量N(图6仅以N等于7为例)。即该目标视频中,以第一个视频帧为第一个起始视频帧,第一个起始视频帧和之后的N-1个视频帧构成第一个视频帧序列。第二个起始视频帧和第二个起始视频帧之后的N-1个视频帧构成第二个视频帧序列,以此类推。
如果直接对目标视频中的B帧或P帧进行解码,将导致解码失败,无法正常播放,从而导致出现花屏的情况。因此进行解码时,需要以视频帧序列为单位,对视频帧序列中的每个视频帧进行解码。
在一种可能实现方式中,采用第二目标解码器,对第一缓存区中的任一起始视频帧进行解码,得到该起始视频帧对应的解码视频帧,当该原始视频帧的时刻与第二原始视频帧的时刻不同时,丢弃解码视频帧,继续对下一个原始视频帧进行解码,直至当前解码的原始视频帧的时刻与第二原始视频帧的时刻相同时,播放原始视频帧对应的第二解码视频帧。
如图7所示,目标视频由I帧、B帧和P帧构成,将目标视频中已经解码成功的4个原始视频帧存储于第一缓存区中,当采用第一目标解码器对第5个视频帧(B帧)解码失败时,将第5个原始视频帧也存储于第一缓存区中,切换为采用第二目标解码器对第一缓存区中存储的5个原始视频帧依次进行解码。由于前4个原始视频帧的时刻与解码失败的视频帧的时刻不同,因此将解码得到视频帧丢弃,而解码到第5个原始视频帧时,由于当前解码的视频帧与解码失败的视频帧的时刻相同,因此播放解码得到的视频帧当前解码得到的视频帧为对第5个原始视频帧解码得到的视频帧。
如图8所示,采用第一目标解码器对第5个原始视频帧进行解码失败时,如果直接切换至采用第二目标解码器,第二目标解码器将无法继续对第6个原始视频帧进行解码,而是需要等待下一个起始视频帧,才能对下一个起始视频帧进行解码,在等待过程中无法播放视频帧,终端会处于黑屏状态,黑屏时长较长,严重影响了目标视频的播放效果。例如,一个视频帧序列中包括100帧,播放一个视频帧的时长为40毫秒,当在视频帧序列的起始视频帧解码失败时,则终端会出现4秒的黑屏时长,在该黑屏时长内不能播放视频。
而本发明实施例中,通过将第一目标解码器解码成功的原始视频帧存储于第一缓存区中,后续对第二原始视频帧解码失败时,第二目标解码器可以对第一缓存区中的起始视频帧进行解码,无需等待目标视频中的下一个起始视频帧,缩短了等待时间,避免终端处于黑屏状态,提升了目标视频的播放效果。
需要说明的是,本发明实施例仅是以采用第一目标解码器解码成功的任一原始视频帧均存储于第一缓存区中为例进行说明,而在另一实施例中,为了在保证解码效果的基础上尽可能地节省存储空间,加快第二目标解码器的解码速度,当采用第一目标解码器对目标视频中的任一起始视频帧解码成功或失败时,将起始视频帧存储于第一缓存区中。而且,由于之前第一缓存区中已存储的原始视频帧与当前的起始视频帧属于不同的视频帧序列,在后续解码过程中不需要根据第一缓存区中已存储的原始视频帧进行解码,因此将这些原始视频帧删除。其中,该任一起始视频帧为任一个视频帧序列中的第一个原始视频帧。
具体地,当采用第一目标解码器对目标视频中的原始视频帧解码成功或失败时,判断该原始视频帧是否为任一视频帧序列中的起始视频帧,当该原始视频帧为视频帧序列中的起始视频帧时,将第一缓存区中已存储的原始视频帧删除,将该原始视频帧存储于第一缓存区中,而当该原始视频帧不是视频帧序列中的起始视频帧时,直接将该原始视频帧存储于第一缓存区中。
509、采用第二目标解码器,对第二缓存区中的第三原始视频帧进行解码,得到第三解码视频帧,播放该第三解码视频帧。
其中,第三原始视频帧为第二原始视频帧的下一个原始视频帧。第二缓存区用于存储目标视频。
采用第二目标解码器对第一缓存区中的第二原始视频帧进行解码后,继续采用该第二目标解码器对第二缓存区中的第三原始视频帧进行解码,得到该第三原始视频帧对应的第三解码视频帧,播放该第三解码视频帧,后续继续采用该第二目标解码器对下一个原始视频帧进行解码,得到该下一个原始视频帧对应的解码视频帧,播放该解码视频帧,以此类推,即可实现目标视频的连续解码和播放。
在一种可能实现方式中,本发明实施例可以应用在终端中安装的播放应用程序中,且该播放应用程序中的设置界面中包括触发本发明实施例提供的视频解码方法的按钮,用户通过触发该按钮,可以控制终端采用该视频解码方法解码视频。
需要说明的是,本发明实施例中所确定的支持解码目标视频的目标解码器可以为至少一个。
一种可能实现方式中,如果仅确定了支持解码目标视频的一个目标解码器,可以将该目标解码器作为第一目标解码器,采用该第一目标解码器,对目标视频中的每个原始视频帧依次进行解码。
以第一原始视频帧为例,该第一原始视频帧为目标视频中的任一个原始视频帧,则采用该第一目标解码器对目标视频中的每个原始视频帧依次进行解码的过程可以包括:终端采用该第一目标解码器对第一原始视频帧进行解码,得到与该第一原始视频帧对应的第一解码视频帧,播放该第一解码视频帧,且将该第一解码视频帧存储于第一缓存区中。
后续还可以采用第一目标解码器继续对第一原始视频帧之后的原始视频帧进行解码。以第二原始视频帧为例,当对第二原始视频帧解码失败时,重新启动该第一目标解码器,重新采用该第一目标解码器,再次对第二原始视频帧进行解码。
当采用第一目标解码器对第二原始视频帧进行解码时,由于Surface进行更新导致第一目标解码器的解码中断而对第二原始视频帧解码失败时,无需切换至其他的解码器,而是可以重新启动该第一目标解码器,重新采用该第一目标解码器,再次对第二原始视频帧进行解码。
其中,重新采用该第一目标解码器进行解码的过程与步骤508-509类似,在此不再赘述。
另一种可能实现方式中,如果确定了支持解码目标视频的多个目标解码器,可以选取该多个目标解码器中的任一个目标解码器,作为第一目标解码器,采用该第一目标解码器,对目标视频中的每个原始视频帧依次进行解码。
以第一原始视频帧为例,该第一原始视频帧为目标视频中的任一个原始视频帧,则采用该第一目标解码器对目标视频中的每个原始视频帧依次进行解码的过程可以包括:终端采用该第一目标解码器对第一原始视频帧进行解码,得到与该第一原始视频帧对应的第一解码视频帧,播放该第一解码视频帧,且将该第一解码视频帧存储于第一缓存区中。
后续还可以采用第一目标解码器继续对第一原始视频帧之后的原始视频帧进行解码。以第二原始视频帧为例,当对第二原始视频帧解码失败时,可以重新启动该第一目标解码器,重新采用该第一目标解码器,再次对第二原始视频帧进行解码。或者还可以切换为第二目标解码器,通过执行上述步骤506-509,采用该第二目标解码器,对第二原始视频帧进行解码。
本发明实施例提供的方法,通过从终端配置的多个解码器中选取支持解码目标视频的多个目标解码器,采用该多个目标解码器中的第一目标解码器对目标视频中的第一原始视频帧进行解码,播放解码后的第一解码视频帧,在第一缓存区中存储该第一原始视频帧,而当采用该第一目标解码器对第二原始视频帧解码失败时,在第一缓存区中存储该第二原始视频帧,采用多个目标解码器中的第二目标解码器对第一缓存区中与第二原始视频帧时刻相同的原始视频帧解码,播放解码后的第二解码视频帧,通过将第一目标解码器解码成功的原始视频帧存储于第一缓存区中,后续对第二原始视频帧解码失败时,第二目标解码器可以对第一缓存区中的起始视频帧进行解码,无需等待目标视频中的下一个起始视频帧,缩短了等待时间,避免终端处于黑屏状态,提升了目标视频的播放效果。
并且,当采用第一目标解码器对目标视频中的任一起始视频帧解码成功或失败时,将起始视频帧存储于第一缓存区中,在保证解码效果的基础上尽可能地节省存储空间,加快第二目标解码器的解码速度。
图9是本发明实施例提供的一种视频解码方法的应用流程图,以在线播放视频的场景为例进行说明,该视频解码方法包括如下步骤:
901、终端显示视频服务器提供的视频应用界面,该视频应用界面中包括多个视频链接。
902、用户通过终端触发任一视频链接,终端检测到对任一视频链接的触发操作,确定接收到播放指令,向视频服务器发送该播放指令,该播放指令中携带该视频链接。
903、视频服务器根据该播放指令中的视频链接,确定该视频链接对应的目标视频,向终端依次发送该目标视频的视频帧。
904、如图10所示,终端接收视频服务器依次发送的视频帧1、视频帧2和视频帧3,存储于缓存区A中。
905、终端配置的多个解码器中,解码器1和解码器2为支持解码目标视频的解码器,采用解码器1对缓存区A中的视频帧依次进行解码后播放,且解码之后将视频帧存储于缓存区B中。
906、如图10所示,终端继续接收视频服务器依次发送的视频帧4和视频帧5,存储于缓存区A中,采用解码器1对缓存区A中的视频帧4进行解码后播放。
907、由于视频帧4为起始视频帧,因此将缓存区B中已经存储的视频帧1、视频帧2和视频帧3删除,将视频帧4存储于缓存区B中。
908、当采用解码器1对视频帧5解码失败时,将视频帧5存储于缓存区B中,采用解码器2从缓存区B中的视频帧4开始,对缓存区B中的视频帧进行解码但不播放,当采用解码器2解码到视频帧5时,播放解码后的视频帧。
图11是本发明实施例提供的一种视频解码装置的结构示意图。参见图11,该装置包括:
第一获取模块1101,用于当接收到目标视频的播放指令时,获取目标视频的目标类型信息,目标类型信息用于指示目标视频所属的类型;
第二获取模块1102,用于获取终端配置的多个解码器的指定类型信息,指定类型信息用于指示解码器支持解码的视频所属的类型;
确定模块1103,用于通过将多个解码器的指定类型信息与目标类型信息进行对比,确定多个解码器中支持解码目标视频的目标解码器;
解码模块1104,用于采用目标解码器对目标视频进行解码;
播放模块1105,用于播放解码后的视频。
本发明实施例提供的视频解码装置,通过获取目标视频的目标类型信息和终端配置的多个解码器的指定类型信息,该目标类型信息用于指示目标视频所属的类型,该指定类型信息用于指示解码器支持解码的视频所属的类型,将多个解码器的指定类型信息与目标类型信息进行对比,确定该多个解码器中支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码,播放解码后的视频。本发明实施例提供了一种自适应选取目标解码器的方式,不会直接采用默认解码器对目标视频进行解码,而是通过将多个解码器的指定类型信息与目标类型信息进行对比,选取出支持解码目标视频的目标解码器,采用该目标解码器对目标视频进行解码可以避免出现解码失败的问题,提高了视频解码的成功率,进而提高了视频播放的成功率。而且不会受到目标视频所属类型的限制,对于任意类型的目标视频均可采用本发明实施例提供的方式进行解码,扩展了应用范围。
在一种可能实现方式中,参见图12,目标视频包括多个原始视频帧,装置还包括存储模块1106;
解码模块1104,还用于当确定支持解码目标视频的至少一个目标解码器时,采用至少一个目标解码器中的第一目标解码器,对第一原始视频帧进行解码,得到与第一原始视频帧对应的第一解码视频帧,第一原始视频帧为目标视频中的任一个原始视频帧;
播放模块1105,还用于播放第一解码视频帧;
存储模块1106,用于将第一原始视频帧存储于第一缓存区中。
在另一种可能实现方式中,目标视频包括多个原始视频帧,装置还包括存储模块1106;
解码模块1104,还用于当确定支持解码目标视频的多个目标解码器时,采用多个目标解码器中的第一目标解码器,对第二原始视频帧进行解码;
确定模块1103,还用于当解码模块解码失败时,确定第二原始视频帧的时刻,第二原始视频帧为目标视频中的任一个原始视频帧;
存储模块1106,用于将第二原始视频帧存储于第一缓存区中;
解码模块1104,还用于采用多个目标解码器中的第二目标解码器,对第一缓存区中,时刻与第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧;
播放模块1105,还用于播放第二解码视频帧。
在另一种可能实现方式中,目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;
存储模块1106,还用于当采用第一目标解码器对目标视频中的任一起始视频帧解码成功或失败时,将第一缓存区中已存储的原始视频帧删除,将起始视频帧存储于第一缓存区中。
在另一种可能实现方式中,目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;解码模块1104还用于:
采用第二目标解码器,对第一缓存区中的任一起始视频帧进行解码,得到起始视频帧对应的解码视频帧;
当起始视频帧的时刻与第二原始视频帧的时刻不同时,丢弃解码视频帧;
继续对下一个原始视频帧进行解码,得到对应的解码视频帧,直至当前解码的原始视频帧的时刻与第二原始视频帧的时刻相同时,触发播放模块播放原始视频帧对应的第二解码视频帧。
在另一种可能实现方式中,解码模块1104还用于采用第二目标解码器,对第二缓存区中的第三原始视频帧进行解码,得到第三解码视频帧;
播放模块1105,还用于播放第三解码视频帧,第二缓存区用于存储目标视频,第三原始视频帧为第二原始视频帧的时刻的下一时刻的原始视频帧。
在另一种可能实现方式中,参见图12,装置还包括:
第三获取模块1107,用于获取历史解码记录,历史解码记录中包括至少一个解码记录条目,每个解码记录条目中包括已进行解码操作的视频的类型信息、对视频进行解码操作的解码器与解码结果之间的对应关系,解码结果包括解码成功或解码失败;
第四获取模块1108,用于对于每个解码器,从历史解码记录中,获取包括解码器且包括的解码结果为解码成功的解码记录条目;
第五获取模块1109,用于根据获取到的解码记录条目中的类型信息,获取解码器的指定类型信息。
在另一种可能实现方式中,参见图12,装置还包括:
第三获取模块1107,用于获取历史播放记录,历史播放记录中包括至少一个播放记录条目,每个播放记录条目中包括已进行播放操作的视频的类型信息、进行播放操作之前对视频进行解码操作的解码器与播放结果之间的对应关系,播放结果包括播放成功或播放失败;
第四获取模块1108,用于对于每个解码器,从历史播放记录中,获取包括解码器且包括的播放结果为播放成功的播放记录条目;
第五获取模块1109,用于根据获取到的播放记录条目中的类型信息,获取解码器的指定类型信息。
在另一种可能实现方式中,参见图12,确定模块1103,包括:
对比单元1113,用于通过将多个解码器的指定类型信息与目标类型信息进行对比,确定多个解码器中支持解码目标视频的多个目标解码器;
选取单元1123,用于按照多个目标解码器的优先级,从多个目标解码器中选取优先级最高的目标解码器。
在另一种可能实现方式中,参见图12,确定模块1103,包括:
获取单元1133,用于获取当前登录的用户标识的等级;
选取单元1123,用于从多个解码器中,选取与等级匹配的多个解码器;
对比单元1113,用于通过将与等级匹配的多个解码器的指定类型信息与目标类型信息进行对比,确定目标解码器。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的视频解码装置在解码视频时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频解码装置的实施例与视频解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13是本发明实施例提供的一种终端的结构示意图。该终端1300可以是智能手机、平板电脑、MP3播放器、MP4播放器、笔记本电脑、台式电脑、头戴设备,或其他任意智能终端等电子设备。
通常,终端1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所具有以实现本申请中方法实施例提供的视频解码方法。
在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、音频电路1306中的至少一种。
外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。
射频电路1304用于接收和发射RF(Radio Frequency,射频)信号,与通信网络以及其他通信设备进行通信,将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。
显示屏1305用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。
音频电路1306可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。
本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图14是本发明实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)1401和一个或一个以上的存储器1402,其中,所述存储器1402中存储有至少一条指令,所述至少一条指令由所述处理器1401加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
服务器1400可以用于执行上述视频解码方法中服务器所执行的步骤。
本发明实施例还提供了一种视频解码装置,该装置包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,指令、程序、代码集或指令集由处理器加载并具有以实现上述实施例的视频解码方法中所具有的操作。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并具有以实现上述实施例的视频解码方法中所具有的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种视频解码方法,其特征在于,所述方法包括:
当接收到目标视频的播放指令时,获取所述目标视频的目标类型信息,所述目标类型信息用于指示所述目标视频所属的类型;
获取终端配置的多个解码器的指定类型信息,所述指定类型信息用于指示所述解码器支持解码的视频所属的类型;
通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器;
采用所述目标解码器对所述目标视频进行解码,播放解码后的视频。
2.根据权利要求1所述的方法,其特征在于,所述目标视频包括多个原始视频帧,所述采用所述目标解码器对所述目标视频进行解码,播放解码后的视频,包括:
当确定支持解码所述目标视频的至少一个目标解码器时,采用所述至少一个目标解码器中的第一目标解码器,对第一原始视频帧进行解码,得到与所述第一原始视频帧对应的第一解码视频帧,所述第一原始视频帧为所述目标视频中的任一个原始视频帧;
播放所述第一解码视频帧,将所述第一原始视频帧存储于第一缓存区中。
3.根据权利要求1所述的方法,其特征在于,所述目标视频包括多个原始视频帧,所述采用所述目标解码器对所述目标视频进行解码,播放解码后的视频,包括:
当确定支持解码所述目标视频的多个目标解码器时,采用所述多个目标解码器中的第一目标解码器,对第二原始视频帧进行解码,当解码失败时,确定所述第二原始视频帧的时刻,所述第二原始视频帧为所述目标视频中的任一个原始视频帧;
将所述第二原始视频帧存储于第一缓存区中;
采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧。
4.根据权利要求2或3所述的方法,其特征在于,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;所述方法还包括:
当采用所述第一目标解码器对所述目标视频中的任一起始视频帧解码成功或失败时,将所述第一缓存区中已存储的原始视频帧删除,将所述起始视频帧存储于所述第一缓存区中。
5.根据权利要求3所述的方法,其特征在于,所述目标视频包括至少一个视频帧序列,每个视频帧序列包括一个起始视频帧,且每个视频帧序列中的视频帧数量为预设数量;所述采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧,包括:
采用所述第二目标解码器,对所述第一缓存区中的任一起始视频帧进行解码,得到所述起始视频帧对应的解码视频帧;
当所述起始视频帧的时刻与所述第二原始视频帧的时刻不同时,丢弃所述解码视频帧;
继续对下一个原始视频帧进行解码,得到对应的解码视频帧,直至当前解码的原始视频帧的时刻与所述第二原始视频帧的时刻相同时,播放所述原始视频帧对应的第二解码视频帧。
6.根据权利要求3所述的方法,其特征在于,所述采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧,播放所述第二解码视频帧之后,所述方法还包括:
采用所述第二目标解码器,对第二缓存区中的第三原始视频帧进行解码,得到第三解码视频帧,播放所述第三解码视频帧,所述第二缓存区用于存储所述目标视频,所述第三原始视频帧为所述第二原始视频帧的时刻的下一时刻的原始视频帧。
7.根据权利要求1所述的方法,其特征在于,所述获取终端配置的多个解码器的指定类型信息之前,所述方法还包括:
获取历史解码记录,所述历史解码记录中包括至少一个解码记录条目,每个解码记录条目中包括已进行解码操作的视频的类型信息、对所述视频进行解码操作的解码器与解码结果之间的对应关系,所述解码结果包括解码成功或解码失败;
对于每个解码器,从所述历史解码记录中,获取包括所述解码器且包括的解码结果为解码成功的解码记录条目;
根据获取到的解码记录条目中的类型信息,获取所述解码器的指定类型信息。
8.根据权利要求1所述的方法,其特征在于,所述获取终端配置的多个解码器的指定类型信息之前,所述方法还包括:
获取历史播放记录,所述历史播放记录中包括至少一个播放记录条目,每个播放记录条目中包括已进行播放操作的视频的类型信息、进行播放操作之前对所述视频进行解码操作的解码器与播放结果之间的对应关系,所述播放结果包括播放成功或播放失败;
对于每个解码器,从所述历史播放记录中,获取包括所述解码器且包括的播放结果为播放成功的播放记录条目;
根据获取到的播放记录条目中的类型信息,获取所述解码器的指定类型信息。
9.根据权利要求1所述的方法,其特征在于,所述通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器,包括:
通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的多个目标解码器;
按照所述多个目标解码器的优先级,从所述多个目标解码器中选取优先级最高的目标解码器。
10.根据权利要求1所述的方法,其特征在于,所述通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器,包括:
获取当前登录的用户标识的等级;
从所述多个解码器中,选取与所述等级匹配的多个解码器;
通过将与所述等级匹配的多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述目标解码器。
11.一种视频解码装置,其特征在于,所述装置包括:
第一获取模块,用于当接收到目标视频的播放指令时,获取所述目标视频的目标类型信息,所述目标类型信息用于指示所述目标视频所属的类型;
第二获取模块,用于获取终端配置的多个解码器的指定类型信息,所述指定类型信息用于指示所述解码器支持解码的视频所属的类型;
确定模块,用于通过将所述多个解码器的指定类型信息与所述目标类型信息进行对比,确定所述多个解码器中支持解码所述目标视频的目标解码器;
解码模块,用于采用所述目标解码器对所述目标视频进行解码;
播放模块,用于播放解码后的视频。
12.根据权利要求11所述的装置,其特征在于,所述目标视频包括多个原始视频帧,所述装置还包括存储模块;
所述解码模块,还用于当确定支持解码所述目标视频的至少一个目标解码器时,采用所述至少一个目标解码器中的第一目标解码器,对第一原始视频帧进行解码,得到与所述第一原始视频帧对应的第一解码视频帧,所述第一原始视频帧为所述目标视频中的任一个原始视频帧;
所述播放模块,还用于播放所述第一解码视频帧;
所述存储模块,用于将所述第一原始视频帧存储于第一缓存区中。
13.根据权利要求11所述的装置,其特征在于,所述目标视频包括多个原始视频帧,所述装置还包括存储模块;
所述解码模块,还用于当确定支持解码所述目标视频的多个目标解码器时,采用所述多个目标解码器中的第一目标解码器,对第二原始视频帧进行解码;
所述确定模块,还用于当所述解码模块解码失败时,确定所述第二原始视频帧的时刻,所述第二原始视频帧为所述目标视频中的任一个原始视频帧;
所述存储模块,用于将所述第二原始视频帧存储于第一缓存区中;
所述解码模块,还用于采用所述多个目标解码器中的第二目标解码器,对所述第一缓存区中,时刻与所述第二原始视频帧的时刻相同的原始视频帧进行解码,得到第二解码视频帧;
所述播放模块,还用于播放所述第二解码视频帧。
14.一种视频解码装置,其特征在于,所述装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至10任一权利要求所述的视频解码方法中所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至10任一权利要求所述的视频解码方法中所执行的操作。
CN201910506089.1A 2019-06-12 2019-06-12 视频解码方法、装置及存储介质 Active CN112087633B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910506089.1A CN112087633B (zh) 2019-06-12 2019-06-12 视频解码方法、装置及存储介质
PCT/CN2020/094600 WO2020248909A1 (zh) 2019-06-12 2020-06-05 视频解码方法、装置、计算机设备及存储介质
US17/377,370 US11930197B2 (en) 2019-06-12 2021-07-15 Video decoding method and apparatus, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910506089.1A CN112087633B (zh) 2019-06-12 2019-06-12 视频解码方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112087633A true CN112087633A (zh) 2020-12-15
CN112087633B CN112087633B (zh) 2022-08-09

Family

ID=73734440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910506089.1A Active CN112087633B (zh) 2019-06-12 2019-06-12 视频解码方法、装置及存储介质

Country Status (3)

Country Link
US (1) US11930197B2 (zh)
CN (1) CN112087633B (zh)
WO (1) WO2020248909A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113038137A (zh) * 2021-03-09 2021-06-25 深圳市东微智能科技股份有限公司 视频数据的输出方法、系统、装置及计算机可读存储介质
CN113259744A (zh) * 2021-05-13 2021-08-13 北京字跳网络技术有限公司 视频的展示方法、装置、设备及介质
CN114007077A (zh) * 2021-11-17 2022-02-01 北京百度网讯科技有限公司 多媒体资源的处理方法、装置、电子设备和存储介质
CN114666603A (zh) * 2022-05-06 2022-06-24 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质
CN114765677A (zh) * 2021-01-12 2022-07-19 腾讯科技(深圳)有限公司 多人视频会话方法、装置、计算机设备及存储介质
WO2022179397A1 (zh) * 2021-02-24 2022-09-01 腾讯科技(深圳)有限公司 解码器的配置方法、装置、介质以及电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113271493A (zh) * 2021-04-06 2021-08-17 中国电子科技集团公司第十五研究所 视频流解码方法及计算机可读存储介质
CN113411675B (zh) * 2021-05-20 2023-04-25 歌尔股份有限公司 视频混合播放方法、装置、设备及可读存储介质
CN114257846A (zh) * 2021-12-23 2022-03-29 杭州登虹科技有限公司 基于内容感知的移动端自适应视频倍速播放方法
CN115278258A (zh) * 2022-07-11 2022-11-01 海南视联通信技术有限公司 一种音视频数据处理方法、装置、终端及可读存储介质
CN116170581B (zh) * 2023-02-17 2024-01-23 厦门瑞为信息技术有限公司 一种基于目标感知的视频信息编解码方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050030386A1 (en) * 2003-08-04 2005-02-10 John Kamieniecki Method and apparatus for determining video formats supported by a digital television receiver
CN104954863A (zh) * 2015-06-05 2015-09-30 深圳市九洲电器有限公司 音视频解码组件选择方法及系统
CN107172432A (zh) * 2017-03-23 2017-09-15 杰发科技(合肥)有限公司 一种视频处理方法、装置及终端
CN107801095A (zh) * 2017-09-25 2018-03-13 平安普惠企业管理有限公司 一种音视频解码方法及终端设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101074964B1 (ko) * 2007-05-29 2011-10-18 닛본 덴끼 가부시끼가이샤 동화상 변환 장치, 동화상 변환 방법, 및 동화상 변환 프로그램
US8718135B2 (en) * 2008-09-19 2014-05-06 The Hong Kong University Of Science And Technology Method and system for transcoding based robust streaming of compressed video
CN102685481B (zh) * 2011-03-18 2016-08-03 腾讯科技(深圳)有限公司 一种媒体文件处理方法及其系统
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
CN104581171B (zh) * 2013-10-15 2019-08-27 腾讯科技(深圳)有限公司 一种浏览器上播放视频的方法、装置及移动终端
CN104780378B (zh) * 2015-04-16 2018-10-19 腾讯科技(北京)有限公司 一种用于解码视频的方法、装置和播放器
KR20180083132A (ko) * 2017-01-12 2018-07-20 삼성전자주식회사 전자 장치 및 그 동작방법
CN109889894A (zh) * 2019-03-13 2019-06-14 苏州科达科技股份有限公司 媒体文件解码方法、装置及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050030386A1 (en) * 2003-08-04 2005-02-10 John Kamieniecki Method and apparatus for determining video formats supported by a digital television receiver
CN104954863A (zh) * 2015-06-05 2015-09-30 深圳市九洲电器有限公司 音视频解码组件选择方法及系统
CN107172432A (zh) * 2017-03-23 2017-09-15 杰发科技(合肥)有限公司 一种视频处理方法、装置及终端
CN107801095A (zh) * 2017-09-25 2018-03-13 平安普惠企业管理有限公司 一种音视频解码方法及终端设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114765677A (zh) * 2021-01-12 2022-07-19 腾讯科技(深圳)有限公司 多人视频会话方法、装置、计算机设备及存储介质
WO2022179397A1 (zh) * 2021-02-24 2022-09-01 腾讯科技(深圳)有限公司 解码器的配置方法、装置、介质以及电子设备
CN113038137A (zh) * 2021-03-09 2021-06-25 深圳市东微智能科技股份有限公司 视频数据的输出方法、系统、装置及计算机可读存储介质
CN113038137B (zh) * 2021-03-09 2022-12-23 深圳市东微智能科技股份有限公司 视频数据的输出方法、系统、装置及计算机可读存储介质
CN113259744A (zh) * 2021-05-13 2021-08-13 北京字跳网络技术有限公司 视频的展示方法、装置、设备及介质
CN113259744B (zh) * 2021-05-13 2023-08-01 北京字跳网络技术有限公司 视频的展示方法、装置、设备及介质
CN114007077A (zh) * 2021-11-17 2022-02-01 北京百度网讯科技有限公司 多媒体资源的处理方法、装置、电子设备和存储介质
CN114007077B (zh) * 2021-11-17 2023-09-01 北京百度网讯科技有限公司 多媒体资源的处理方法、装置、电子设备和存储介质
CN114666603A (zh) * 2022-05-06 2022-06-24 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质
CN114666603B (zh) * 2022-05-06 2024-05-03 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112087633B (zh) 2022-08-09
US11930197B2 (en) 2024-03-12
US20210344938A1 (en) 2021-11-04
WO2020248909A1 (zh) 2020-12-17

Similar Documents

Publication Publication Date Title
CN112087633B (zh) 视频解码方法、装置及存储介质
JP2019533347A (ja) 映像符号化方法、映像復号方法、および端末
US20150156557A1 (en) Display apparatus, method of displaying image thereof, and computer-readable recording medium
CN102460410B (zh) 通信系统中发送和接收用户界面的装置和方法
CN114501062B (zh) 视频渲染协同方法、装置、设备及存储介质
US20190149818A1 (en) Video data encoding and decoding method, device, and system, and storage medium
CN111836076B (zh) 视频分辨率切换方法及装置、电子设备
US11985358B2 (en) Artifact removal method and apparatus based on machine learning, and method and apparatus for training artifact removal model based on machine learning
CN113965751B (zh) 屏幕内容编码方法、装置、设备及存储介质
CN114040245A (zh) 视频播放方法、装置、计算机存储介质和电子设备
CN104427383A (zh) 一种信息处理方法以及电子设备
CN114339404B (zh) 一种屏保壁纸的显示方法、装置、电子设备及存储介质
JP7388610B2 (ja) 映像符号化方法、映像復号方法、および端末
CN114339325B (zh) 一种基于安卓系统的多引擎动态壁纸播放方法及装置
CN114501084B (zh) 播放器的起播方法、装置、设备和介质
CN113596583A (zh) 视频流子弹时间数据处理方法及装置
CN115701003A (zh) 天线切换方法、装置、存储介质及电子设备
CN107004018B (zh) 数据处理方法及装置
CN114025170A (zh) 视频播放方法、装置、计算机设备和计算机可读存储介质
CN109710359B (zh) 动图显示方法、装置、计算机可读存储介质和终端
CN112312208A (zh) 多媒体信息的处理方法、装置、存储介质和电子设备
CN114025162B (zh) 熵解码方法、介质、程序产品和电子设备
CN112243135B (zh) 一种多媒体播放的方法和装置
CN111954068B (zh) 用于视频清晰度切换的方法、设备及电子设备
CN115604522A (zh) 用于快速切换频道的电子设备、方法以及计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40036268

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant