CN113949898B - 多媒体处理方法、装置、设备和存储介质 - Google Patents

多媒体处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN113949898B
CN113949898B CN202111192251.0A CN202111192251A CN113949898B CN 113949898 B CN113949898 B CN 113949898B CN 202111192251 A CN202111192251 A CN 202111192251A CN 113949898 B CN113949898 B CN 113949898B
Authority
CN
China
Prior art keywords
media
frame
queue
time stamp
frames
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
CN202111192251.0A
Other languages
English (en)
Other versions
CN113949898A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202111192251.0A priority Critical patent/CN113949898B/zh
Publication of CN113949898A publication Critical patent/CN113949898A/zh
Application granted granted Critical
Publication of CN113949898B publication Critical patent/CN113949898B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/233Processing of audio elementary streams
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/43Processing 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/439Processing of audio elementary streams
    • 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/43Processing 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/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请提供了一种多媒体处理方法、装置、设备和存储介质,该方法包括:分别解码获得的多媒体文件中各类型的媒体帧,得到多媒体文件解码出的至少一种类型的媒体队列;针对每个媒体队列,推算出媒体队列中各媒体帧的预估时间戳;针对每个媒体队列,如果基于媒体队列中媒体帧的时间戳与其预估时间戳确定出媒体帧的时间戳属于异常时间戳,根据媒体帧对应的时间戳异常类型,以媒体帧为操作基准执行媒体帧删除或者插入操作,以修正媒体队列中各媒体帧的时间戳组成的时间戳队列;分别对修正后的各媒体队列进行编码。本申请可以在对多媒体进行转码处理的过程中,对多媒体中的媒体帧进行时间戳异常处理。

Description

多媒体处理方法、装置、设备和存储介质
技术领域
本申请涉及多媒体处理技术领域,尤其涉及一种多媒体处理方法、装置、设备和存储介质。
背景技术
多媒体网站获得音频以及视频的来源非常多,这些不同来源的音频以及视频需要经过转码才可以最终发布。音视频转码是指将已经压缩编码的音频或者视频码流转换为符合该多媒体网站指定格式或者参数的音频或者视频流。
在多媒体网站获得的音频以及视频中,经常会存在时间戳有误的音频或者视频。如果音频或者视频中的时间戳有误,会影响到音频以及视频的正常播放等。然而,目前在音视频转码过程中都未涉及到对于音频以及视频中时间戳异常的修复处理,因此,如何在音视频转码过程中处理音频以及视频中的时间戳异常是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请提供了一种多媒体处理方法、装置、设备和存储介质,以在对多媒体进行转码处理的过程中,对多媒体中的媒体帧进行时间戳异常处理,减少由于媒体帧的时间戳异常而导致的业务处理异常或者播放异常等。
为实现上述目的,本申请提供了如下技术方案:
一方面,本申请提供了一种多媒体处理方法,包括:
获得待解码的多媒体文件,所述多媒体文件包括被编码的至少一种类型的媒体帧,所述至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种;
分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,所述媒体队列包括所述多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧;
针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,所述目标媒体帧为所述至少一种类型的媒体队列中时间戳最靠前的媒体帧或者是所述至少一种类型的媒体帧中属于指定类型的媒体队列中的第一个媒体帧;
针对每个媒体队列,如果基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列;
分别对修正后的各媒体队列进行编码。
在一种可能的实现方式中,所述如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,包括:
如所述媒体队列中媒体帧的时间戳与其预估时间戳之间差值的绝对值大于设定阈值,确定所述媒体帧的时间戳属于异常时间戳。
在又一种可能的实现方式中,所述根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,包括:
如所述媒体帧的时间戳小于其预估时间戳,按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧;
如所述媒体帧的时间戳大于其预估时间戳,向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,并基于所述媒体帧的时间戳及其预估时间戳,设置所述修正媒体帧的时间戳。
在又一种可能的实现方式中,所述按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧,包括:
按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定需要删除的媒体帧的第一数量;
按照所述媒体队列中媒体帧的先后顺序,以所述媒体帧为删除起点,从所述媒体帧及所述媒体帧之后的其他媒体帧中删除所述第一数量个媒体帧。
所述向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,包括:
按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定在所述媒体帧之后需要插入的修正媒体帧的第二数量;
向所述媒体队列中所述媒体帧之后插入第二数量个修正媒体帧。
在又一种可能的实现方式中,在所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列之前,还包括:
如所述多媒体文件中第一媒体帧的时间戳不大于第二媒体帧的时间戳,对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正,以使得所述多媒体文件中各媒体帧的时间戳依次递增,其中,所述第一媒体帧与所述第二媒体帧为所述多媒体文件中任意相邻的两个媒体帧,且所述第二媒体帧位于所述第一媒体帧之前。
在又一种可能的实现方式中,所述对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正,包括:
按照所述多媒体文件中所述第一媒体帧对应类型的媒体帧的帧率、所述第一媒体帧的时间戳以及所述第二媒体帧的时间戳,确定所述第一媒体帧的时间戳所需增加的时间偏移量;
将所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳均增加所述时间偏移量。
在又一种可能的实现方式中,在所述对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正之后,还包括:
根据所述第一媒体帧的媒体类型,将所述第一媒体帧加入所述第一媒体帧所属媒体类型对应的待解码媒体队列,以将所述多媒体文件拆解为至少一种媒体类型的待解码媒体队列;
所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,包括:
分别对所述多媒体文件拆解出的各待解码媒体队列进行解码,得到解码出的至少一种类型的媒体队列。
在又一种可能的实现方式中,所述多媒体文件包括音频帧和视频帧;
所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,包括:
分别解码所述多媒体文件中的视频帧和音频帧,得到所述多媒体文件解码出的视频队列和音频队列,所述视频队列包括所述多媒体文件中解码出的具有先后顺序的多个视频帧,所述音频队列包括所述多媒体文件中解码出的具有先后顺序的多个音频帧;
所述针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,包括:
针对视频队列,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述视频队列中视频帧的帧率,推算出所述视频队列中各视频帧的预估时间戳;
针对音频队列,去除所述音频队列中时间戳位于所述视频队列中第一个视频帧的时间戳之前的音频帧,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述音频队列中音频帧的帧率,推算出所述音频队列中剩余的各音频帧的预估时间戳。
又一方面,本申请还提供了一种多媒体处理装置,包括:
文件获得单元,用于获得待解码的多媒体文件,所述多媒体文件包括被编码的至少一种类型的媒体帧,所述至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种;
解码单元,用于分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,所述媒体队列包括所述多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧;
预估单元,用于针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,所述目标媒体帧为所述至少一种类型的媒体队列中时间戳最靠前的媒体帧或者是所述至少一种类型的媒体队列中属于指定类型的媒体队列中的第一个媒体帧;
修正单元,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列;
编码单元,用于分别对所述第一修正单元修正后的各媒体队列进行编码。
又一方面,本申请还提供了一种计算机设备,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如上任意一项所述的多媒体处理方法。
又一方面,本申请还提供了一种计算机可读存储介质,用于存储程序,所述程序被执行时,用于实现如上任意一项所述多媒体处理方法。
由以上内容可知,在从多媒体文件中分别解码出各类型的媒体队列之后,针对每种类型的媒体队列,会推算出该媒体队列中各个媒体帧的预估时间戳。如基于媒体队列中媒体帧的时间戳与其预估时间戳确定出该媒体帧的时间戳属于异常时间戳,则会根据该媒体帧对应的时间戳异常类型,通过插入媒体帧或者删除媒体帧的方式,来修正该媒体队列对应的时间戳队列,从而可以在媒体队列编码前修正媒体队列中各媒体帧所存在的时间戳递增异常问题,进而可以减少编码后的媒体队列存在时间戳异常的情况,也就降低了由于转码后的多媒体存在时间戳异常而导致的播放异常情况。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请所适用的多媒体处理系统所适用的一种场景示意图;
图2示出了本申请提供的多媒体处理方法一个实施例的流程示意图;
图3示出了本申请提供的多媒体处理方法一个实施例的流程示意图;
图4示出了本申请提供的多媒体处理方法在一种应用场景中的具体实现流程示意图;
图5示出了本申请提供的多媒体处理装置的一种组成结构示意图;
图6示出了本申请提供的计算机设备的一种组成结构示意图。
具体实施方式
本申请的方案适用于处理多媒体服务的单台服务器,或者是多台服务器构成的多媒体服务平台等,如,该多媒体服务平台可以是提供音频以及视频播放服务的多媒体服务网站等。
为了便于理解,下面以本申请适用的一种场景进行介绍。
如图1所示,其示出了本申请一种多媒体处理方法适用的一种场景的组成架构示意图。
图1的场景中包括:多媒体服务平台110以及至少一个客户端120。
其中,多媒体服务平台可以包括一台或者多台多媒体服务器111。
该多媒体服务器111可以获得音频以及视频等多种类型的多媒体文件,并将多媒体文件转码为符合该多媒体服务器设定的多媒体格式规范后,发布获得多媒体文件,以使得客户端可以访问到该多媒体服务器发布的多媒体文件。
其中,多媒体文件的转码的本质就是先对多媒体文件解码,然后按照编码要求对解码出的多媒体文件重新编码。
客户端120可以为浏览器所在的终端,指定播放器所在终端或者提供多媒体服务的应用所在的终端。客户端120可以向多媒体服务器请求音频以及视频等多媒体文件,以在客户端播放相应的多媒体文件。
在本申请中,为了避免多媒体服务器向客户端输出的多媒体文件存在播放错误,本申请中在多媒体服务器在对多媒体文件进行转码过程中,会对多媒体文件中存在的时间戳异常进行修复。
需要说明的是,图1仅仅是本申请所适用的一种场景的示意图,在实际应用中,多媒体处理方法所适用的场景还可能会有其他可能,本申请对此不加限制。
下面结合流程图,从多媒体服务器侧对本申请提供的多媒体处理方法进行介绍。
如图2所示,其示出了本申请提供的一种多媒体处理方法一个实施例的流程示意图,本实施例的方法可以应用于前面提到的多媒体服务平台。
本实施例的方法可以包括:
S201,获得待解码的多媒体文件。
其中,该多媒体文件包括被编码的至少一种类型的媒体帧,该至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种。
如,该多媒体文件可以为包含多个音频帧的音频文件,还可以为包含多个视频帧的视频文件,或者,还可以是同时包含有多个音频帧和视频帧的多媒体文件。
S202,分别解码该多媒体文件中各类型的媒体帧,得到该多媒体文件解码出的至少一种类型的媒体队列。
其中,每个媒体队列包括该多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧。
如,多媒体文件仅仅包括音频帧或者视频帧的情况下,那么仅需要对多媒体文件进行音频或者视频解码,从而得到多媒体文件包含的音频队列或者视频队列,音频队列中可以包括具有先后顺序的多个音频帧,而视频队列则包括具有先后顺序的多个视频帧。
又如,多媒体文件同时包括音频帧和视频帧的情况下,则需要分别对多媒体文件中的音频以及视频进行解码,最终得到解码出的音频队列和视频队列。
可选的,在多媒体文件同时包括音频帧和视频帧的情况下,可以先拆分出多媒体文件中的音频帧和视频帧,得到待解码音频队列和待解码视频队列。其中,对多媒体文件进行拆分实际上就是将多媒体文件中的音频帧和视频帧分别划归到相应的队列中。如,依次从多媒体文件中取出各媒体帧,如取出的媒体帧为音频帧,则将音频帧加入到待解码音频队列;如取出的媒体帧为视频帧,则将视频帧加入到待解码视频队列。
相应的,分别对多媒体文件拆解出的待解码音频队列和待解码视频队列分别进行解码,得到解码出音频队列和视频队列。
S203,针对每个媒体队列,以至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于该媒体队列中媒体帧的帧率,推算出该媒体队列中各媒体帧的预估时间戳。
其中,该目标媒体帧可以为该至少一种类型的媒体队列中时间戳最靠前的媒体帧。如,媒体队列包括音频队列和视频队列的情况下,音频队列和视频队列中时间戳最靠前的一帧媒体帧为音频帧,则以该音频帧作为目标媒体帧。
该目标媒体帧还可以是该至少一种类型的媒体队列中属于指定类型的媒体队列中的第一个媒体帧。如,指定类型的媒体队列可以为音频队列或者视频队列。可选的,在多媒体文件同时包括音频帧和视频帧的情况下,考虑到用户的观看体验,在播放多媒体文件时一般会先输出视频帧,以避免出现有声音但是画面为黑屏的情况,基于此,该目标视频帧可以为视频队列中第一个视频帧。
其中,对于某一类型的媒体帧,媒体帧的帧率表示每秒输出视频帧的数量。如,视频帧的帧率是指每秒显示的视频帧的帧数。
预估时间戳是指以该起始时间戳为起点,按照该媒体队列中媒体帧的帧率,推算出的各媒体帧理论上的时间戳。
如,以媒体队列为视频队列为例,假设视频帧的帧率为25帧/秒,而每秒等于1000毫秒,由此通过数学计算1000/25可以得到:理论上视频队列中任意两个相邻的视频帧之间的时间间隔为40ms,那么假设目标媒体帧为视频队列中第一个视频帧,且第一个视频帧对应的起始时间戳为0ms,视频队列中第二个视频帧的预估时间戳应为40ms,而第二个视频帧的预估时间戳应为80ms,依次类推,可以得到视频队列中各个视频帧的预估时间戳。
S204,针对每个媒体队列,如基于该媒体队列中媒体帧的时间戳与其预估时间戳确定出该媒体帧的时间戳属于异常时间戳,根据该媒体帧对应的时间戳异常类型,以该媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列。
可以理解的是,如果媒体帧实际的时间戳与其预估时间戳之间的偏差较大,则说明该媒体帧的时间戳存在异常。例如,较为常见情况为,由于媒体队列中一些媒体帧的时间戳与预估时间戳之间的存在较大偏差,使得媒体队列中频繁出现媒体帧的时间戳延后或者超前的情况,最终使得媒体队列中媒体帧的时间戳出现不均匀递增等情况。
如,在一种可能的情况中,如媒体队列中媒体帧的时间戳与其预估时间戳之间的差值的绝对值大于设定阈值,则确定该媒体帧的时间戳属于异常时间戳。其中,该设定阈值可以根据需要设定,例如,该设定阈值可以目标间隔时长的设定倍数(如3倍等),目标间隔时长为基于媒体帧的帧率推算出的两个相邻媒体帧之间的间隔时长。
可以理解的是,媒体帧的时间戳出现异常大部分情况是由于时间戳超前或者延后导致的,因此,媒体帧对应的时间戳异常类型可以分为媒体帧的时间戳的时间超前,以及,媒体帧的时间戳的时间延后这两种情况。
相应的,对于媒体队列中每个媒体帧,根据该媒体帧对应的时间戳异常类型,可以以该媒体帧为操作基准执行媒体帧删除或者插入操作,可以使得操作后的媒体队列中各个媒体帧的时间戳均匀增加,从而修正媒体队列中时间戳非均匀递增的异常情况。
如,在一种可能的实现方式中,对于媒体队列中每个媒体帧,如媒体帧的时间戳小于其预估时间戳(即媒体帧实际的时间戳早于其预估时间戳),按照媒体队列中媒体帧的先后顺序,以该媒体帧为删除起点,删除该起始媒体帧在内的至少一帧媒体帧。相应的,如该媒体帧的时间戳大于其预估时间戳(即媒体帧实际的时间戳晚于其预估时间戳),向该媒体队列中该媒体帧之后插入至少一帧修正媒体帧,并基于该媒体帧的时间戳及其预估时间戳,设置修正媒体帧的时间戳。
其中,以媒体帧为删除起点删除的媒体帧的数量可以根据该媒体帧的时间戳与其预估时间戳的差值以及该媒体帧的帧率确定。为了便于区分,将以该删除起点删除的媒体帧的数量称为第一数量。相应的,可以按照该媒体队列中媒体帧的先后顺序,以该媒体帧为删除起点,从该媒体帧及媒体帧之后的其他媒体帧中删除该第一数量个媒体帧。
如,假设该媒体帧的时间戳小于其预估时间戳,且与其预估时间戳的差值为160ms,而该媒体帧的帧率为25,则按照该帧率可以推算出理论上两个相邻媒体帧的时间间隔为40ms,而160ms可以包括4个40ms,则说明媒体队列中多了4个媒体帧,因此,可以删除该媒体帧以及该媒体帧之后紧邻的三个媒体帧,从而实现以该媒体帧为删除起点删除4个媒体帧。
其中,对于媒体队列中任意一个媒体帧而言,在该媒体帧之后所需插入的修正媒体帧可以与该媒体帧相同的一个媒体帧,如,复制该媒体帧作为修正媒体帧,然后在该媒体帧与媒体队列中该媒体帧之后下一个媒体帧之间插入至少一个修正媒体帧。
在一种可能的实现方式中,针对每个媒体帧,与确定第一数量的方式相似,本申请可以按照该媒体帧的时间戳与其预估时间戳的差值以及媒体帧对应的帧率,确定在该媒体帧之后需要插入的修正媒体帧的第二数量。
如,媒体帧的时间戳与其预估时间戳的差值为200ms,而帧率为25帧/秒,则基于帧率确定出的媒体队列中媒体帧之间时间戳的间隔时长为1000ms/25(帧/秒)=40,相应的,200ms/40ms=5,则说明第二数量为5。
可以理解的是,媒体队列中各媒体帧的时间戳需按照媒体帧的先后顺序均匀递增,因此,为了更为可靠的保证时间戳的均匀递增,本申请中可以按照媒体队列中媒体帧的先后顺序,依次对媒体队列中各媒体帧执行步骤S204的操作,直至媒体队列中所有媒体帧均被处理为止。
S205,分别对修正后的各媒体队列进行编码。
可以理解的是,对修正后的各媒体队列的编码可以多媒体服务平台设定的编码格式进行编码,以完成对多媒体文件的转码。
可以理解的是,在实际应用中,在分别对修正后的各媒体队列进行编码之后,还可以对编码后的各媒体队列进行封装,而封装得到的多媒体文件就是转码后的多媒体文件。
由以上内容可知,在从多媒体文件中分别解码出各类型的媒体队列之后,针对每种类型的媒体队列,会推算出该媒体队列中各个媒体帧的预估时间戳。如基于媒体队列中媒体帧的时间戳与其预估时间戳确定出该媒体帧的时间戳属于异常时间戳,则会根据该媒体帧对应的时间戳异常类型,通过插入媒体帧或者删除媒体帧的方式,来修正该媒体队列对应的时间戳队列,从而可以在媒体队列编码前修正媒体队列中各媒体帧所存在的时间戳递增异常问题,进而可以减少编码后的媒体队列存在时间戳异常的情况,也就降低了由于转码后的多媒体存在时间戳异常而导致的播放异常情况。
可以理解的是,正常情况下,多媒体文件中各媒体帧的时间戳也应该是逐渐递增的。如果多媒体文件中存在时间戳递增异常的媒体帧,那么也会影响到后续各类型媒体文件中各个媒体帧的时间戳的均匀递增性,因此,本申请在对分别解码多媒体文件中各类型的媒体帧之前,还需要对多媒体文件中各个媒体帧的时间戳进行修正,以使得多媒体文件中各媒体帧的时间戳依次递增。
具体的,对于多媒体文件中任意一个第一媒体帧,如该第一媒体帧的时间戳不大于该第一媒体帧之前最近一个第二媒体帧的时间戳,对多媒体文件中该第一媒体帧以及该第一媒体帧之后的各媒体帧的时间戳进行修正,以使得该多媒体文件中各媒体帧的时间戳依次递增。
可以理解的是,由于第一媒体帧与第二媒体帧为多媒体文件中任意相邻的两个视频帧,且第二媒体帧位于所述第一媒体帧之前,因此,如果第一媒体帧的时间戳不存在递增异常,则第一媒体帧的时间戳应大于该第二媒体帧的时间戳;否则,则说明第一媒体帧的时间戳存在递增异常。
可以理解的是,如果第一媒体帧的时间戳存在递增异常,则需要修正第一媒体帧的时间戳以使得第一媒体帧修正后的时间戳大于该第二媒体帧的时间戳,使得第一媒体帧修正后的时间戳相对第二媒体帧的时间戳呈现递增性。
同时,在第一媒体帧的时间戳存在递增异常的情况下,为了避免第一媒体帧的时间戳异常影响到该第一媒体帧之后的各媒体帧,本申请会同时对第一媒体帧之后的各媒体帧的时间戳进行相应修正。
在一种可能的实现方式中,为了避免遗漏第一媒体帧的处理,也为了能够更为可靠的保证多媒体文件中各媒体帧的时间戳逐渐递增,本申请可以按照多媒体文件中各媒体帧的先后顺序,依次将各媒体帧确定为第一媒体帧,并在第一媒体帧的时间戳存在递增异常时执行以上提到的修正操作。
可以理解的是,对第一媒体帧及其之后的各媒体帧进行修正的方式可以有多种,只要能够使得该第一媒体帧大于第二媒体帧,并消除第一媒体帧之后的各媒体帧的时间戳受第一媒体帧的异常时间戳的影响即可。
为了便于理解,下面以一种修正方式为例,并结合图3的流程图进行说明。如图3所示,其示出了本申请一种多媒体处理方法又一个实施例的流程示意图,本实施例的方法可以包括:
S301,获得待解码的多媒体文件。
其中,该多媒体文件包括被编码的至少一种类型的媒体帧,该至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种。
S302,对于多媒体文件中任意一个第一媒体帧,检测该第一媒体帧的时间戳是否不大于该多媒体文件中第一媒体帧之前的第二媒体帧的时间戳,如果是,则执行步骤S303,如果否,则执行步骤S305。
其中,该第二媒体帧为与第一媒体帧相邻且位于第一媒体帧之前的最近一个媒体帧。
可以理解的是,在多媒体文件包括音频帧和视频帧的情况下,音频帧和视频帧的时间戳会混合交错递增,如,可能会一帧视频帧之后为一帧音频帧,或者两帧视频帧之后为一帧视频帧,又或者,两帧音频帧之后为一帧视频帧等等。而位于前面的第一媒体帧的时间戳理论上需早于第二媒体帧的时间戳,因此,如果第一媒体帧的时间戳不大于该第二媒体帧的时间戳,则说明第一媒体帧的时间戳存在递增异常。
如前面所述,在一种可能的实现方式中,可以是按照多媒体文件多个媒体帧的先后顺序,依次从多媒体文件中取出一第一媒体帧,并执行步骤S302至S305的操作,直至该多媒体文件中不存在未被处理的媒体帧为止。
S303,按照多媒体文件中该第一媒体帧对应类型的媒体帧的帧率、该第一媒体帧的时间戳以及该第二媒体帧的时间戳,确定该第一媒体帧的时间戳所需增加的时间偏移量。
在第一媒体帧的时间戳存在递增异常的情况下,则说明第一媒体帧的时间戳小于其理论上正常的时间戳,在此基础上,需要确定第一媒体帧的时间戳小于其理论上正常的时间戳的时间偏移量。
如,假设第一媒体帧为视频帧,仍以视频帧的帧率为25帧/秒为例,则理论上相邻视频帧的间隔时长为40ms,在此基础上,假设第二媒体帧的时间戳为120ms,而第一媒体帧的时间戳为40ms,那么可以推测出第一媒体帧理论上的预估时间戳应为160ms,由此可知,第一时间戳所需的时间偏移量可以为160ms-40ms=120ms。
S304,将多媒体文件中第一媒体帧以及第一媒体帧之后的各媒体帧的时间戳均增加该时间偏移量,并执行S305。
如,时间偏移量为120ms,第一媒体帧实际的时间戳为40ms,则需要将第一媒体帧的时间戳加上120ms,使得第一媒体帧的时间戳变为120ms。类似的,第一媒体帧之后其他各类型的媒体帧的时间戳也均需要加上120ms。
S305,根据第一媒体帧的媒体类型,将该第一媒体帧加入第一媒体帧所属媒体类型对应的待解码媒体队列,以将该多媒体文件拆分为至少一种媒体类型的待解码媒体队列。
其中,拆分多媒体文件的过程本质上就是将多媒体文件中的媒体帧划归到该媒体帧所述媒体类型对应的待解码媒体队列的过程。
如,第一媒体帧为视频帧,则将视频帧加入到待解码视频队列;如果该第一媒体帧为音频帧,则将该音频帧加入到待解码音频队列。
可以理解的是,该步骤S305为可选步骤,其目的是每次从多媒体文件中取出一第一媒体帧便可以将其划归到相应类型的待解码媒体队列,从而有利于后续分别针对不同类型媒体分别进行解码。但是可以理解的是,在依次完成多媒体文件的各个多媒体完成如上S302到S304的操作之后再执行步骤S305,或者是不执行S305的拆解操作而通过其他方式分别对各类型多媒体帧进行编码也适用于本申请。
S306,如多媒体文件中不存在未被拆分的媒体帧,分别对多媒体拆分出的各待解码媒体队列进行解码,得到解码出的至少一种类型的媒体队列。
其中,拆解出的媒体队列中包括属于同一媒体类型且具有先后顺序的多个媒体帧。
在多媒体文件中各多媒体文件均被加入到各自对应的待解码媒体队列之后,则会得到至少一种类型的待解码媒体队列,如可以得到待解码视频队列和待解码音频队列中的一种或者两种。
对于每种类型的待解码媒体队列,可以按照该待解码媒体队列对应媒体类型的编码器对该待解码媒体队列中各媒体帧进行编码。如,可以利用视频解码器对于待解码视频队列中各帧视频帧进行解码。
S307,针对解码出的每个媒体队列,以该至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于该媒体队列中媒体帧的帧率,推算出该媒体队列中各媒体帧的预估时间戳。
其中,目标媒体帧为该至少一种类型的媒体队列中时间戳最靠前的媒体帧,或者是该至少一种指定类型的媒体队列中属于指定类型的媒体队列中的第一个媒体帧。
S308,对于每个媒体队列中每个媒体帧,判断该媒体帧的时间戳与其预估时间戳之间的差值的绝对值是否大于设定阈值,如果是,则执行步骤S309;如果否,则无需对该媒体帧进行处理,并执行步骤S312。
如,该设定阈值可以为依据该媒体队列中媒体帧的帧率确定,其中不同类型的媒体队列对应的设定阈值可以不同。如,以帧率为25帧/秒为例,媒体队列中相邻两个媒体帧的间隔时长应为40ms,则设定阈值为80ms。
可以理解的是,对于每个媒体队列中任意一个媒体帧而言,通过前面步骤S302到S305可以使得该媒体队列中各个媒体帧的时间戳依次递增,但是却无法保证该媒体队列中各媒体帧的时间戳之间的均匀递增,使得媒体队列中各个媒体帧的时间戳可能会存在非均匀递增的递增异常情况。相应的,如果该媒体帧的时间戳与其预估时间戳的时间戳的差值的绝对值大于该设定阈值,则说明该媒体帧的时间戳相对其前面一帧媒体帧的时间戳的递增幅度过大或者过小。
S309,检测该媒体帧的时间戳是否小于其预估时间戳,如果是,则执行步骤S310;如果否,则执行步骤S311。
S310,按照媒体帧的时间戳与其预估时间戳的差值以及该媒体帧对应的帧率,确定需要删除的媒体帧的第一数量,并按照该媒体队列中媒体帧的先后顺序,以该媒体帧为删除起点,从该媒体帧及该媒体帧之后的其他媒体帧中删除该第一数量个媒体帧,执行步骤S312。
S311,按照该媒体帧的时间戳与其预估时间戳的差值以及该媒体帧对应的帧率,确定在该媒体帧之后需要插入的修正媒体帧的第二数量,并向该媒体队列中该媒体帧之后插入第二数量个修正媒体帧,执行步骤S312。
其中,S310和S311可以参见前面实施例的相关介绍,在此不再赘述。
如,该媒体帧为视频帧,则修正媒体帧可以为与该视频帧相同或者相似程度超过设定相似度的媒体帧。如该媒体帧为音频帧,则修正媒体帧为与该媒体帧相同或者相似程度超过设定相似度的音频帧。
S312,针对每个媒体队列,如已完成该媒体队列中各媒体帧的时间戳的修正,则对修正后的该媒体队列进行编码。
当然,在该步骤S312之后还可以对编码后的各个媒体队列进行封装从而得到转码后的多媒体文件,在此基础上多媒体服务平台发布该转码后的多媒体文件便可以减少由于时间戳异常而导致的多媒体播放异常等问题。
为了便于理解本申请的方案,下面以多媒体文件同时包括多个音频帧和视频帧为例,并结合一种具体实现方式进行说明。
为了便于理解,同时考虑到多媒体文件同时包括音频和视频的情况下,为了保证播放效果,需要保证第一帧播放的媒体帧为视频帧,以避免第一帧图像为黑屏的情况,在此基础上,以目标媒体帧为视频类型的视频队列中的第一个视频帧为例进行说明。
如图4所示,其示出了本申请一种本申请提供的一种多媒体处理方法一个实施例的流程示意图,本实施例的方法可以应用多媒体服务平台。
本实施例的方法可以包括:
S401,获得待解码的多媒体文件。
其中,该多媒体文件包括被编码的多个视频帧和多个音频帧,其中,多媒体文件中视频帧具有第一帧率,且音频帧具有第二帧率。
S402,按照多媒体文件中多个媒体帧的先后顺序,从多媒体文件中取出待处理的第一媒体帧。
其中,为了便于区分,将从多媒体文件中取出的需要处理的媒体帧称为第一媒体帧。
S403,如第一媒体帧是否为多媒体文件中首个媒体帧,如果是,则执行步骤S406,如果否,则执行步骤S404。
S404,检测该第一媒体帧的时间戳是否不大于该多媒体文件中第一媒体帧之前的第二媒体帧的时间戳,如果是,则执行步骤S405,如果否,则执行步骤S406;
可以理解的是,由于多媒体文件中第一个媒体帧之前不存在其他媒体帧,也就不需要判断该媒体帧的时间戳是否不大于其之前的媒体帧的时间戳。
S405,按照该第一媒体帧对应的帧率、该第一媒体帧的时间戳以及该第二媒体帧的时间戳,确定该第一媒体帧的时间戳所需增加的时间偏移量,并将第一媒体帧及多媒体文件中位于该第一媒体帧之后的其他各媒体帧的时间戳均加上该时间偏移量,以修正第一媒体帧及第一媒体帧之后各媒体帧的时间戳。
如,第一媒体帧为视频帧,为了便于区分,称为第一视频帧,按照第一帧率,该第一视频帧的时间戳以及第二视频帧的时间戳,确定相应的时间偏移量,并将多媒体文件中位于该第一视频帧之后的各类型的媒体帧均加上该事件偏移量。对于第一媒体帧为音频帧的情况也类似,只需要将此处的帧率替换为第二帧率即可,在此不再赘述。
S406,根据第一媒体帧的媒体类型,将该第一媒体帧加入第一媒体帧所属媒体类型对应的待解码媒体队列。
如,第一媒体帧为音频帧,则将其加入到待解码音频队列;类似的,如第一媒体帧为视频帧,则将其加入到待解码的视频队列。
S407,检测该多媒体文件中是否仍存在未被划归到待解码媒体队列中的媒体帧,如果是,则返回步骤S402;如果否,则得到多媒体文件拆分出的待解码音频队列和待解码视频队列,执行步骤S408。
如果多媒体文件中不存在未被划归到待解码媒体队列中的的媒体帧,则说明按照多媒体文件中各媒体帧从前到后的顺序依次对各个媒体帧及其之后的媒体帧进行了修正,使得多媒体文件中各媒体帧的时间戳按照先后顺序呈现逐渐递增性。相应的,多媒体文件也被拆解为待解码的音频队列和视频队列。
S408,利用设定的音频解码器对多媒体文件拆分出的待解码音频队列进行解码,并利用设定的视频解码器对多媒体文件拆分出的待解码视频队列进行解码,得到解码出的音频队列和视频队列。
其中,音频队列包括多个具有先后顺序的音频帧,视频队列包括多个具有先后顺序的视频帧。
S409,针对视频队列,以该视频队列中第一个视频帧的时间戳为起始时间戳,并基于该视频队列中视频帧的第一帧率,推算出该视频队列中各视频帧的预估时间戳。
S410,针对音频队列,去除该音频队列中时间戳位于该第一个视频帧的时间戳之前的音频帧,以该第一个视频帧的时间戳为起始时间戳,并基于该音频队列中音频帧的第二帧率,推算出该音频队列中剩余的各音频帧的预估时间戳。
其中,在起始时间戳确定的情况下,结合起始时间戳以及音频队列中音频帧的第二帧率,推算该音频队列中各个音频帧理论上的预估时间戳的过程可以参见前面实施例中推算预估时间戳的相关介绍,在此不再赘述。
本实施例是以视频队列中第一个视频帧的时间戳作为起始时间戳为例说明,其目的是保证后续多媒体服务平台输出该多媒体文件时,第一帧输出的媒体帧为视频帧,以提高用户观看体验。
S411,对于音频队列和视频队列中任意一个媒体队列中,按照该媒体队列中各媒体帧的先后顺序,从尚未被处理的媒体帧中确定待处理的媒体帧,判断该媒体帧的时间戳与其预估时间戳之间的差值的绝对值是否大于设定阈值,如果是,则执行步骤S412或者S413;如果否,则无需对该媒体帧进行处理,并执行步骤S414。
S412,如该媒体帧的时间戳小于其预估时间戳,按照媒体帧的时间戳与其预估时间戳的差值以及该媒体帧对应的帧率,确定需要删除的媒体帧的第一数量,并按照该媒体队列中媒体帧的先后顺序,以该媒体帧为删除起点,从该媒体帧及该媒体帧之后的其他媒体帧中删除该第一数量个媒体帧,执行步骤S414。
S413,如该媒体帧的时间戳大于其预估时间戳,按照该媒体帧的时间戳与其预估时间戳的差值以及该媒体帧对应的帧率,确定在该媒体帧之后需要插入的修正媒体帧的第二数量,并向该媒体队列中该媒体帧之后插入第二数量个修正媒体帧,执行步骤S414。
其中,S410和S413可以参见前面实施例的相关介绍,在此不再赘述。
S414,检测该媒体队列是否仍存在尚未被处理的媒体帧,如果是,则返回步骤S411;如果否,则完成对该媒体队列中各媒体帧的时间戳的修正,执行步骤S415。
S415,对修正后的该媒体队列进行编码。
对应本申请的一种多媒体处理方法,本申请还提供了一种多媒体处理装置。
如图5所示,其示出了本申请一种多媒体处理装置一个实施例的组成结构示意图,本实施例的装置可以包括:
文件获得单元501,用于获得待解码的多媒体文件,所述多媒体文件包括被编码的至少一种类型的媒体帧,所述至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种;
解码单元502,用于分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,所述媒体队列包括所述多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧;
预估单元503,用于针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,所述目标媒体帧为所述至少一种类型的媒体队列中时间戳最靠前的媒体帧或者是所述至少一种类型的媒体队列中属于指定类型的媒体队列中的第一个媒体帧;
修正单元504,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列;
编码单元505,用于分别对所述第一修正单元修正后的各媒体队列进行编码。
在又一种可能的实现方式中,第一修正单元通过如下方式确定出所述媒体帧的时间戳属于异常时间戳:
如所述媒体队列中媒体帧的时间戳与其预估时间戳之间差值的绝对值大于设定阈值,确定所述媒体帧的时间戳属于异常时间戳。
在又一种可能的实现方式中,修正单元,包括:
媒体帧删除单元,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,且媒体帧的时间戳小于其预估时间戳,按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧;
媒体帧插入单元,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,且所述媒体帧的时间戳大于其预估时间戳,向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,并基于所述媒体帧的时间戳及其预估时间戳,设置所述修正媒体帧的时间戳。
在一种可能的实现方式中,所述媒体帧删除单元,包括:
第一数量确定子单元,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,且媒体帧的时间戳小于其预估时间戳,按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定需要删除的媒体帧的第一数量;
媒体帧删除子单元,用于按照所述媒体队列中媒体帧的先后顺序,以所述媒体帧为删除起点,从所述媒体帧及所述媒体帧之后的其他媒体帧中删除所述第一数量个媒体帧。
媒体帧插入单元,包括:
第二数量确定子单元,用于针对每个媒体队列,如基于所述媒体队列中媒体帧的时间戳与其预估时间戳确定出所述媒体帧的时间戳属于异常时间戳,且所述媒体帧的时间戳大于其预估时间戳,按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定在所述媒体帧之后需要插入的修正媒体帧的第二数量;
媒体帧插入子单元,用于向所述媒体队列中所述媒体帧之后插入第二数量个修正媒体帧。
在又一种可能的实现方式中,该装置还包括:
整体修正单元,用于在解码单元得到所述多媒体文件解码出的至少一种类型的媒体队列之前,如所述多媒体文件中第一媒体帧的时间戳不大于第二媒体帧的时间戳,对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正,以使得所述多媒体文件中各媒体帧的时间戳依次递增,其中,所述第一媒体帧与所述第二媒体帧为所述多媒体文件中任意相邻的两个媒体帧,且所述第二媒体帧位于所述第一媒体帧之前。
在一种可能的情况中,整体修正单元包括:
偏移量确定单元,用于在解码单元得到所述多媒体文件解码出的至少一种类型的媒体队列之前,如所述多媒体文件中第一媒体帧的时间戳不大于第二媒体帧的时间戳,按照所述多媒体文件中所述第一媒体帧对应类型的媒体帧的帧率、所述第一媒体帧的时间戳以及所述第二媒体帧的时间戳,确定所述第一媒体帧的时间戳所需增加的时间偏移量;
偏移增加单元,用于将所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳均增加所述时间偏移量。
在又一种可能的情况中,该装置还包括:
队列划归单元,用于在整体修正单元对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正之后,根据所述第一媒体帧的媒体类型,将所述第一媒体帧加入所述第一媒体帧所属媒体类型对应的待解码媒体队列,以将所述多媒体文件拆解为至少一种媒体类型的待解码媒体队列;
该解码单元具体为,用于分别对所述多媒体文件拆解出的各待解码媒体队列进行解码,得到解码出的至少一种类型的媒体队列。
在又一种可能的实现方式中,文件获得单元获得的所述多媒体文件包括音频帧和视频帧;
所述解码单元,包括:
音视频归队单元,用于分别解码所述多媒体文件中的视频帧和音频帧,得到所述多媒体文件解码出的视频队列和音频队列,所述视频队列包括所述多媒体文件中解码出的具有先后顺序的多个视频帧,所述音频队列包括所述多媒体文件中解码出的具有先后顺序的多个音频帧;
该预估单元,包括:
第一预估单元,用于针对视频队列,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述视频队列中视频帧的帧率,推算出所述视频队列中各视频帧的预估时间戳;
第二预估单元,用于针对音频队列,去除所述音频队列中时间戳位于所述视频队列中第一个视频帧的时间戳之前的音频帧,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述音频队列中音频帧的帧率,推算出所述音频队列中剩余的各音频帧的预估时间戳。
又一方面,本申请还提供了一种计算机设备,该计算机设备可以为前面多媒体服务平台中的服务器等。如图6,其示出了本申请提供的计算机设备的一种组成架构示意图。在图6中,该计算机设备600可以包括:处理器601和存储器602。
可选的,该计算机设备还可以包括:通信接口603、输入单元604和显示器605和通信总线606。
其中,处理器801、存储器602、通信接口603、输入单元604和显示器605均通过通信总线606完成相互间的通信。
在本申请实施例中,该处理器可以调用存储器602中存储的程序,具体的,处理器可以执行以上实施例的多媒体处理方法。
存储器602中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以上任意一个实施例中多媒体处理方法的程序。
该通信接口603可以为通信模块的接口。
本申请还可以包括输入单元604,该输入单元可以包括触摸感应单元、键盘等等。
该显示器605包括显示面板,如触摸显示面板等。
当然,图6所示的计算机设备结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图6所示的更多或更少的部件,或者组合某些部件。
另一方面,本申请还提供了一种计算机可读存储介质,该存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例中的多媒体处理方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。同时,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种多媒体处理方法,其特征在于,包括:
获得待解码的多媒体文件,所述多媒体文件包括被编码的至少一种类型的媒体帧,所述至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种;
分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,所述媒体队列包括所述多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧;
针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,所述目标媒体帧为所述至少一种类型的媒体队列中时间戳最靠前的媒体帧或者是所述至少一种类型的媒体帧中属于指定类型的媒体队列中的第一个媒体帧;针对每个媒体队列,如所述媒体队列中媒体帧的时间戳与其预估时间戳之间差值的绝对值大于设定阈值,确定所述媒体帧的时间戳属于异常时间戳,根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列;
分别对修正后的各媒体队列进行编码;
所述根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,包括:
如所述媒体帧的时间戳小于其预估时间戳,按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧;
如所述媒体帧的时间戳大于其预估时间戳,向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,并基于所述媒体帧的时间戳及其预估时间戳,设置所述修正媒体帧的时间戳。
2.根据权利要求1所述的方法,其特征在于,所述按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧,包括:
按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定需要删除的媒体帧的第一数量;
按照所述媒体队列中媒体帧的先后顺序,以所述媒体帧为删除起点,从所述媒体帧及所述媒体帧之后的其他媒体帧中删除所述第一数量个媒体帧;
所述向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,包括:
按照所述媒体帧的时间戳与其预估时间戳的差值以及所述媒体帧对应的帧率,确定在所述媒体帧之后需要插入的修正媒体帧的第二数量;
向所述媒体队列中所述媒体帧之后插入第二数量个修正媒体帧。
3.根据权利要求1所述的方法,其特征在于,在所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列之前,还包括:
如所述多媒体文件中第一媒体帧的时间戳不大于第二媒体帧的时间戳,对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正,以使得所述多媒体文件中各媒体帧的时间戳依次递增,其中,所述第一媒体帧与所述第二媒体帧为所述多媒体文件中任意相邻的两个媒体帧,且所述第二媒体帧位于所述第一媒体帧之前。
4.根据权利要求3所述的方法,其特征在于,所述对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正,包括:
按照所述多媒体文件中所述第一媒体帧对应类型的媒体帧的帧率、所述第一媒体帧的时间戳以及所述第二媒体帧的时间戳,确定所述第一媒体帧的时间戳所需增加的时间偏移量;
将所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳均增加所述时间偏移量。
5.根据权利要求3或4所述的方法,其特征在于,在所述对所述多媒体文件中所述第一媒体帧以及所述第一媒体帧之后的各媒体帧的时间戳进行修正之后,还包括:
根据所述第一媒体帧的媒体类型,将所述第一媒体帧加入所述第一媒体帧所属媒体类型对应的待解码媒体队列,以将所述多媒体文件拆解为至少一种媒体类型的待解码媒体队列;
所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,包括:
分别对所述多媒体文件拆解出的各待解码媒体队列进行解码,得到解码出的至少一种类型的媒体队列。
6.根据权利要求1所述的方法,其特征在于,所述多媒体文件包括音频帧和视频帧;
所述分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,包括:
分别解码所述多媒体文件中的视频帧和音频帧,得到所述多媒体文件解码出的视频队列和音频队列,所述视频队列包括所述多媒体文件中解码出的具有先后顺序的多个视频帧,所述音频队列包括所述多媒体文件中解码出的具有先后顺序的多个音频帧;
所述针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,包括:
针对视频队列,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述视频队列中视频帧的帧率,推算出所述视频队列中各视频帧的预估时间戳;
针对音频队列,去除所述音频队列中时间戳位于所述视频队列中第一个视频帧的时间戳之前的音频帧,以所述视频队列中第一个视频帧的时间戳为起始时间戳,并基于所述音频队列中音频帧的帧率,推算出所述音频队列中剩余的各音频帧的预估时间戳。
7.一种多媒体处理装置,其特征在于,包括:
文件获得单元,用于获得待解码的多媒体文件,所述多媒体文件包括被编码的至少一种类型的媒体帧,所述至少一种类型的媒体帧包括视频帧和音频帧中的一种或者两种;
解码单元,用于分别解码所述多媒体文件中各类型的媒体帧,得到所述多媒体文件解码出的至少一种类型的媒体队列,所述媒体队列包括所述多媒体文件中解码出的具有先后顺序且属于同一类型的多个媒体帧;
预估单元,用于针对每个媒体队列,以所述至少一种类型的媒体队列中目标媒体帧的时间戳为起始时间戳,并基于所述媒体队列中媒体帧的帧率,推算出所述媒体队列中各媒体帧的预估时间戳,所述目标媒体帧为所述至少一种类型的媒体队列中时间戳最靠前的媒体帧或者是所述至少一种类型的媒体队列中属于指定类型的媒体队列中的第一个媒体帧;
修正单元,用于针对每个媒体队列,如所述媒体队列中媒体帧的时间戳与其预估时间戳之间差值的绝对值大于设定阈值,确定所述媒体帧的时间戳属于异常时间戳,根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,以修正所述媒体队列中各媒体帧的时间戳组成的时间戳队列;
编码单元,用于分别对所述修正单元修正后的各媒体队列进行编码;
所述修正单元根据所述媒体帧对应的时间戳异常类型,以所述媒体帧为操作基准执行媒体帧删除或者插入操作,包括:
如所述媒体帧的时间戳小于其预估时间戳,按照所述媒体队列中各媒体帧的先后顺序,以所述媒体帧为删除起点,删除所述媒体帧在内的至少一帧媒体帧;
如所述媒体帧的时间戳大于其预估时间戳,向所述媒体队列中所述媒体帧之后插入至少一帧修正媒体帧,并基于所述媒体帧的时间戳及其预估时间戳,设置所述修正媒体帧的时间戳。
8.一种计算机设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至6任意一项所述的多媒体处理方法。
9.一种计算机可读存储介质,其特征在于,用于存储程序,所述程序被执行时,用于实现如权利要求1至6任意一项所述多媒体处理方法。
CN202111192251.0A 2021-10-13 2021-10-13 多媒体处理方法、装置、设备和存储介质 Active CN113949898B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111192251.0A CN113949898B (zh) 2021-10-13 2021-10-13 多媒体处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111192251.0A CN113949898B (zh) 2021-10-13 2021-10-13 多媒体处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113949898A CN113949898A (zh) 2022-01-18
CN113949898B true CN113949898B (zh) 2024-03-08

Family

ID=79330290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111192251.0A Active CN113949898B (zh) 2021-10-13 2021-10-13 多媒体处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113949898B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067489A1 (zh) * 2015-10-22 2017-04-27 深圳市中兴微电子技术有限公司 机顶盒音视频同步的方法及装置、存储介质
CN108156500A (zh) * 2017-12-29 2018-06-12 珠海全志科技股份有限公司 多媒体数据时间修正方法、计算机装置、计算机可读存储介质
CN110290421A (zh) * 2019-08-01 2019-09-27 北京达佳互联信息技术有限公司 帧率调整方法、装置、计算机设备及存储介质
US10609440B1 (en) * 2018-06-08 2020-03-31 Amazon Technologies, Inc. Timing data anomaly detection and correction
CN110996182A (zh) * 2019-11-21 2020-04-10 北京奇艺世纪科技有限公司 时间戳处理方法、装置、电子设备及计算机存储介质
CN111246178A (zh) * 2020-02-05 2020-06-05 浙江大华技术股份有限公司 视频处理方法和装置、存储介质及电子装置
CN111385639A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 视频特效的添加方法、装置、设备及存储介质
CN111464256A (zh) * 2020-04-14 2020-07-28 北京百度网讯科技有限公司 时间戳的校正方法、装置、电子设备和存储介质
CN113055718A (zh) * 2021-06-02 2021-06-29 杭州星犀科技有限公司 时间戳均匀化处理的方法、系统、电子装置和存储介质
CN113169904A (zh) * 2018-12-11 2021-07-23 微软技术许可有限责任公司 处理用于针对流式网络协议的时间戳不准确

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130083859A1 (en) * 2011-10-04 2013-04-04 General Instrument Corporation Method to match input and output timestamps in a video encoder and advertisement inserter
US10742955B2 (en) * 2018-05-21 2020-08-11 Microsoft Technology Licensing, Llc Correlation of video stream frame timestamps based on a system clock
CN109089130B (zh) * 2018-09-18 2020-05-22 网宿科技股份有限公司 一种调整直播视频的时间戳的方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067489A1 (zh) * 2015-10-22 2017-04-27 深圳市中兴微电子技术有限公司 机顶盒音视频同步的方法及装置、存储介质
CN106612452A (zh) * 2015-10-22 2017-05-03 深圳市中兴微电子技术有限公司 机顶盒音视频同步的方法及装置
CN108156500A (zh) * 2017-12-29 2018-06-12 珠海全志科技股份有限公司 多媒体数据时间修正方法、计算机装置、计算机可读存储介质
US10609440B1 (en) * 2018-06-08 2020-03-31 Amazon Technologies, Inc. Timing data anomaly detection and correction
CN113169904A (zh) * 2018-12-11 2021-07-23 微软技术许可有限责任公司 处理用于针对流式网络协议的时间戳不准确
CN111385639A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 视频特效的添加方法、装置、设备及存储介质
CN110290421A (zh) * 2019-08-01 2019-09-27 北京达佳互联信息技术有限公司 帧率调整方法、装置、计算机设备及存储介质
CN110996182A (zh) * 2019-11-21 2020-04-10 北京奇艺世纪科技有限公司 时间戳处理方法、装置、电子设备及计算机存储介质
CN111246178A (zh) * 2020-02-05 2020-06-05 浙江大华技术股份有限公司 视频处理方法和装置、存储介质及电子装置
CN111464256A (zh) * 2020-04-14 2020-07-28 北京百度网讯科技有限公司 时间戳的校正方法、装置、电子设备和存储介质
CN113055718A (zh) * 2021-06-02 2021-06-29 杭州星犀科技有限公司 时间戳均匀化处理的方法、系统、电子装置和存储介质

Also Published As

Publication number Publication date
CN113949898A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
CN110446072B (zh) 视频流切换方法、电子设备和存储介质
US20120263241A1 (en) Real-Time Audio or Video Transcoding
EP2104361B1 (en) Apparatus and method for encoding and decoding information to maintain the picture order for random access
CN108989883B (zh) 一种直播广告方法、装置、设备及介质
CN111464256A (zh) 时间戳的校正方法、装置、电子设备和存储介质
CN101262611B (zh) 一种流媒体播放器
US10313724B1 (en) Media-broadcasting system with broadcast schedule simulation feature
US20150358507A1 (en) Timing recovery for embedded metadata
US20110135286A1 (en) Apparatus and method for extracting key frames and apparatus and method for recording broadcast signals using the same
CN113225585A (zh) 一种视频清晰度的切换方法、装置、电子设备以及存储介质
CN103491430A (zh) 流媒体数据处理方法和电子设备
CN113949898B (zh) 多媒体处理方法、装置、设备和存储介质
CN115119009A (zh) 视频对齐方法、视频编码方法、装置及存储介质
CN111277919B (zh) 流媒体的pts复位处理方法、显示设备及存储介质
CN112235600A (zh) 视频数据及视频业务请求的处理方法、装置及系统
CN115550710A (zh) 一种数据处理方法、装置、终端设备和存储介质
EP4294021A1 (en) Data processing method and apparatus, computer device and storage medium
US10165335B2 (en) Using closed-captioning data to output an alert indicating a functional state of a back-up video-broadcast system
CN113691834B (zh) 视频码流的处理方法、视频编码装置以及可读存储介质
CN111836071B (zh) 一种基于云会议的多媒体处理方法、装置及存储介质
US20150373301A1 (en) Input file transformer
CN110855645B (zh) 流媒体数据播放方法、装置
CN109788357B (zh) 一种播放媒体文件的方法及装置
CN113747159A (zh) 一种生成可变帧率视频媒体文件的方法、装置及相关组件
CN110636332A (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