CN112073823B - 丢帧处理方法、视频播放终端及计算机可读存储介质 - Google Patents

丢帧处理方法、视频播放终端及计算机可读存储介质 Download PDF

Info

Publication number
CN112073823B
CN112073823B CN202010914751.XA CN202010914751A CN112073823B CN 112073823 B CN112073823 B CN 112073823B CN 202010914751 A CN202010914751 A CN 202010914751A CN 112073823 B CN112073823 B CN 112073823B
Authority
CN
China
Prior art keywords
data packet
video data
video
frame
audio
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
CN202010914751.XA
Other languages
English (en)
Other versions
CN112073823A (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.)
Shenzhen Skyworth Digital Technology Co Ltd
Original Assignee
Shenzhen Skyworth Digital 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 Shenzhen Skyworth Digital Technology Co Ltd filed Critical Shenzhen Skyworth Digital Technology Co Ltd
Priority to CN202010914751.XA priority Critical patent/CN112073823B/zh
Publication of CN112073823A publication Critical patent/CN112073823A/zh
Application granted granted Critical
Publication of CN112073823B publication Critical patent/CN112073823B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising 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
    • 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/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种丢帧处理方法,所述方法包括以下步骤:获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。本发明还公开了一种视频播放终端及计算机可读存储介质。通过在视频数据包为B帧数据包,且视频数据包与音频数据包的播放时间差超过预设时间范围时,丢弃所述视频数据包以保持音视频同步,避免视频解码器直接解码所有的视频数据包时解码效率不高导致音视频不同步影响音视频播放效果,即通过丢帧处理提高了音视频播放效果。

Description

丢帧处理方法、视频播放终端及计算机可读存储介质
技术领域
本发明涉及视频播放技术领域,尤其涉及一种丢帧处理方法、视频播放终端及计算机可读存储介质。
背景技术
现有技术中,视频播放设备通常按照音频的采样率与视频的帧率进行音视频播放。但是,由于不同设备的运行速度及解码效率等存在差异,导致音视频很难以同步。
由于人耳对声音的变化比较敏感,目前的音视频同步方案一般会以音频视频数据的显示时间戳为参考时钟,然后根据音频时钟来调整渲染视频帧的延迟时间,从而达到音视频同步的目的。然而,对于性能较低的视频播放设备,由于CPU和GPU的负荷大,使得解码高分辨率和高帧率视频的速度达不到要求。这时,音视频时间差将会呈现线性增长,并且随着播放时长的增长,视频延迟就越来越大,出现音视频严重不同步的现象。此时,通过调整视频帧渲染延迟时间的方法已经不足以解决问题。因而,现有技术中的音视频同步方案存在音视频难以同步,导致音视频播放效果差的问题。
发明内容
本发明主要目的在于提供一种丢帧处理方法、视频播放终端及计算机可读存储介质,旨在解决现有技术中播放视频时难以实现音视频同步,导致音视频播放效果差的问题。
为实现上述目的,本发明提供一种丢帧处理方法,所述方法应用于视频播放设备,所述视频播放设备包括视频解码器和音频解码器,所述方法包括以下步骤:
获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;
若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,所述对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤之前,包括:
获取所述视频数据包的显示时间戳和缓存中的显示时间戳,缓存中的显示时间戳为所述视频数据包的前一个非B帧数据包的显示时间戳,所述非B帧数据包为I帧数据包或P帧数据包;
根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包;
若所述视频数据包为B帧数据包,则在所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的操作。
可选地,所述根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包的步骤包括:
判断所述视频数据包的显示时间戳是否小于缓存中的显示时间戳;
若小于,则判定所述视频数据包为B帧数据包;
若大于,则判定所述视频数据包为I帧数据包或P帧数据包。
可选地,所述对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤之前,还包括:
获取所述音频数据包的音频时钟,并计算所述视频数据包的显示时间戳与所述音频数据包的音频时钟之间的时间差;
根据所述时间差判断所述视频数据包与所述音频数据包的播放时间差是否在预设时间范围内;
若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤。
可选地,所述根据所述时间差判断所述视频数据包与所述音频数据包的播放时间差是否在预设时间范围内的步骤包括:
判断所述时间差是否大于第一预设差值且小于第二预设差值;
若大于第一预设差值且小于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差在预设时间范围内;
若小于第一预设差值或大于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差超过预设时间范围。
可选地,所述若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤,还包括:
若超过预设时间范围,则判断所述时间差是否大于第三预设差值,所述第三预设差值小于所述第一预设差值;
若小于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若大于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,所述若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤,还包括:
若超过预设时间范围,则判断所述时间差是否大于第四预设差值,所述第四预设差值大于所述第二预设差值;
若大于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若小于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,所述获取视频解码器读取的视频数据包及音频解码器读取的音频数据包的步骤之后,所述方法还包括:
若所述视频数据包为I帧数据包或P帧数据包,或所述视频数据包与所述音频数据包的播放时间差未超过预设时间范围,则运用视频解码器对所述视频数据包进行解码。
此外,为实现上述目的,本发明还提供一种视频播放终端,所述视频播放终端包括存储器、处理器及存储在所述处理器上并可在处理器上运行的丢帧处理程序,所述处理器执行所述丢帧处理程序时实现如上所述的丢帧处理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有丢帧处理程序,所述丢帧处理程序被处理器执行时实现如上所述的丢帧处理方法的步骤。
本发明实施例通过获取视频解码器读取的视频数据包和音频解码器读取的音频数据包,以在所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,对所述视频数据包进行丢帧处理,丢弃所述视频数据包,避免视频解码器直接对从视频缓冲队列中读取的所有视频数据包进行解码,会增加CPU和GPU的负荷,尤其是对于高分辨率或高帧率的视频数据包进行解码时,会因解码速度缓慢,导致音视频播放不同步。通过在视频数据包与音频数据包的播放时间差超过预设时间范围时丢弃B帧数据包,能够减少视频解码器所需解码的视频数据包的数量,提高视频解码器的解码效率,以保证音视频的同步播放,提高音视频播放效果。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的视频播放终端结构示意图;
图2是本发明丢帧处理方法第一实施例的流程示意图;
图3为本发明丢帧处理方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的主要解决方案是:获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
目前,低性能的视频播放设备在进行音视频播放时,由于CPU和GPU的负荷大且解码高分辨率和高帧率视频的速度达不到要求会出现音视频不同步的现象,而现有的音视频同步方案并不能解决低性能的视频播放设备在播放音视频数据时的不同步问题,导致视频播放效果较差。因而,本发明提出一种丢帧处理方法、视频播放终端及计算机可读存储介质,通过获取视频解码器读取的视频数据包和音频解码器读取的音频数据包,以在所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,对所述视频数据包进行丢帧处理,丢弃所述视频数据包,以减缓CPU和GPU的负荷,提高视频解码器的解码效率,以保证音视频的同步播放,提高音视频播放效果。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的视频播放终端结构示意图。
所述视频播放终端可以是具有音视频播放功能的终端设备,如电视机、手机及电脑等,尤指CPU或GPU负荷能力较差的低性能视频播放设备,如VR视频播放设备。
如图1所示,该视频播放终端可以包括:通信总线1002,处理器1001,例如CPU,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的视频播放终端结构并不构成对视频播放终端的限定,可以包括比图示更多或更少的部件,或组合某些部件,或者不同的部件布置。
在图1所示的视频播放终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的丢帧处理程序,并执行以下操作:
获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;
若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,所述对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤之前,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
获取所述视频数据包的显示时间戳和缓存中的显示时间戳,缓存中的显示时间戳为所述视频数据包的前一个非B帧数据包的显示时间戳,所述非B帧数据包为I帧数据包或P帧数据包;
根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包;
若所述视频数据包为B帧数据包,则在所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的操作。
可选地,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
判断所述视频数据包的显示时间戳是否小于缓存中的显示时间戳;
若小于,则判定所述视频数据包为B帧数据包;
若大于,则判定所述视频数据包为I帧数据包或P帧数据包。
可选地,所述对所述视频数据包进行丢帧处理的步骤之前,处理器1001调用存储器1005中存储的丢帧处理程序,并执行以下操作:
获取所述音频数据包的音频时钟,并计算所述视频数据包的显示时间戳与所述音频数据包的音频时钟之间的时间差;
根据所述时间差判断所述视频数据包与所述音频数据包的播放时间差是否在预设时间范围内;
若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理的步骤。
可选地,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
判断所述时间差是否大于第一预设差值且小于第二预设差值;
若大于第一预设差值且小于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差在预设时间范围内;
若小于第一预设差值或大于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差超过预设时间范围。
可选地,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
若超过预设时间范围,则判断所述时间差是否大于第三预设差值,所述第三预设差值小于所述第一预设差值;
若小于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若大于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
若超过预设时间范围,则判断所述时间差是否大于第四预设差值,所述第四预设差值大于所述第二预设差值;
若大于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若小于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
可选地,所述获取视频解码器读取的视频数据包及音频解码器读取的音频数据包的步骤之后,处理器1001可以调用存储器1005中存储的丢帧处理程序,还执行以下操作:
若所述视频数据包为I帧数据包或P帧数据包,或所述视频数据包与所述音频数据包的播放时间差未超过预设时间范围,则运用视频解码器对所述视频数据包进行解码。
参照图2,图2为本发明丢帧处理方法的第一实施例流程图,本实施例中,所述丢帧处理方法包括以下步骤:
步骤S10:获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;
本实施例中的丢帧处理方法可应用于支持音视频播放功能的视频播放设备,如电视机、手机及电脑等终端设备,尤其可适用于低性能的终端设备,如GPU(GraphicsProcessing Unit,图形处理器)和CPU(Central Processing Unit/Processor,中央处理器)负荷能力低的VR设备等。这些低性能的终端设备在播放音视频数据时,由于GPU和CPU负荷过高,在对高分辨率和高帧率的视频数据包进行解码时,解码速度达不到要求,会导致音视频的播放时间差越来越大,且随着播放时长的增长,音视频播放时间差将呈现线性增长,会出现音视频严重不同步的现象。
因而,为了避免视频解码耗时长导致音视频不同步的问题,本实施例优选通过丢弃视频数据包的方式来减少视频解码时间,以使音视频的播放时间差保持在一定时间范围内,解决音视频播放不同步的问题。具体地,在丢弃数据包之前,先要获取视频解码器读取的视频数据包和音频解码器读取的音频数据包。即,本实施例所应用的视频播放设备可包括视频解码器和音频解码器,且在视频播放设备的视频播放器包括分离器,分离器的后端存在独立的音频缓冲队列和视频缓冲队列,其中,音频缓冲队列内存放了由分离器解析出的待解码的音频数据包,视频缓冲队列内存放了由分离器解析出的待解码的视频数据包。于是,音频解码器可基于音频解码线程从音频缓冲队列中读取出音频数据包,视频解码器可基于视频解码线程从视频缓冲队列中读取出视频数据包,然后在音频数据包和视频数据包满足预设条件时,进行丢帧处理丢弃相应的视频数据包,且在音频数据包与视频数据包不满足预设条件时,直接对读取到的视频数据包进行解码,以实现音视频同步。值得注意的是,此处的音视频同步尤指视频数据包与音频数据包的播放时间差在预设时间范围内,即当视频数据包与音频数据包的播放时间差在预设时间范围内时,都认为音视频是同步的。
步骤S20:若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
本实施例采用的视频压缩算法可以是H264或MEPG等视频压缩算法,可将视频数据压缩为I帧、P帧和B帧三种类型的数据包。其中,I帧为关键帧,可保留一帧完整的图像,解码时只需解码本帧数据,无需依赖其他帧数据进行解码;P帧为差别帧,保留的是与前一帧存在差别的图像数据,解码时需要依赖前一帧的图像数据进行解码,即需要基于缓存的前一帧图像数据与本帧定义的差别数据进行叠加处理才能解码得到P帧最终的显示图像;B帧为双向差别帧,记录的是本帧图像与前后帧图像的差别,解码时不仅需要依赖前一帧的图像数据还要依赖后一帧的图像数据,即需要通过前后帧的图像数据与本帧的图像数据进行叠加处理才能得到B帧最终的显示画面。虽然I帧、P帧和B帧三种类型的数据包中B帧的压缩率最高,但是解码时CPU和GPU的负荷也更大。并且,P帧需要依赖前面的I帧或者P帧才能进行编解码,如果丢弃了I帧或P帧,会导致后面依赖它们的帧解码出问题,而B帧则不影响其他帧的解码,丢弃后不会导致花屏。因而,本实施例优选丢弃B帧数据包来减少视频解码时间,减轻CPU和GPU负荷,从而解决视频解码耗时长导致音视频不同步的问题。
然而,既要保持音视频同步又要保证视频播放不会花屏,丢弃B帧数据包的预设条件可以是:在视频解码器从视频缓冲队列中当前读取的视频数据包为B帧数据包,且视频解码器从视频缓冲队列中当前读取的视频数据包与音频解码器从音频缓冲队列中当前读取的音频数据包的播放时间差超过预设时间范围时,才对当前读取的视频数据包进行丢帧处理,即丢弃当前读取的B帧数据包。其中,视频数据包与音频数据包的播放时间差尤指视频数据包对应的显示时间与音频数据包对应的播放时间之间的差值,也即视频数据相对与音频数据的延迟时间或超前时间。
本实施例通过获取视频解码器读取的视频数据包和音频解码器读取的音频数据包,然后在所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,对所述视频数据包进行丢帧处理,丢弃所述视频数据包,避免视频解码器解码全部的视频数据包需要耗费大量的时间,导致视频数据与音频数据播放不同步,影响视频播放效果。通过在音视频数据的播放时间差超过预设时间范围时,丢弃B帧数据包,能够减缓CPU或GPU的负荷,提高视频解码器的解码效率,保证音视频的播放时间差保持在预设时间范围内,有效解决了音视频播放不同步的问题,提高了视频播放效果,且提升了用户体验感。
参照图3,图3为本发明丢帧处理方法的第二实施例流程图,本实施例中,所述丢帧处理方法包括以下步骤:
步骤S11:获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;
步骤S12:获取所述视频数据包的显示时间戳和缓存中的显示时间戳,缓存中的显示时间戳为所述视频数据包的前一个非B帧数据包的显示时间戳,所述非B帧数据包为I帧数据包或P帧数据包;
步骤S13:根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包;
步骤S14:若所述视频数据包为B帧数据包,则在所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
在获取视频解码器读取的视频数据包和音频解码器读取的音频数据包之后,还需要获取所述视频数据包的显示时间戳及缓存中所缓存的显示时间戳,以便根据所述视频数据包的显示时间戳及缓存中包的显示时间戳确定所述视频数据包是否为B帧数据包,本实施例中,缓存中的显示时间戳为视频码流中所述视频数据包的前一个非B帧数据包的显示时间戳,所述非B帧数据包为I帧数据包或P帧数据包。
具体地,由于视频缓冲队列中缓存的视频数据包并不会对不同类型的数据包进行标识,需要根据不同类型的数据包的解码特性来对不同类型的数据包进行识别。如,可根据B帧数据包需要依赖视频流中排在他前面或后面的视频帧数据才能解码出图像的特性,识别视频解码器当前读取的视频数据包是否为B帧。比如,对于视频帧的显示顺序依次为I帧,B帧,B帧,P帧的视频数据,若在解码B帧时需要知道P帧中图像信息,则这几帧在视频缓冲队列中的顺序应该是I帧,P帧,B帧,B帧。在从视频缓冲队列中读取视频数据包时,视频解码线程会记录非B帧数据包(也就是I帧数据包或P帧数据包)的PTS(Presentation Time Stamp,显示时间戳)。以IPBBPBB为例,处理I帧数据包时,I帧数据包的PTS比缓存中的PTS大,会将I帧数据包的PTS更新为缓存中的PTS;处理第一个P帧数据包时,P帧数据包的PTS大于缓存中I帧数据包的PTS,将P帧数据包的PTS更新为缓存中的PTS;处理第一个B帧数据包时,由于B帧数据包的PTS小于缓存中P帧数据包的PTS,不会对缓存中的PTS进行更新,依然为第一个P帧数据包的PTS;处理第二个B帧数据包时,第二个B帧数据包的PTS依然小于缓存中P帧数据包的PTS,也不会对缓存中的PTS进行更新,依然为P帧数据包的PTS;处理第二个P帧数据包时,由于第二个P帧数据包的PTS比第一个P帧数据包的PTS大,将第二个P帧数据包的PTS更新为缓存中的PTS;接下来两个B帧的PTS都比缓存中P帧数据包的PTS要小,此时不会对缓存中的PTS进行更新。因而,B帧数据包满足比缓存中缓存的P帧数据包或I帧数据包的显示时间戳小的特性,缓存中只会缓存I帧数据包或P帧数据包的显示时间戳,且缓存中所缓存的显示时间戳为当前帧数据包的前一个非B帧数据包(可能是I帧数据包,也可能是P帧数据包)的显示时间戳。也即,如果当前帧数据包的PTS比缓存中的显示时间戳小时,可以判定当前帧数据包为B帧数据包。
因此,根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包的步骤可以是:先判断所述视频数据包的显示时间戳是否小于缓存中的显示时间戳,若当前视频数据包的显示时间戳小于缓存中的显示时间戳,说明当前视频数据包为B帧数据包;若当前数据包的显示时间戳大于缓存中的显示时间戳,则说明当前数据包不是B帧数据包,而是I帧数据包或P帧数据包。若当前读取的视频数据包为B帧数据包,则在所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的操作;若当前读取的视频数据包为I帧数据包或P帧数据包,则运用视频解码器对所述视频数据包进行解码,并按照显示时间戳播放解码后的视频数据。
在另一实施例中,在丢弃当前读取的视频数据包之前,除了需要判断当前读取的视频数据包是否为B帧数据包之外,还需要判断当前读取的视频数据包与当前读取的音频数据包之间的播放时间差是否在预设时间范围内,以在当前读取的视频数据包与当前读取的音频数据包之间的播放时间差不在预设时间范围内时,通过丢弃B帧数据包来使视频数据包与音频数据包之间的播放时间差保持在预设时间范围内,从而在预设时间范围内保持音视频同步。
具体地,可先获取当前读取的音频数据包的音频时钟(尤指音频数据的播放时间),然后根据所获取的音频时钟和所获取的显示时间戳来计算当前读取的视频数据包的显示时间戳与当前读取的音频数据包的音频时钟之间的时间差,也即当前读取的视频数据包的显示时间与当前读取的音频数据包的播放时间之间的差值,所计算的差值即为当前读取的视频数据包与当前读取的音频数据包的播放时间差。接着,可根据所计算的时间差判断当前读取的视频数据包与当前读取的音频数据包的播放时间差是否在预设时间范围内。由于计算的差值即为当前读取的视频数据包与当前读取的音频数据包的播放时间差,则判断当前读取的视频数据包与当前读取的音频数据包的播放时间差是否在预设时间范围内,也即判断所计算的时间差是否在预设时间范围内。在一具体的实施例中,可根据人体的视觉范围等视觉参数预先设置第一预设差值和第二预设差值,所述第一预设差值小于第二预设差值;然后,判断所述时间差是否大于第一预设差值且小于第二预设差值,若大于第一预设差值且小于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差在预设时间范围内;若小于第一预设差值或大于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差超过预设时间范围。在当前读取的视频数据包与当前读取的音频数据包的播放时间超过预设时间范围时,若当前读取的视频数据包为B帧数据包,则执行对当前读取的视频数据包进行丢帧处理,丢弃当前读取的视频数据包的步骤;若当前读取的视频数据包与当前读取的音频数据包的播放时间不超过预设时间范围,则无论当前读取的视频数据包是否为B帧数据包,都认为当前音视频能够同步,此时,可运用视频解码器直接对所述视频数据包进行解码,并按照显示时间戳播放解码后的视频数据包。
在一较优的实时例中,可将所述第一预设差值设置为-100ms,将所述第二预设差值设置为+25ms,若音频和视频的播放时间差在-100ms至+25ms之间,则属于用户无法察觉的范围,可认为音视频能够同步播放;若音频和视频的播放时间差在小于-185ms至100ms或大于25ms至90ms的范围,则属于为用户可以察觉到音视频不同步的范围(轻微不同步);若音频和视频的播放时间差小于-185ms或大于90ms,则属于用户对音视频不同步已经无法接受的范围(严重不同步)。
因而,在用户对音视频不同步的程度无法接受时,为避免即使丢弃满足预设条件的B帧数据包也难以达到用户无法察觉的音视频同步范围,还可以进一步设置第三预设差值和第四预设差值,所述第三预设差值小于第四预设差值,且所述第三预设差值小于第一预设差值,所述第四预设差值大于第二预设差值;然后,基于当前读取的视频数据包与当前读取的音频数据包的播放时间差及所述第三预设差值和第四预设差值确定是否需要丢弃P帧数据包,从而在音视频严重不同步时,通过同时丢弃B帧数据包和P帧数据包来进一步缓解音视频不同步导致的视频播放效果差的问题,尽快使音视频恢复同步。即,在当前读取的视频数据包与当前读取的音频数据包的播放时间差超过预设时间范围,也即当所计算的时间差小于第一预设差值或大于第二预设差值时,进一步判断所述时间差是否大于第三预设差值或小于第四预设差值。若所述时间差大于第三预设差值或小于第四预设差值,即所述时间差大于第三预设差值且小于第一预设差值,或所述时间差大于第二预设差值且小于第四预设差值时,若读取到的视频数据包为B帧数据包,则对所述视频数据包进行丢帧处理,丢弃所读取到的视频数据包,若读取到的视频数据包为I帧数据包或P帧数据包,则运用视频解码器对所读取到的视频数据包进行解码;若所述时间差小于第三预设差值或大于第四预设差值,则在所读取到的视频数据包为P帧数据包或B帧数据包时,对所述视频数据包进行丢帧处理,丢弃所读取到的视频数据包,而在所读取到的视频数据包为I帧数据包时,运用视频解码器对所读取到的视频数据包进行解码。
值得注意的是,在当前读取的视频数据包与当前读取的音频数据包的播放时间差超过预设时间范围时,将所述时间差是与第三预设差值进行比较的步骤和将所述时间差与第四预设差值进行比较的步骤,可以是同时进行,也可以是按照预设顺序先后执行,此处仅作列举,并不构成限定。
此外,在当前读取的视频数据包为I帧数据包或P帧数据包,或当前读取的视频数据包与音频数据包的播放时间差未超过预设时间范围时,可直接运用视频解码器对所述视频数据包进行解码,并按照所述视频数据包的显示时间戳播放解码后视频数据,与此同时,按照所述音频数据包的音频时钟播放解码后的音频数据,以使音视频保持同步播放。
本实施例通过获取视频解码器读取的视频数据包和音频解码器读取的音频数据包,并获取所述视频数据包的显示时间戳及前一次读取的视频数据包的显示时间戳,然后根据所述视频数据包的显示时间戳及前一次读取的视频数据包的显示时间戳确定所述视频数据包是否为B帧数据包,在所述视频数据包为B帧数据包,且在所述视频数据包与所述音频数据包的播放时间差超过预设时间范围时,对所述视频数据包进行丢帧处理,丢弃所述视频数据包。即在音视频播放时间差超过预设时间范围时,通过丢弃B帧数据包,减少视频解码器需要解码的视频数据包,减少视频解码器解码视频数据包的时间,从而提高视频解码器的解码效率,避免因视频解码器的解码效率不高导致音视频不同步,影响音视频播放效果,在保证音视频同步的同时,提高了音视频的播放效果,提升了用户体验感。
此外,本发明实施例还提供一种视频播放终端,所述视频播放终端包括存储器、处理器及存储在所述处理器上并可在处理器上运行的丢帧处理程序,所述处理器执行所述丢帧处理程序时实现如上所述丢帧处理方法的步骤。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有丢帧处理程序,所述丢帧处理程序被处理器执行时实现如上所述的丢帧处理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,电视,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种丢帧处理方法,其特征在于,应用于视频播放设备,所述视频播放设备包括视频解码器和音频解码器,所述丢帧处理方法包括以下步骤:
获取视频解码器读取的视频数据包和音频解码器读取的音频数据包;
获取所述视频数据包的显示时间戳和缓存中的显示时间戳,缓存中的显示时间戳为所述视频数据包的前一个非B帧数据包的显示时间戳,所述非B帧数据包为I帧数据包或P帧数据包;
根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包;
若所述视频数据包为B帧数据包,且所述视频数据包与所述音频数据包的播放时间差超过预设时间范围,则对所述视频数据包进行丢帧处理,丢弃所述视频数据包。
2.如权利要求1所述的丢帧处理方法,其特征在于,所述根据所述视频数据包的显示时间戳和缓存中的显示时间戳确定所述视频数据包是否为B帧数据包的步骤包括:
判断所述视频数据包的显示时间戳是否小于缓存中的显示时间戳;
若小于,则判定所述视频数据包为B帧数据包;
若大于,则判定所述视频数据包为I帧数据包或P帧数据包。
3.如权利要求1所述的丢帧处理方法,其特征在于,所述对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤之前,还包括:
获取所述音频数据包的音频时钟,并计算所述视频数据包的显示时间戳与所述音频数据包的音频时钟之间的时间差;
根据所述时间差判断所述视频数据包与所述音频数据包的播放时间差是否在预设时间范围内;
若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤。
4.如权利要求3所述的丢帧处理方法,其特征在于,所述根据所述时间差判断所述视频数据包与所述音频数据包的播放时间差是否在预设时间范围内的步骤包括:
判断所述时间差是否大于第一预设差值且小于第二预设差值;
若大于第一预设差值且小于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差在预设时间范围内;
若小于第一预设差值或大于第二预设差值,则判定所述视频数据包与所述音频数据包的播放时间差超过预设时间范围。
5.如权利要求4所述的丢帧处理方法,其特征在于,所述若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤,还包括:
若超过预设时间范围,则判断所述时间差是否大于第三预设差值,所述第三预设差值小于所述第一预设差值;
若小于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若大于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
6.如权利要求4所述的丢帧处理方法,其特征在于,所述若超过预设时间范围,则在所述视频数据包为B帧数据包时,执行对所述视频数据包进行丢帧处理,丢弃所述视频数据包的步骤,还包括:
若超过预设时间范围,则判断所述时间差是否大于第四预设差值,所述第四预设差值大于所述第二预设差值;
若大于,则在读取到的视频数据包为P帧数据包或B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包;
若小于,则在读取到的视频数据包为B帧数据包时,对所读取到的视频数据包进行丢帧处理,丢弃所述视频数据包。
7.如权利要求1-6任一项所述的丢帧处理方法,其特征在于,所述获取视频解码器读取的视频数据包及音频解码器读取的音频数据包的步骤之后,所述方法还包括:
若所述视频数据包为I帧数据包或P帧数据包,或所述视频数据包与所述音频数据包的播放时间差未超过预设时间范围,则运用视频解码器对所述视频数据包进行解码。
8.一种视频播放终端,其特征在于,所述视频播放终端包括存储器、处理器及存储在存储器上并可在处理器上运行的丢帧处理程序,所述处理器执行所述丢帧处理程序时实现权利要求1-7中任一项所述的丢帧处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有丢帧处理程序,所述丢帧处理程序被处理器执行时实现如权利要求1-7中任一项所述的丢帧处理方法的步骤。
CN202010914751.XA 2020-09-02 2020-09-02 丢帧处理方法、视频播放终端及计算机可读存储介质 Active CN112073823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010914751.XA CN112073823B (zh) 2020-09-02 2020-09-02 丢帧处理方法、视频播放终端及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010914751.XA CN112073823B (zh) 2020-09-02 2020-09-02 丢帧处理方法、视频播放终端及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112073823A CN112073823A (zh) 2020-12-11
CN112073823B true CN112073823B (zh) 2022-07-12

Family

ID=73665430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010914751.XA Active CN112073823B (zh) 2020-09-02 2020-09-02 丢帧处理方法、视频播放终端及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112073823B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422866B (zh) * 2022-01-17 2023-07-25 深圳Tcl新技术有限公司 一种视频处理方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100166388A1 (en) * 2007-08-22 2010-07-01 Kazunari Ushiki Video quality estimation apparatus, video quality estimation method, frame type determination method, and recording medium
CN102368823A (zh) * 2011-06-28 2012-03-07 上海盈方微电子有限公司 一种基于分级机制的视频丢帧策略
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN106817614A (zh) * 2017-01-20 2017-06-09 努比亚技术有限公司 音视频丢帧装置及方法
CN109660805A (zh) * 2017-10-10 2019-04-19 武汉斗鱼网络科技有限公司 解码播放中音视频同步优化方法、存储介质、设备及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100166388A1 (en) * 2007-08-22 2010-07-01 Kazunari Ushiki Video quality estimation apparatus, video quality estimation method, frame type determination method, and recording medium
CN102368823A (zh) * 2011-06-28 2012-03-07 上海盈方微电子有限公司 一种基于分级机制的视频丢帧策略
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN106817614A (zh) * 2017-01-20 2017-06-09 努比亚技术有限公司 音视频丢帧装置及方法
CN109660805A (zh) * 2017-10-10 2019-04-19 武汉斗鱼网络科技有限公司 解码播放中音视频同步优化方法、存储介质、设备及系统

Also Published As

Publication number Publication date
CN112073823A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN109714634B (zh) 一种直播数据流的解码同步方法、装置及设备
TWI623225B (zh) 視訊播放方法及其控制終端
US8412364B2 (en) Method and device for sending and playing streaming data
KR100868820B1 (ko) 데이터 스트림을 전달하는 방법 및 시스템과 데이터 저장 레벨을 제어하는 방법
CN113225598B (zh) 移动端音视频同步的方法、装置、设备及存储介质
CN109168083B (zh) 一种流媒体实时播放方法及装置
CN110139148B (zh) 一种视频切换清晰度的方法及相关装置
US20070217505A1 (en) Adaptive Decoding Of Video Data
WO2017067489A1 (zh) 机顶盒音视频同步的方法及装置、存储介质
EP1643772B1 (en) System, method and apparatus for clean channel change
CN111355976B (zh) 一种基于hevc标准的视频直播方法及系统
CN107517400B (zh) 流媒体播放方法及流媒体播放器
CN106791994B (zh) 一种低延时快速开播方法及装置
CN111372138A (zh) 一种播放器端的直播低延迟技术方案
CN111131874B (zh) 一种解决h.265码流随机接入点播放卡顿的方法、设备及计算机存储介质
CN111355975A (zh) 一种直播客户端音视频延时调节播放系统及方法
CN108924631B (zh) 一种基于音视频分流存储的录像生成方法
CN112073823B (zh) 丢帧处理方法、视频播放终端及计算机可读存储介质
CN113490055A (zh) 数据处理方法和装置
US20190327425A1 (en) Image processing device, method and program
CN109862400B (zh) 一种流媒体传输方法、装置及其系统
US11910033B2 (en) Streaming server, transmission method, and program
US11870831B2 (en) Method and apparatus for playing multimedia streaming data
CN114268830B (zh) 云导播同步方法、装置、设备及存储介质
CN107087210B (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