CN107517400B - 流媒体播放方法及流媒体播放器 - Google Patents

流媒体播放方法及流媒体播放器 Download PDF

Info

Publication number
CN107517400B
CN107517400B CN201610431668.0A CN201610431668A CN107517400B CN 107517400 B CN107517400 B CN 107517400B CN 201610431668 A CN201610431668 A CN 201610431668A CN 107517400 B CN107517400 B CN 107517400B
Authority
CN
China
Prior art keywords
video data
data
played
playing
decoded
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
CN201610431668.0A
Other languages
English (en)
Other versions
CN107517400A (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.)
Chengdu TD Tech Ltd
Original Assignee
Chengdu TD Tech 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 Chengdu TD Tech Ltd filed Critical Chengdu TD Tech Ltd
Priority to CN201610431668.0A priority Critical patent/CN107517400B/zh
Publication of CN107517400A publication Critical patent/CN107517400A/zh
Application granted granted Critical
Publication of CN107517400B publication Critical patent/CN107517400B/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/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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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
    • 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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种流媒体播放方法及流媒体播放器。本发明提供的流媒体播放方法,包括以下步骤:对视频数据解码缓存区内缓存的视频数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的。本发明提供的流媒体播放方法及流媒体播放器,在播放流媒体数据时,通过在视频数据解码模块解码出第一帧视频数据的过程中确定视频数据解码模块解码该视频数据时的最小缓存数据量,并在视频数据解码缓存区内缓存有最小缓存数据量的视频数据,能够保证采用该方法及该播放器播放不同的流媒体数据时,同时优化播放流畅性和用户面时延,提高用户体验。

Description

流媒体播放方法及流媒体播放器
技术领域
本发明涉及计算机技术,尤其涉及一种流媒体播放方法及流媒体播放器。
背景技术
随着4G网络以及移动终端的普及,流媒体播放器应用越来越广泛,用户可以在移动终端上安装具有流媒体播放功能的程序用于视频通话,实时观看某一个摄像头发来的视频。对于流媒体播放器而言,播放流畅性以及用户面时延是评价其播放质量最重要的两个指标。
流媒体播放器在进行视频数据解码时,通常做法是首先将视频数据存入到视频数据解码缓存区,并对缓存在视频数据解码缓存区内的视频数据进行数据量的控制。当缓存的视频数据达到设定的阈值时,才开始进行解码操作。但是,对于不同类的视频数据,视频解码器均存在最小缓存数据量,其中,最小缓存数据量是指当视频解码器输出第一帧解码后的视频数据时,视频解码器视频数据解码缓存区需要缓存的视频数据的最小数据量。
当将视频解码器的视频数据解码缓存区需缓存的数据量设置为定值时,采用该解码器对不同类的视频数据进行解码时,则存在以下问题:对于一种数据,当解码器对该种数据的解码能力较强时(相应的最小缓存数据量小于上述设定值),该种方法虽然能够保证该类数据播放时的流畅性,但是,会存在用户面时延较长的问题。而对于另一种数据,当解码器对该种数据的解码能力相对较弱时(最小缓存数据量大于上述设定值),该种方法则不能保证该类数据播放时的流畅性。
发明内容
本发明提供一种流媒体播放方法及流媒体播放器,以解决现有的流媒体播放器在播放流媒体数据时,不能同时优化播放流畅性和用户面时延的问题。
本发明一方面提供一种流媒体播放方法。本发明实施例提供的流媒体播放方法,包括如下步骤:
接收流媒体数据;
从上述流媒体数据中分离出音频数据和视频数据,并将上述音频数据和上述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区;
当上述音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对上述音频数据解码缓存区内缓存的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区;
对上述视频数据解码缓存区内缓存的视频数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的;
获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值;
根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放。
进一步地,本发明一实施例提供的流媒体播放方法,还包括:
当解码完第一帧视频数据后,获取上述视频数据解码缓存区内已经缓存的视频数据的数据量,并将已经缓存的视频数据的数据量确定为视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
进一步地,本发明一实施例提供的流媒体播放方法,上述根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放,包括:
若上述差值处于第一预设区间时,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放方法,上述根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,包括:
若上述差值处于第二预设区间时,删除或播放上述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放方法,上述根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,包括:
若上述差值处于第三预设区间时,删除或播放上述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放方法,还包括,根据上述最小缓存数据量,确定流媒体播放器播放上述流媒体数据时的用户面时延。
本发明另一方面提供一种流媒体播放器。本发明实施例提供的流媒体播放器,包括:接收模块、分离模块、音频数据解码模块、视频数据解码模块、获取模块、控制播放模块;其中:
上述接收模块,用于接收流媒体数据;
上述分离模块,用于从上述流媒体数据中分离出音频数据和视频数据,并将上述音频数据和上述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区;
上述音频数据解码模块,用于当上述音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对上述音频数据解码缓存区内缓存的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区;
上述视频数据解码模块,用于对上述视频数据解码缓存区内缓存的视频数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在上述视频数据解码模块解码出第一帧视频数据的过程中确定的;
上述获取模块,用于获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值;
上述控制播放模块,用于根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放。
进一步地,本发明一实施例提供的流媒体播放器,上述视频数据解码模块,还用于当解码完第一帧视频数据后,获取上述视频数据解码缓存区内已经缓存的视频数据的数据量,并将已经缓存的视频数据的数据量确定为上述视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
进一步地,本发明一实施例提供的流媒体播放器,上述控制播放模块,具体用于,
控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放器,上述控制播放模块,具体用于,
若上述差值处于第二预设区间时,删除或播放上述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的音频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放器,上述控制播放模块,具体用于,
若上述差值处于第三预设区间时,删除或播放上述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放器,上述视频数据解码模块,还用于,根据上述最小缓存数据量,确定流媒体播放器播放上述流媒体数据时的用户面时延。
本发明提供的流媒体播放方法及流媒体播放器,在播放流媒体数据时,通过在视频数据解码模块解码出第一帧视频数据的过程中确定视频数据解码模块解码该视频数据时的最小缓存数据量,并在视频数据解码缓存区内缓存有最小缓存数据量的视频数据。能够保证采用该方法及该播放器播放不同的流媒体数据时,同时优化播放流畅性和用户面时延,在保证播放流畅性的前提下,同时使用户面时延最小,提高用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为视频数据解码模块对视频数据进行解码的原理图;
图2为本发明流媒体播放方法实施例一的流程图;
图3为本发明流媒体播放器实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为清楚说明本发明提供的流媒体播放方法及流媒体播放器,下面先简单介绍视频数据解码模块对视频数据进行解码的过程及原理。图1为视频数据解码模块对视频数据进行解码的原理图。如图1所示:视频数据解码模块包括视频数据解码缓存区、视频数据解码区、视频数据播放缓存区三部分。其中,视频数据解码缓存区,用来存储待解码的视频数据;视频数据解码区,用于对视频数据解码缓存区内存储的视频数据进行解码;视频数据播放缓存区,则用于存储解码后的视频数据。视频数据解码模块对视频数据进行解码的原理为:向视频数据解码缓存模块缓存X帧的待解码的视频数据,视频数据解码模块将输出一帧解码后的视频数据。其中,X表示视频数据解码模块对视频数据进行解码时的解码能力。需要说明的是,当流媒体播放器安装在不同的移动终端上时,由于各移动终端硬件上的差异,各移动终端上的视频解码模块对同一视频数据的解码能力是不同的。此外,即使是流媒体播放器安装在一个终端上,对于不同的视频数据,视频数据解码模块对不同的视频数据的解码能力也是不同的。
在对视频数据解码的过程中,现有技术中,通常采用的做法是:先向视频数据解码缓存区缓存视频数据,当视频解码缓存区内缓存的视频数据达到预设阈值时,视频数据解码区对存储在视频数据解码缓存区内的视频数据进行解码,并将解码后的视频数据存储在视频数据播放缓存区。
但是,对于不同分辨率的视频数据,视频数据解码模块对其解码的能力是不一样的。例如,对于一种分辨率的视频数据,需要向视频数据解码缓存区缓存至少5帧的视频数据,视频数据解码模块才会输出一帧解码后的视频数据;而对于另一种分辨率的视频数据,需要向视频数据解码缓存区缓存至少10帧的视频数据,视频数据解码模块才会输出一帧解码后的视频数据。对于不同类的视频数据,视频数据解码缓存区均存在最小缓存数据量。其中,某一个视频数据的最小缓存数据量是指视频数据解码模块解码该视频数据时,当输出一帧解码后的视频数据时,视频解码缓存区需要缓存的视频数据的最小缓存数据量。具体地,最小缓存数据量与视频解码模块对该视频数据的解码能力息息相关,最小缓存数据量等于视频解码模块对该视频数据的解码能力乘以每一帧视频数据的播放长度(取40ms)。
当采用通常方法来对视频数据进行解码时,由于将视频数据解码缓存区需要缓存的数据量设定为预设阈值。例如:将预设阈值设定为320ms(8×40ms=320ms)。采用该种方法对不同的视频数据进行解码时,则存在以下问题:当对一种视频数据进行解码时,若视频解码模块对该视频数据的解码能力为5,则表明:只要向视频数据解码缓存区缓存200ms(5×40ms=200ms)的视频数据,视频数据解码模块即输出一帧解码后的视频数据,而我们将视频数据解码缓存区需要缓存的数据量设定为320ms。此时,该种方法虽然能够保证该类数据的流畅性,但是,由于当视频数据解码缓存区存储200ms的视频数据时,视频数据解码模块即可输出一帧解码后的视频数据。但是,将视频数据解码缓存区设定为需要缓存320ms的视频数据时,当视频数据缓存区缓存有320ms的视频数据时,视频解码模块才开始进行解码,存在用户面时延较长的问题。
而对于另一种数据而言,当视频数据解码模块解码该类数据的解码能力为10时,则视频数据解码模块解码该视频数据时的最小缓存数据量为400ms(10×40=400ms)。当将视频数据解码缓存区设定为需要缓存320ms的视频数据时,由于视频数据解码缓存区需要缓存400ms的视频数据才能输出一帧解码后的视频数据,而将视频数据解码缓存区需要缓存的数据量设定为320ms的视频数据时,当视频数据解码缓存区内存储320ms的视频数据时,视频数据解码模块就对视频数据解码缓存区内的视频数据进行解码。此时,该类视频数据播放时将出现卡顿现象。
本发明提供一种流媒体播放方法及播放装置,以确定流媒体播放器解码各类流媒体数据时的最小缓存数据量,优化流媒体播放器播放该类流媒体数据时的流畅性及用户面时延,避免发生卡顿现象,实现音视频数据的同步播放。
实施例一
本发明实施例一提供一种流媒体播放方法。图2为本发明提供的流媒体播放方法实施例一的流程图。如图2所示,本发明实施例一提供的流媒体播放方法,包括如下步骤:
S101、接收流媒体数据。
具体地,流媒体播放器包括接收模块。接收模块,用于接收来流媒体数据。此外,流媒体播放器可以接收头端设备或者是流媒体服务器发送的流媒体数据。
更具体地,上述流媒体数据包括视频数据和音频数据。
S102、从上述流媒体数据中分离出音频数据和视频数据,并将上述音频数据和上述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区。
具体地,流媒体播放器包括分离模块。分离模块,用于从上述流媒体数据中分离出音频数据和视频数据,并将上述音频数据和上述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区。
S103、当上述音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对上述音频数据解码缓存区内缓存的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区。
具体地,流媒体播放器包括音频数据解码模块。音频数据解码模块,用于当音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对上述音频数据解码缓存区内存储的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区。需要说明的是,音频数据解码模块需要调用移动终端的硬件机制来实现音频数据的解码。
更具体地,音频数据解码模块对音频数据解码的过程及原理与上述介绍的视频数据解码模块对视频数据解码的过程及原理类似。即音频数据解码模块包括音频数据解码缓存区,音频数据解码区,音频数据播放缓存区。本实施例不对上述预设阈值进行限定,当音频数据解码缓存区内存储的音频数据量达到预设阈值时,音频数据解码模块对上述音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区。
需要说明的是,由于音频数据自身的特性,音频数据解码的过程相比于视频数据解码的过程,解码过程较容易,解码时相应的用时也较少。
S104、对视频数据解码缓存区内缓存的视频数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的。
具体地,流媒体播放器包括视频数据解码模块。上述视频数据解码模块,用于对视频数据解码缓存区内缓存的视频数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的。需要说明的是,视频解码模块需要调用移动终端的硬件机制来实现视频数据的解码。
更具体地,本方法中,在启播时,不对视频数据解码缓存区需要缓存的数据量进行设定。在视频数据存入视频数据解码缓存区的过程中,即对存入的视频数据进行解码。这样,经过一定时间的等待,当视频数据解码缓存区内一存入最小缓存数据量的视频数据时,视频数据解码模块即可解码输出一帧解码后的视频数据。此后的过程中,均匀的向视频数据解码缓存区内缓存视频数据,只要保证视频数据解码缓存区内缓存有最小缓存数据量的视频数据,这样,视频数据解码模块即可均匀的输出解码后的视频数据。
需要说明的是,上述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的。具体地,当视频数据解码模块解码完第一帧视频数据后,获取上述视频数据解码缓存区内已经缓存的视频数据的数据量,将已经缓存的视频数据的数据量确定为视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
具体地,当解码完第一帧视频数据后,获取上述视频数据解码缓存区内已经缓存的待解码视频数据的帧数,将已经缓存的待解码的视频数据的帧数确定为视频解码模块对该视频数据的解码能力。而已经缓存的数据量则等于已经缓存的视频数据的帧数乘以每一帧视频数据播放的长度(取40ms)。例如:视频数据解码模块对某一视频数据进行解码时,当输出第一帧解码后的视频数据时,获取到视频数据解码缓存区已经缓存了5帧的待解码的视频数据,则此时,得到已经缓存的视频数据的数据量为200ms(5×40ms=200ms),将已经缓存的视频数据的数据量200ms确定为视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
需要说明的是,对于不同类的视频数据,上述最小缓存数据量是不同的,例如,通过确定,对于QCIF的视频数据,当相应的流媒体播放器安装在华为mate7上时,当该视频数据包含VUI信息时,上述最小缓存数据量为320ms的视频数据;而当该类视频数据不包含VUI信息时,上述最小缓存数据量为720ms的视频数据。再例如,对于分辨率为1080的视频数据,当相应的流媒体播放器安装在华为mate7上时,当该视频数据包含VUI信息时,上述最小缓存数据量为200ms的视频数据;而当该类视频数据不包含VUI信息时,上述最小缓存数据量为400ms的视频数据。
S105、获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值。
具体的,解码后的视频数据和解码后的音频数据携带播放时间点。流媒体播放器包括获取模块。上述获取模块,用于获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值。
S106、根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放。
具体地,流媒体播放器包括控制播放模块。上述控制播放模块,用于控制上述当前待播放的解码后的视频数据和当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放。
更具体地,播放控制模块,可以根据上述差值,控制当前待播放法的解码后的音频数据和当前待播放的解码后的视频数据播放或者是删除,以实现音视频数据和音频数据的同步播放。
进一步地,本实施例提供的流媒体播放方法,还包括:
根据上述最小缓存数据量,确定流媒体播放器播放上述流媒体数据时的用户面时延。
具体地,当确定了最小缓存数据量时,可以确定流媒体播放器播放上述流媒体数据时的用户面时延。其中,流媒体播放器播放上述流媒体数据时的用户面时延等于视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
本发明提供的流媒体播放方法,在播放流媒体数据时,通过在视频数据解码模块解码出第一帧视频数据的过程中确定视频解码模块解码该视频数据时的最小缓存数据量,并在视频数据解码缓存区内缓存有最小缓存数据量的视频数据。能够保证采用该方法及该播放器播放不同的流媒体数据时,同时优化播放流畅性和用户面时延,在保证播放流畅性的前提下,同时使用户面时延最小,提高用户体验。
进一步地,在本发明一种可能的实现方式中,步骤S106,具体包括:
若上述差值处于第一预设区间时,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据开始播放。
具体地,本实施例中,不对第一预设区间的具体值进行限定。优选地,上述第一预设区间为[0ms 160ms]。需要说明的是,当上述差值处于第一预设区间时,说明当前待播放的解码后的视频数据和当前待播放的音频数据的播放时间点相差不大,能够满足同步播放的需要,因此,此时,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据开始播放。
进一步地,在本发明另一种可能的实现方式中,步骤S106,具体包括:
若上述差值处于第二预设区间时,删除或播放上述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
具体地,本实施例不对第二预设区间的具体值进行限定。优选地,上述第二预设区间为大于160ms。需要说明的是,此时,当当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值大于160ms时,说明当前待播放的解码后的音频数据已经过期,需要将该当前待播放的解码后的音频数据删除掉或者是播放掉,优选为删除掉,再获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于[0ms 160ms]时,说明此时的待播放的视频数据与音频数据播放时间点相差不大,能够满足同步的要求。因此,此时,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
在本发明另一种可能的实现方式中,步骤S106,具体包括:若上述差值处于第三预设区间时,删除或播放上述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
具体地,本实施例中,不对第三区间的具体值进行限定。优选地,第三预设区间为小于0ms。需要说明的是,此时,当当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值小于0ms时,说明当前待播放的解码后的视频数据来的过早,此时,需要将该当前待播放的解码后的视频数据删除掉或者是播放掉。此时,为了获得更多的视频信息,优选为将当前待播放的解码后的视频数据播放掉,并再获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于[0ms 160ms]时,说明此时的待播放的视频数据与音频数据播放时间点相差不大,能够满足同步的要求。因此,此时,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
本实施例提供的流媒体播放方法,根据当前待播放的解码后的视频数据与当前待播放的音频数据的播放时间点的差值,来控制当前待播放的解码后的视频数据与当前待播放的音频数据的播放,能够实现视频数据与音频数据的同步播放。
实施例二
本发明第二方面提供一种流媒体播放器。图3为本发明流媒体播放器实施例二的结构示意图。如图3所示,本实施例提供的流媒体播放器,包括:接收模块100、分离模块200、音频数据解码模块300、视频数据解码模块400、获取模块500、控制播放模块600;其中:
接收模块100,用于接收流媒体数据;
分离模块200,用于从上述流媒体数据中分离出音频数据和视频数据,并将上述音频数据和上述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区;
音频数据解码模块300,用于当上述音频数据解码缓存区内缓存的音频数据达到预设阈值时,对上述音频数据解码缓存区内存储的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区;
视频数据解码模块400,用于对上述视频数据解码缓存区内缓存的数据进行解码;上述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,上述最小缓存数据量,是在上述视频数据解码模块解码出第一帧视频数据的过程中确定的;
获取模块500,用于获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值;
控制播放模块600,用于根据上述差值,控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放。
具体地,各模块的具体作用已经在对应的方法实施例中详细介绍,此处不再赘述。
进一步地,在本发明一实施例中,视频数据解码模块400,还用于,当解码完第一帧视频数据后,获取上述视频数据解码缓存区内已经缓存的视频数据的数据量,并将已经缓存的视频数据的数据量确定为上述视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
本实施例提供的流媒体播放器,在播放流媒体数据时,通过在视频数据解码模块解码出第一帧视频数据的过程中确定视频数据解码模块解码该视频数据时的最小缓存数据量,并在视频数据解码缓存区内缓存有最小缓存数据量的视频数据。能够保证采用该方法及该装置播放不同的流媒体数据时,同时优化播放流畅性和用户面时延,在保证播放流畅性的前提下,同时使用户面时延最小,提高用户体验。
进一步地,本实施例提供的流媒体播放方法,视频数据解码模块400,还用于根据上述最小缓存数据量,确定流媒体播放器播放上述流媒体数据时的用户面时延。
具体地,当确定了最小缓存数据量时,可以确定流媒体播放器播放上述流媒体数据时的用户面时延。其中,流媒体播放器播放上述流媒体数据时的用户面时延等于视频数据解码模块解码上述流媒体数据时的最小缓存数据量。
进一步地,本发明一实施例提供的流媒体播放器,控制播放模块600,具体用于,
控制上述当前待播放的解码后的视频数据和上述当前待播放的解码后的音频数据开始播放。
进一步地,本发明一种可能的实现方式中,控制播放模块600,具体用于,若上述差值处于第二预设区间时,删除或播放上述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的音频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
进一步地,本发明一实施例提供的流媒体播放器,控制播放模块600,具体用于,
若上述差值处于第三预设区间时,删除或播放上述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
具体地,上述过程的实现方式已经在方法实施例中具体说明,此处不再赘述。
本发明提供的流媒体播放器,根据当前待播放的解码后的视频数据与当前待播放的音频数据的播放时间点的差值,来控制当前待播放的解码后的视频数据与当前待播放的音频数据的播放,能够实现视频数据与音频数据的同步播放。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种流媒体播放方法,其特征在于,包括如下步骤:
接收流媒体数据;
从所述流媒体数据中分离出音频数据和视频数据,并将所述音频数据和所述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区;
当所述音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对所述音频数据解码缓存区内缓存的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区;
对所述视频数据解码缓存区内缓存的视频数据进行解码;所述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,所述最小缓存数据量,是在视频数据解码模块解码出第一帧视频数据的过程中确定的;
获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值;
根据所述差值,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放;
其中,所述方法还包括:当解码完第一帧视频数据后,获取所述视频数据解码缓存区内已经缓存的视频数据的数据量,并将已经缓存的视频数据的数据量确定为视频数据解码模块解码所述流媒体数据时的最小缓存数据量。
2.根据权利要求1所述的流媒体播放方法,其特征在于,所述根据所述差值,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放,包括:
若所述差值处于第一预设区间时,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据开始播放。
3.根据权利要求1所述的流媒体播放方法,其特征在于,所述根据所述差值,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放,包括:
若所述差值处于第二预设区间时,删除或播放所述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
4.根据权利要求1所述的流媒体播放方法,其特征在于,所述根据所述差值,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放,包括:
若所述差值处于第三预设区间时,删除或播放所述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
5.一种流媒体播放器,其特征在于,包括:接收模块、分离模块、音频数据解码模块、视频数据解码模块、获取模块、控制播放模块;其中:
所述接收模块,用于接收流媒体数据;
所述分离模块,用于从所述流媒体数据中分离出音频数据和视频数据,并将所述音频数据和所述视频数据分别存入音频数据解码缓存区和视频数据解码缓存区;
所述音频数据解码模块,用于当所述音频数据解码缓存区内缓存的音频数据量达到预设阈值时,对所述音频数据解码缓存区内缓存的音频数据进行解码,并将解码后的音频数据存入音频数据播放缓存区;
所述视频数据解码模块,用于对所述视频数据解码缓存区内缓存的视频数据进行解码;所述视频数据解码缓存区内缓存有最小缓存数据量的视频数据,所述最小缓存数据量,是在所述视频数据解码模块解码出第一帧视频数据的过程中确定的;
所述获取模块,用于获取当前待播放的解码后的视频数据与当前待播放的解码后的音频数据播放时间点的差值;
所述控制播放模块,用于根据所述差值,控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据的播放,以实现视频数据与音频数据的同步播放;
其中,所述视频数据解码模块,还用于,当解码完第一帧视频数据后,获取所述视频数据解码缓存区内已经缓存的视频数据的数据量,并将已经缓存的视频数据的数据量确定为所述视频数据解码模块解码所述流媒体数据时的最小缓存数据量。
6.根据权利要求5所述的流媒体播放器,其特征在于,所述控制播放模块,具体用于,
控制所述当前待播放的解码后的视频数据和所述当前待播放的解码后的音频数据开始播放。
7.根据权利要求5所述的流媒体播放器,其特征在于,所述控制播放模块,具体用于,
若所述差值处于第二预设区间时,删除或播放所述当前待播放的解码后的音频数据,并获取下一个待播放的解码后的音频数据,直至当前待播放的解码后的音频数据与下一个待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制当前待播放的解码后的视频数据与下一个待播放的解码后的音频数据开始播放。
8.根据权利要求5所述的流媒体播放器,其特征在于,所述控制播放模块,具体用于,
若所述差值处于第三预设区间时,删除或播放所述当前待播放的视频数据,并获取下一个待播放的解码后的视频数据,直至下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据的播放时间点的差值处于第一预设区间,控制下一个待播放的解码后的视频数据与当前待播放的解码后的音频数据开始播放。
CN201610431668.0A 2016-06-15 2016-06-15 流媒体播放方法及流媒体播放器 Active CN107517400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610431668.0A CN107517400B (zh) 2016-06-15 2016-06-15 流媒体播放方法及流媒体播放器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610431668.0A CN107517400B (zh) 2016-06-15 2016-06-15 流媒体播放方法及流媒体播放器

Publications (2)

Publication Number Publication Date
CN107517400A CN107517400A (zh) 2017-12-26
CN107517400B true CN107517400B (zh) 2020-03-24

Family

ID=60721190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610431668.0A Active CN107517400B (zh) 2016-06-15 2016-06-15 流媒体播放方法及流媒体播放器

Country Status (1)

Country Link
CN (1) CN107517400B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108449617B (zh) 2018-02-11 2020-04-03 浙江大华技术股份有限公司 一种控制音视频同步的方法及装置
CN110519627B (zh) * 2018-05-21 2021-05-14 视联动力信息技术股份有限公司 一种音频数据的同步方法和装置
CN111510761B (zh) * 2019-01-30 2021-06-04 上海哔哩哔哩科技有限公司 首帧均衡限流方法、装置、计算机设备及可读存储介质
CN110312159B (zh) * 2019-05-24 2022-03-11 深圳市朗强科技有限公司 一种信号接收装置、流媒体传输系统及流媒体传输方法
CN110677715B (zh) * 2019-10-11 2022-04-22 北京达佳互联信息技术有限公司 一种解码方法、解码器、电子设备及存储介质
CN112423105B (zh) * 2020-10-27 2024-03-15 深圳Tcl新技术有限公司 数据传输方法、设备及介质
CN112601109A (zh) * 2020-11-30 2021-04-02 海信视像科技股份有限公司 音频播放方法及显示设备
CN114866814B (zh) * 2022-06-09 2024-04-30 上海哔哩哔哩科技有限公司 网络带宽分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271720A (zh) * 2008-04-22 2008-09-24 中兴通讯股份有限公司 一种手机流媒体音视频的同步方法
CN103546802A (zh) * 2013-10-15 2014-01-29 深圳Tcl新技术有限公司 动态调整缓存的方法及显示终端
CN104618786A (zh) * 2014-12-22 2015-05-13 深圳市腾讯计算机系统有限公司 音视频同步方法和装置
CN104780422A (zh) * 2014-01-13 2015-07-15 北京兆维电子(集团)有限责任公司 流媒体播放方法及流媒体播放器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060036922A (ko) * 2003-06-06 2006-05-02 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 압축

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271720A (zh) * 2008-04-22 2008-09-24 中兴通讯股份有限公司 一种手机流媒体音视频的同步方法
CN103546802A (zh) * 2013-10-15 2014-01-29 深圳Tcl新技术有限公司 动态调整缓存的方法及显示终端
CN104780422A (zh) * 2014-01-13 2015-07-15 北京兆维电子(集团)有限责任公司 流媒体播放方法及流媒体播放器
CN104618786A (zh) * 2014-12-22 2015-05-13 深圳市腾讯计算机系统有限公司 音视频同步方法和装置

Also Published As

Publication number Publication date
CN107517400A (zh) 2017-12-26

Similar Documents

Publication Publication Date Title
CN107517400B (zh) 流媒体播放方法及流媒体播放器
CN109714634B (zh) 一种直播数据流的解码同步方法、装置及设备
KR101008764B1 (ko) 쌍방향 미디어 응답 시스템에서 시각 단서를 제공하는 방법
US9489980B2 (en) Video/audio synchronization apparatus and video/audio synchronization method
US20090109988A1 (en) Video Decoder with an Adjustable Video Clock
US20110002376A1 (en) Latency Minimization Via Pipelining of Processing Blocks
JP5452495B2 (ja) オーディオ・ビデオレンダリングの早期開始システム及び方法
US20070217505A1 (en) Adaptive Decoding Of Video Data
CN109379619B (zh) 音画同步方法及装置
US10313719B2 (en) Video stream splicing
CN111372138A (zh) 一种播放器端的直播低延迟技术方案
US7493644B1 (en) Method, apparatus, and system for video fast forward functionality in a mobile phone
CN106791994B (zh) 一种低延时快速开播方法及装置
KR20110065100A (ko) 멀티미디어 스트리밍 서비스를 지원하는 방법 및 장치
US10382809B2 (en) Method and decoder for decoding a video bitstream using information in an SEI message
CN106331820B (zh) 音视频的同步处理方法和装置
CN110996122B (zh) 视频帧传输方法、装置、计算机设备及存储介质
KR101668283B1 (ko) 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템
KR20130109969A (ko) 단일 디코더로 채널 변경을 가능하게 하기 위한 수신기 및 수신기에서의 방법
CN110351576B (zh) 一种在工业场景下进行实时视频流快速显示的方法及其系统
US20210400334A1 (en) Method and apparatus for loop-playing video content
US6757332B1 (en) Video decoding method, video decoding apparatus, and program storage media
US20190387271A1 (en) Image processing apparatus, image processing method, and program
JPWO2014115389A1 (ja) ビデオ表示装置及びビデオ表示方法
CN111064698B (zh) 一种多媒体流数据的播放方法和装置

Legal Events

Date Code Title Description
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