CN112153446A - 一种显示设备及流媒体视频音画同步方法 - Google Patents
一种显示设备及流媒体视频音画同步方法 Download PDFInfo
- Publication number
- CN112153446A CN112153446A CN202011035305.8A CN202011035305A CN112153446A CN 112153446 A CN112153446 A CN 112153446A CN 202011035305 A CN202011035305 A CN 202011035305A CN 112153446 A CN112153446 A CN 112153446A
- Authority
- CN
- China
- Prior art keywords
- time
- playing
- video data
- data
- frame
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000003111 delayed effect Effects 0.000 claims description 15
- 230000004048 modification Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 39
- 238000004891 communication Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 230000005236 sound signal Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing 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/4402—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请提供一种显示设备及流媒体视频音画同步方法,所述方法可以在获取播放数据后,对播放数据进行解码,并计算解码后相邻两帧视频数据之间的相邻帧时间差,从而根据相邻帧时间差修改当前帧视频数据的播放参数。其中,对播放参数的修改,可以实现在当前帧与前一帧时间戳不连续时,调节播放起始时间或播放系统时间,从而实现多帧视频数据间的连续播放。
Description
技术领域
本申请涉及智能电视技术领域,尤其涉及一种显示设备及流媒体视频音画同步方法。
背景技术
智能电视是基于Internet应用技术,具备开放式操作系统与芯片,拥有开放式应用平台,可实现双向人机交互功能,集影音、娱乐、数据等多种功能于一体的电视产品,用于满足用户多样化和个性化需求。通过智能电视可以播放音视频文件,形成流媒体。为了输出更好的流媒体影音效果,智能电视需要保证多媒体的音画同步功能。
多媒体的同步功能是,让多个流中具有相同时间戳(presentation timestamp,pts)的媒体数据在同一时刻被播放出来,即实现音画同步。例如,基于gstreamer的开源多媒体框架中,可支持三种不同的音视频同步方式:音频作为主时钟、视频作为主时钟、系统时钟作为主时钟。
其中,多数播放器是以音频作为主时钟的同步方式,但对于一些特殊的播放器或者在播放没有音频的多媒体时,需要使用系统时钟作为主时钟的同步方式,此时音视频帧均需要根据pts向系统时钟对齐。如果相邻帧的pts不连续,则流媒体的播放过程中会出现卡住、卡顿等异常情况,降低用户体验。
发明内容
本申请提供了一种显示设备及流媒体视频音画同步方法,以解决传统流媒体视频音画同步方法容易出现卡顿的问题。
一方面,本申请提供一种显示设备,包括:显示器、音频输出接口以及控制器。其中,显示器被配置为显示播放数据中的视频画面;音频数据接口被配置为输出播放数据中的音频信号;所述控制器被配置为执行以下程序步骤:
获取播放数据,所述播放数据包括视频数据和/或音频数据;
对所述播放数据执行解码,以获得多帧视频数据;
根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差;
按照所述相邻帧时间差,修改当前帧视频数据的播放参数,所述播放参数包括播放起始时间或播放系统时间,所述播放起始时间为播放数据的播放起始时间,所述播放系统时间为播放器的起播时间。
另一方面,基于上述显示设备,本申请还提供一种流媒体视频音画同步方法,应用于显示设备,所述显示设备包括显示器、音频输出接口以及控制器;所述方法包括以下步骤:
获取播放数据,所述播放数据包括视频数据和/或音频数据;
对所述播放数据执行解码,以获得多帧视频数据;
根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差;
按照所述相邻帧时间差,修改当前帧视频数据的播放参数,所述播放参数包括播放起始时间或播放系统时间,所述播放起始时间为播放数据的起始时间,所述播放系统时间为播放器的起播时间。
由以上技术方案可知,本申请提供的显示设备及流媒体视频音画同步方法可以在获取播放数据后,对播放数据进行解码,并计算解码后相邻两帧视频数据之间的相邻帧时间差,从而根据相邻帧时间差修改当前帧视频数据的播放参数。其中,调节播放参数可以实现在当前帧与前一帧时间戳不连续时,调节播放起始时间或播放系统时间,从而保证多帧视频数据间的连续播放。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中显示设备与控制装置之间操作场景的示意图;
图2为本申请实施例中显示设备的硬件配置框图;
图3为本申请实施例中控制设备的硬件配置框图;
图4为本申请实施例中显示设备软件配置示意图;
图5为本申请实施例中显示设备应用程序的图标控件界面显示示意图;
图6为本申请实施例中系统时间轴示意图;
图7为本申请实施例中一种流媒体视频音画同步方法流程示意图;
图8为本申请实施例中修改播放参数的流程示意图;
图9为本申请实施例中生成相邻帧时间差的流程示意图;
图10为本申请实施例中输出视频数据的流程示意图;
图11为本申请实施例中解码模块的内部处理流程示意图;
图12为本申请实施例中显示模块的内部处理流程示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(Unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本申请中使用的术语“遥控器”,是指电子设备(如本申请中公开的显示设备)的一个组件,通常可在较短的距离范围内无线控制电子设备。一般使用红外线和/或射频(RF)信号和/或蓝牙与电子设备连接,也可以包括WiFi、无线USB、蓝牙、动作传感器等功能模块。例如:手持式触摸遥控器,是以触摸屏中用户界面取代一般遥控装置中的大部分物理内置硬键。
本申请中使用的术语“手势”,是指用户通过一种手型的变化或手部运动等动作,用于表达预期想法、动作、目的/或结果的用户行为。
图1中示例性示出了根据实施例中显示设备与控制装置之间操作场景的示意图。如图1中示出,用户可通过移动终端300和控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式等,通过无线或其他有线方式来控制显示设备200。用户可以通过遥控器上按键,语音输入、控制面板输入等输入用户指令,来控制显示设备200。如:用户可以通过遥控器上音量加减键、频道控制键、上/下/左/右的移动按键、语音输入按键、菜单键、开关机按键等输入相应控制指令,来实现控制显示设备200的功能。
在一些实施例中,也可以使用移动终端、平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。该应用程序通过配置可以在与智能设备关联的屏幕上,在直观的用户界面(UI)中为用户提供各种控制。
在一些实施例中,移动终端300可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。如:可以实现用移动终端300与显示设备200建立控制指令协议,将遥控控制键盘同步到移动终端300上,通过控制移动终端300上用户界面,实现控制显示设备200的功能。也可以将移动终端300上显示音视频内容传输到显示设备200上,实现同步显示功能。
如图1中还示出,显示设备200还与服务器400通过多种通信方式进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。示例的,显示设备200通过发送和接收信息,以及电子节目指南(EPG)互动,接收软件程序更新,或访问远程储存的数字媒体库。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。通过服务器400提供视频点播和广告服务等其他网络服务内容。
显示设备200,可以液晶显示器、OLED显示器、投影显示设备。具体显示设备类型,尺寸大小和分辨率等不作限定,本领技术人员可以理解的是,显示设备200可以根据需要做性能和配置上一些改变。
显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能,包括但不限于,网络电视、智能电视、互联网协议电视(IPTV)等。
图2中示例性示出了根据示例性实施例中显示设备200的硬件配置框图。
在一些实施例中,显示设备200中包括控制器250、调谐解调器210、通信器220、检测器230、输入/输出接口255、显示器275,音频输出接口285、存储器260、供电电源290、用户接口265、外部装置接口240中的至少一种。
在一些实施例中,显示器275,用于接收源自第一处理器输出的图像信号,进行显示视频内容和图像以及菜单操控界面的组件。
在一些实施例中,显示器275,包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件。
在一些实施例中,显示视频内容,可以来自广播电视内容,也可以是说,可通过有线或无线通信协议接收的各种广播信号。或者,可显示来自网络通信协议接收来自网络服务器端发送的各种图像内容。
在一些实施例中,显示器275用于呈现显示设备200中产生且用于控制显示设备200的用户操控UI界面。
在一些实施例中,根据显示器275类型不同,还包括用于驱动显示的驱动组件。
在一些实施例中,显示器275为一种投影显示器,还可以包括一种投影装置和投影屏幕。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或外部服务器进行通信的组件。例如:通信器可以包括Wifi芯片,蓝牙通信协议芯片,有线以太网通信协议芯片等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。
在一些实施例中,显示设备200可以通过通信器220与外部控制设备100或内容提供设备之间建立控制信号和数据信号发送和接收。
在一些实施例中,用户接口265,可用于接收控制装置100(如:红外遥控器等)红外控制信号。
在一些实施例中,检测器230是显示设备200用于采集外部环境或与外部交互的信号。
在一些实施例中,检测器230包括光接收器,用于采集环境光线强度的传感器,可以通过采集环境光可以自适应性显示参数变化等。
在一些实施例中,检测器230还可以包括图像采集器,如相机、摄像头等,可以用于采集外部环境场景,以及用于采集用户的属性或与用户交互手势,可以自适应变化显示参数,也可以识别用户手势,以实现与用户之间互动的功能。
在一些实施例中,检测器230还可以包括温度传感器等,如通过感测环境温度。
在一些实施例中,显示设备200可自适应调整图像的显示色温。如当温度偏高的环境时,可调整显示设备200显示图像色温偏冷色调,或当温度偏低的环境时,可以调整显示设备200显示图像偏暖色调。
在一些实施例中,检测器230还可声音采集器等,如麦克风,可以用于接收用户的声音。示例性的,包括用户控制显示设备200的控制指令的语音信号,或采集环境声音,用于识别环境场景类型,使得显示设备200可以自适应适应环境噪声。
在一些实施例中,如图2所示,输入/输出接口255被配置为,可进行控制器250与外部其他设备或其他控制器250之间的数据传输。如接收外部设备的视频信号数据和音频信号数据、或命令指令数据等。
在一些实施例中,外部装置接口240可以包括,但不限于如下:可以高清多媒体接口HDMI接口、模拟或数据高清分量输入接口、复合视频输入接口、USB输入接口、RGB端口等任一个或多个接口。也可以是上述多个接口形成复合性的输入/输出接口。
在一些实施例中,如图2所示,调谐解调器210被配置为,通过有线或无线接收方式接收广播电视信号,可以进行放大、混频和谐振等调制解调处理,从多多个无线或有线广播电视信号中解调出音视频信号,该音视频信号可以包括用户所选择电视频道频率中所携带的电视音视频信号,以及EPG数据信号。
在一些实施例中,调谐解调器210解调的频点受到控制器250的控制,控制器250可根据用户选择发出控制信号,以使的调制解调器响应用户选择的电视信号频率以及调制解调该频率所携带的电视信号。
在一些实施例中,广播电视信号可根据电视信号广播制式不同区分为地面广播信号、有线广播信号、卫星广播信号或互联网广播信号等。或者根据调制类型不同可以区分为数字调制信号,模拟调制信号等。或者根据信号种类不同区分为数字信号、模拟信号等。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。这样,机顶盒将接收到的广播电视信号调制解调后的电视音视频信号输出给主体设备,主体设备经过第一输入/输出接口接收音视频信号。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250可以控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器275上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接或图标。与所选择的对象有关操作,例如:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。用于选择UI对象用户命令,可以是通过连接到显示设备200的各种输入装置(例如,鼠标、键盘、触摸板等)输入命令或者与由用户说出语音相对应的语音命令。
如图2所示,控制器250包括随机存取存储器251(Random Access Memory,RAM)、只读存储器252(Read-Only Memory,ROM)、视频处理器270、音频处理器280、其他处理器253(例如:图形处理器(Graphics Process ing Unit,GPU)、中央处理器254(Central Processing Unit,CPU)、通信接口(Communication Interface),以及通信总线256(Bus)中的至少一种。其中,通信总线连接各个部件。
在一些实施例中,RAM 251用于存储操作系统或其他正在运行中的程序的临时数据在一些实施例中,ROM 252用于存储各种系统启动的指令。
在一些实施例中,ROM 252用于存储一个基本输入输出系统,称为基本输入输出系统(Bas ic Input Output System,BIOS)。用于完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
在一些实施例中,在收到开机信号时,显示设备200电源开始启动,CPU运行ROM252中系统启动指令,将存储在存储器的操作系统的临时数据拷贝至RAM 251中,以便于启动或运行操作系统。当操作系统启动完成后,CPU再将存储器中各种应用程序的临时数据拷贝至RAM 251中,然后,以便于启动或运行各种应用程序。
在一些实施例中,处理器254,用于执行存储在存储器中操作系统和应用程序指令。以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。
在一些示例性实施例中,处理器254,可以包括多个处理器。多个处理器可包括一个主处理器以及一个或多个子处理器。主处理器,用于在预加电模式中执行显示设备200一些操作,和/或在正常模式下显示画面的操作。一个或多个子处理器,用于在待机模式等状态下一种操作。
在一些实施例中,图形处理器253,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等。包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象。以及包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,视频处理器270被配置为将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等等视频处理,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器270,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等。
其中,解复用模块,用于对输入视频数据流进行解复用处理,如输入MPEG-2,则解复用模块进行解复用成视频信号和音频信号等。
视频解码模块,则用于对解复用后的视频信号进行处理,包括解码和缩放处理等。
图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。
帧率转换模块,用于对转换输入视频帧率,如将60Hz帧率转换为120Hz帧率或240Hz帧率,通常的格式采用如插帧方式实现。
显示格式化模块,则用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,图形处理器253可以和视频处理器可以集成设置,也可以分开设置,集成设置的时候可以执行输出给显示器的图形信号的处理,分离设置的时候可以分别执行不同的功能,例如GPU+FRC(Frame Rate Conversion))架构。
在一些实施例中,音频处理器280,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理,得到可以在扬声器中播放的声音信号。
在一些实施例中,视频处理器270可以包括一颗或多颗芯片组成。音频处理器,也可以包括一颗或多颗芯片组成。
在一些实施例中,视频处理器270和音频处理器280,可以单独的芯片,也可以于控制器一起集成在一颗或多颗芯片中。
在一些实施例中,音频输出,在控制器250的控制下接收音频处理器280输出的声音信号,如:扬声器286,以及除了显示设备200自身携带的扬声器之外,可以输出至外接设备的发生装置的外接音响输出端子,如:外接音响接口或耳机接口等,还可以包括通信接口中的近距离通信模块,例如:用于进行蓝牙扬声器声音输出的蓝牙模块。
供电电源290,在控制器250控制下,将外部电源输入的电力为显示设备200提供电源供电支持。供电电源290可以包括安装显示设备200内部的内置电源电路,也可以是安装在显示设备200外部电源,在显示设备200中提供外接电源的电源接口。
用户接口265,用于接收用户的输入信号,然后,将接收用户输入信号发送给控制器250。用户输入信号可以是通过红外接收器接收的遥控器信号,可以通过网络通信模块接收各种用户控制信号。
在一些实施例中,用户通过控制装置100或移动终端300输入用户命令,用户输入接口则根据用户的输入,显示设备200则通过控制器250响应用户的输入。
在一些实施例中,用户可在显示器275上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
存储器260,包括存储用于驱动显示设备200的各种软件模块。如:第一存储器中存储的各种软件模块,包括:基础模块、检测模块、通信模块、显示控制模块、浏览器模块、和各种服务模块等中的至少一种。
基础模块用于显示设备200中各个硬件之间信号通信、并向上层模块发送处理和控制信号的底层软件模块。检测模块用于从各种传感器或用户输入接口中收集各种信息,并进行数模转换以及分析管理的管理模块。
例如,语音识别模块中包括语音解析模块和语音指令数据库模块。显示控制模块用于控制显示器进行显示图像内容的模块,可以用于播放多媒体图像内容和UI界面等信息。通信模块,用于与外部设备之间进行控制和数据通信的模块。浏览器模块,用于执行浏览服务器之间数据通信的模块。服务模块,用于提供各种服务以及各类应用程序在内的模块。同时,存储器260还用存储接收外部数据和用户数据、各种用户界面中各个项目的图像以及焦点对象的视觉效果图等。
图3示例性示出了根据示例性实施例中控制设备100的配置框图。如图3所示,控制设备100包括控制器110、通信接口130、用户输入/输出接口、存储器、供电电源。
控制设备100被配置为控制显示设备200,以及可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。如:用户通过操作控制设备100上频道加减键,显示设备200响应频道加减的操作。
在一些实施例中,控制设备100可是一种智能设备。如:控制设备100可根据用户需求安装控制显示设备200的各种应用。
在一些实施例中,如图1所示,移动终端300或其他智能电子设备,可在安装操控显示设备200的应用之后,可以起到控制设备100类似功能。如:用户可以通过安装应用,在移动终端300或其他智能电子设备上可提供的图形用户界面的各种功能键或虚拟按钮,以实现控制设备100实体按键的功能。
控制器110包括处理器112和RAM 113和ROM 114、通信接口130以及通信总线。控制器用于控制控制设备100的运行和操作,以及内部各部件之间通信协作以及外部和内部的数据处理功能。
通信接口130在控制器110的控制下,实现与显示设备200之间控制信号和数据信号的通信。如:将接收到的用户输入信号发送至显示设备200上。通信接口130可包括WiFi芯片131、蓝牙模块132、NFC模块133等其他近场通信模块中至少之一种。
用户输入/输出接口140,其中,输入接口包括麦克风141、触摸板142、传感器143、按键144等其他输入接口中至少一者。如:用户可以通过语音、触摸、手势、按压等动作实现用户指令输入功能,输入接口通过将接收的模拟信号转换为数字信号,以及数字信号转换为相应指令信号,发送至显示设备200。
输出接口包括将接收的用户指令发送至显示设备200的接口。在一些实施例中,可以红外接口,也可以是射频接口。如:红外信号接口时,需要将用户输入指令按照红外控制协议转化为红外控制信号,经红外发送模块进行发送至显示设备200。再如:射频信号接口时,需将用户输入指令转化为数字信号,然后按照射频控制信号调制协议进行调制后,由射频发送端子发送至显示设备200。
在一些实施例中,控制设备100包括通信接口130和输入输出接口140中至少一者。控制设备100中配置通信接口130,如:WiFi、蓝牙、NFC等模块,可将用户输入指令通过WiFi协议、或蓝牙协议、或NFC协议编码,发送至显示设备200.
存储器190,用于在控制器的控制下存储驱动和控制控制设备200的各种运行程序、数据和应用。存储器190,可以存储用户输入的各类控制信号指令。
供电电源180,用于在控制器的控制下为控制设备100各元件提供运行电力支持。可以电池及相关控制电路。
在一些实施例中,系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。
参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用程序(Applications)层(简称“应用层”),应用程序框架(Appl icat ion Framework)层(简称“框架层”),安卓运行时(Android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序、时钟程序、相机应用等;也可以是第三方开发者所开发的应用程序,比如嗨见程序、K歌程序、魔镜程序等。在具体实施时,应用程序层中的应用程序包不限于以上举例,实际还可以包括其它应用程序包,本申请实施例对此不做限制。
框架层为应用程序层的应用程序提供应用编程接口(applicat ion programminginterface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务
如图4所示,本申请实施例中应用程序框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检测当前安装在设备上的应用程序包相关的各种信息;通知管理器(NotificationManager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于:管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出(包括将显示窗口中当前显示的用户界面切换到系统桌面)、打开、后退(包括将显示窗口中当前显示的用户界面切换到当前显示的用户界面的上一级用户界面)等。
在一些实施例中,窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,触摸传感器、压力传感器等)等。
在一些实施例中,内核层还包括用于进行电源管理的电源驱动模块。
在一些实施例中,图4中的软件架构对应的软件程序和/或模块存储在图2或图3所示的第一存储器或第二存储器中。
在一些实施例中,以魔镜应用(拍照应用)为例,当遥控接收装置接收到遥控器输入操作,相应的硬件中断被发给内核层。内核层将输入操作加工成原始输入事件(包括输入操作的值,输入操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,根据焦点当前的位置识别该输入事件所对应的控件以及以该输入操作是确认操作,该确认操作所对应的控件为魔镜应用图标的控件,魔镜应用调用应用框架层的接口,启动魔镜应用,进而通过调用内核层启动摄像头驱动,实现通过摄像头捕获静态图像或视频。
在一些实施例中,对于具备触控功能的显示设备,以分屏操作为例,显示设备接收用户作用于显示屏上的输入操作(如分屏操作),内核层可以根据输入操作产生相应的输入事件,并向应用程序框架层上报该事件。由应用程序框架层的活动管理器设置与该输入操作对应的窗口模式(如多窗口模式)以及窗口位置和大小等。应用程序框架层的窗口管理根据活动管理器的设置绘制窗口,然后将绘制的窗口数据发送给内核层的显示驱动,由显示驱动在显示屏的不同显示区域显示与之对应的应用界面。
在一些实施例中,如图5中所示,应用程序层包含至少一个应用程序可以在显示器中显示对应的图标控件,如:直播电视应用程序图标控件、视频点播应用程序图标控件、媒体中心应用程序图标控件、应用程序中心图标控件、游戏应用图标控件等。
在一些实施例中,直播电视应用程序,可以通过不同的信号源提供直播电视。例如,直播电视应用程可以使用来自有线电视、无线广播、卫星服务或其他类型的直播电视服务的输入提供电视信号。以及,直播电视应用程序可在显示设备200上显示直播电视信号的视频。
在一些实施例中,视频点播应用程序,可以提供来自不同存储源的视频。不同于直播电视应用程序,视频点播提供来自某些存储源的视频显示。例如,视频点播可以来自云存储的服务器端、来自包含已存视频节目的本地硬盘储存器。
在一些实施例中,媒体中心应用程序,可以提供各种多媒体内容播放的应用程序。例如,媒体中心,可以为不同于直播电视或视频点播,用户可通过媒体中心应用程序访问各种图像或音频所提供服务。
在一些实施例中,应用程序中心,可以提供储存各种应用程序。应用程序可以是一种游戏、应用程序,或某些和计算机系统或其他设备相关但可以在智能电视中运行的其他应用程序。应用程序中心可从不同来源获得这些应用程序,将它们储存在本地储存器中,然后在显示设备200上可运行。
基于上述显示设备200,可以通过显示设备200播放多种类型的音频文件和/或视频文件。所述播放过程,是通过显示设备200内置的播放器,对音频文件和/或视频文件进行解码,再将解码后的音频信号和视频信号分别在音频输出接口280和显示器275上进行展示。例如,显示设备200内置的播放器为基于GStreamer框架的播放器。
为了更清楚的表述本申请的技术方案,在本申请实施例中播放的音频文件和视频文件统称为播放数据,播放数据可以在部分播放模式下,如没有音频输出的模式下,使用系统时钟作为主时钟,以实现音画同步的功能。
对于以系统时钟为主时钟的播放过程,涉及到多个播放参数。播放器可以按照播放参数在将播放数据转化为具体的音频、视频信号的同时,使音频和视频信号保持同步播放的关系。所涉及的播放参数主要包括:
播放起始时间(segment_start),即在一次播放中,播放数据的起始播放时间。例如,如果视频从0时刻开始播放,则segment_start为0;如果视频从30秒的时刻开始播放,segment_start为30。
播放系统时间(base_time),即在一次播放中播放器的起播时间。例如,如播放器从T1时刻起播,则basetime为T1。
时间戳(pts),即当前视频帧的显示时间戳。对于视频数据,其通常有多帧图像构成,每一帧都可以预设有一个时间戳,用于表征视频帧之间的播放时刻。例如,一个帧率为25的视频的第一帧的pts为0.04(1/25);第二帧的pts为0.08。
播放速度(rate),用于表示当前视频是否采用倍速播放,以及具体的播放倍速值。视频的播放速度默认为1,在不同的播放模式下,播放速度可以设置为不同的值。例如,在2倍速播放模式下,rate为2;0.5倍速播放模式下,rate为0.5。
运行时间(running_time),即在实际运行过程中,播放器需要多久呈现视频画面。运行时间的计算公式可以为:
running_t ime=(pts-segment_start)/rate;
式中,running_t ime为运行时间;pts为时间戳对应的时间;segment_start为播放起始时间;rate为播放速度。可见,运行时间与播放速度成反比,与当前帧时间戳与播放起始时间的差值成正比。
实际播放时间(real_time),用于表示这一帧数据应该显示的系统时间,计算公式为:
real_time=running_t ime+base_time;
式中,real_time为实际播放时间;running_time为运行时间;base_time为播放系统时间。
当前系统时间(now),即这一帧数据到达的系统时间。
相邻帧时间差(pts_j itter),连续两帧视频数据pts的差值,即:
pts_j itter=pts_cur-pts_prev;
式中,pts_j itter为相邻帧时间差;pts_cur为当前帧时间戳对应的时间;pts_prev为上一帧时间戳对应的时间。
延迟时间(delay_time),这一帧数据需要等待多长时间后再显示,即:
delay_t ime=real_time-now;
式中,delay_time为延迟时间;real_time为实际播放时间;now为当前系统时间。
如图6所示,当显示设备200在播放一个从0开始1倍速播放的帧率为25的视频文件时,播放开始时间segment_start为0,播放速度rate为1,时间戳pts为1/25=0.04,播放器在T1时刻开始播放,即播放系统时间base_time为T1。在T2时刻播放器会收到第一帧数据,即当前系统时间now为T2,通过公式计算运行时间running_t ime为0.04,实际播放时间real_t ime为T1+0.04,延迟时间delay_time为(T1+0.04)-T2。
显然,可以根据延迟时间的长短确定当前播放过程的连续性。例如,当延迟时间delay_t ime小于0时,即(T1+0.04)-T2<0,则说明当前帧在上一帧播放完之前来到播放器,通常可以丢弃不显示;当延迟时间delay_time等于0,则说明当前视频连续性较好,可以直接显示当前帧;当延迟时间delay_time大于0,则说明当前帧滞后于上一帧播放完成之后才到达播放器,需要等到T1+0.04后再进行显示。
可见,上述同步机制对于pts连续的视频,即延迟时间delay_time等于0的视频,是能够保证音视频同步播放的。但是对于pts不连续的视频,这种同步机制的兼容性会很差。例如,如果下一帧的pts增大了10s,播放器需要等待10s才会显示这一帧,此时画面会卡住10s;如果下一帧的pts减小了10s,播放器会丢弃该帧,画面会出现卡顿。
为了缓解上述卡住、卡顿的问题,本申请的部分实施例中提供一种流媒体视频音画同步方法,所述同步方法可以应用于显示设备200的视频播放过程中。其中,所述显示设备200包括显示器275、音频输出接口280以及控制器250。如图7所示,所述同步方法包括以下步骤:
S1:获取播放数据。
本申请显示设备200可以在需要播放流媒体视频时,先获取播放数据,所述播放数据包括视频数据和/或音频数据。播放数据可以根据不同的视频类型采用不同的获取方式。例如,播放数据可以是从存储器260或服务器400获取的一种完整的视频文件,也可以是从服务器400或第三方网络平台中获得的视频流。
本实施例中,获取播放数据可以在用户输入播放指令后,根据播放指令中指定的视频类型,采用相应的方式获取播放数据。其中,播放指令可以通过遥控器等控制装置100或者其他交互方式输入。例如,用户可以通过遥控器上的“上、下、左、右”以及“OK/确认键”在媒资选择界面中,选择任意一个视频资源进行播放;用户也可以通过触控交互操作,点击任一视频资源进行播放;用户还可以通过智能语音系统,输入“播放××(视频资源名称)”、“我想看××”等输入播放指令,进行播放。
需要说明的是,本实施例中播放过程可以通过显示设备200中系统内置的播放器完成,也可以通过安装在显示设备200中的第三方播放器完成。对于第三方播放器,通常需要打开指定的应用程序,例如“××视频”、“××影音”等。在打开指定的应用程序后,用户可以在具体的应用程序界面中,选择媒资数据进行播放。
S2:对所述播放数据执行解码,以获得多帧视频数据。
在获取播放数据后,显示设备200的控制器250可以对播放数据执行解码操作,将视频文件或视频流转化成能够进行信号输出的音频数据和视频数据。其中,视频数据由多帧图像构成,每一帧同样称为视频数据,因此对播放数据进行解码后,可以获得多帧视频数据。
根据视频文件或视频流所对应的视频类型不同,播放数据转化的多帧视频数据也不同。例如,对于帧率为25视频文件,其在解码操作后,可以获得每秒25帧的视频数据,并且相邻两帧之间的时间间隔为1/25,即0.04s。
由于在本申请中,所述播放数据是采用以系统时钟为主时钟的播放形式,因此,对于解码后的获得的多帧视频数据中,每一帧都包括一个时间戳。例如,在视频数据的播放开始时间为0时,第一帧视频数据的时间戳为0.04、第二帧视频数据的时间戳为0.08、第三帧视频数据的时间戳为0.12……控制器250可以在解码后,直接通过每一帧视频数据读取时间戳对应的信息,也可以对多帧视频数据的时间戳进行记录,以便进一步计算和调整播放参数。
S3:根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差。
控制器250可以在获得多帧视频数据后,在当前帧视频数据中读取时间戳信息pts_cur,再结合记录的上一帧视频数据时间戳信息pts_prev,计算当前帧时间戳对应时间与上一帧时间戳对应时间的差值,从而获得两帧视频数据之间的相邻帧时间差,即相邻帧时间差pts_j itter=pts_cur-pts_prev。
通常,对于连续的视频,其对应多帧视频数据中,每相邻两帧视频数据之间的时间差是相等的或者在合理范围内波动。例如,对于连续性较好的播放数据,相邻帧时间差pts_j itter均为0.04s。而对于连续性较差的视频,则相邻帧时间差pts_j itter在某一时刻将会出现较大的波动。例如,在某一帧视频数据对应的播放过程中,计算获得相邻帧时间差pts_j itter为10s,与上一帧视频数据对应的相邻帧时间差pts_j itter0.04s相差较大,则确定当前视频数据出现不连续的情况,需要进行调整才能够完成视频的播放。
S4:按照所述相邻帧时间差,修改当前帧视频数据的播放参数。
控制器250可以根据相邻帧时间差pts_j itter,确定当前所播放是视频是否存在不连续情况,当出现不连续情况时,则可以修改当前帧视频数据对应的播放参数,使播放过程能够适应视频中不连续的情况。其中,所述播放参数包括播放起始时间segment_start或播放系统时间base_time,所述播放起始时间为播放数据的起始时间,所述播放系统时间为播放器的起播时间。
例如,如果后一帧视频数据的时间戳pts比前一帧视频数据的pts大10s,则相应的实际播放时间real_time和延迟时间delay_time也会相应的增大10s,意味着下一帧视频数据需要等待10s才能继续播放,由此,可以将播放起始时间segment_start同步增加10s,再计算得到的实际播放时间real_t ime和延迟时间delay_time均为0,则视频能够连续播放。
由以上技术方案可知,上述实施例提供的流媒体视频音画同步方法可以在获取播放数据后,对播放数据进行解码,并计算解码后相邻两帧视频数据之间的相邻帧时间差pts_j itter,从而根据相邻帧时间差pts_j itter修改当前帧视频数据的播放参数。通过调节播放参数可以实现在当前帧与前一帧时间戳不连续时,更改播放起始时间或播放系统时间,从而保证多帧视频数据间的连续播放。
基于上述实施例,如果后一帧视频数据的pts比前一帧视频数据的pts小10s,则实际播放时间real_time和延迟时间delay_time也会相应的减小10s,该帧视频数据将被丢弃掉。此时,如果同步将播放起始时间segment_start减小10s,则播放起始时间segment_start可能会出现负值,即无法完成播放。
因此,在本申请的部分实施例中,如图8所示,按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤,还包括:
S401:计算当前帧视频数据的播放起始时间和播放系统时间;
S402:如果所述相邻帧时间差大于0,修改当前帧视频数据的播放起始时间提前所述相邻帧时间差的值;
S403:如果所述相邻帧时间差小于0,修改当前帧视频数据的播放系统时间增加调节值。
控制器250可以在获得相邻帧时间差pts_j itter后,针对相邻时间差进行判断,确定其是否为正数。并在不同情况下,对不同的播放参数进行修改。当相邻帧时间差pts_jitter大于0时,修改当前帧视频数据的播放起始时间segment_start;当相邻帧时间差pts_j itter小于0,修改当前帧视频数据的播放系统时间base_time。
同时,在计算相邻帧时间差pts_j itter后,控制器250还可以对当前帧视频数据的播放起始时间segment_start和播放系统时间base_time进行计算,以便在不同相邻帧时间差pts_j itter情况下,对相应的播放参数进行调整。
其中,在相邻帧时间差pts_j itter小于0时,为了使播放的视频能够连续,可以将播放系统时间base_time设置为特定的数据,即在原播放系统时间base_t ime的基础上,增加调节值,所述调节值为相邻帧时间差pts_j itter的绝对值与播放速度的比值,即如果后一帧视频数据的pts比前一帧视频数据的pts小10s时,可以通过将播放系统时间base_time增加10/rate的方式来保证前后两帧的实际播放时间real_time和延迟时间delay_t ime连续。
由以上技术方案可知,在上述实施例中,可以在生成相邻帧时间差pts_j itter后,对相邻时间差pts_j itter进行判断,从而确定当前视频数据的不连续情况归属于哪一种,如果相邻帧时间差pts_j itter大于0,即相邻两帧视频数据间的时间戳相差过大,播放时可能出现卡住现象,则可以通过修改播放起始时间segment_start提前相邻帧时间差pts_j itter对应的值,以便提前播放当前帧视频数据,以保证视频流畅。如果相邻帧时间差pts_j itter小于0,则当前视频数据对应的时间戳在上一帧视频数据对应的时间戳之前,容易出现卡顿问题,因此可以修改播放系统时间base_time增加调节值,以代替舍弃当前帧视频数据的方式,保证视频的流畅性。
由于在实际应用中,针对不同片源的流媒体视频数据,其在生成、传输、解码等过程中都存在一定的波动,造成相邻帧视频数据之间的相邻帧时间差pts_j itter发生变化。一般在相邻帧时间差pts_j itter的变化程度较小时,用户的感知效果并不强,不会影响到视频观看体验。为此,在一些实施例中,如图9所示,根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差的步骤还包括:
S301:提取当前帧视频数据的时间戳和前一帧视频数据的时间戳;
S302:通过当前帧视频数据的时间戳减前一帧视频数据的时间戳,获得相邻帧时间差;
S303:如果所述相邻帧时间差的绝对值大于预设判断阈值,则执行按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤;
S304:如果所述相邻帧时间差的绝对值小于或等于预设判断阈值,则控制输出当前帧视频数据。
在解析出当前帧视频数据后,控制器250可以对当前帧视频数据和前一帧视频数据中的时间戳信息进行提取。由于为了后续判断相邻帧时间差是否为正数,因此在计算相邻帧时间差pts_j itter时,需要用当前帧视频数据的时间戳pts_cur减前一帧视频数据的时间戳pts_prev,即相邻帧时间差pts_j itter=pts_cur-pts_prev。
在计算相邻帧时间差以后,可以先求解相邻帧时间差的绝对值,并通过判断相邻帧时间差的绝对值是否在合理的范围内,以确定是否需要对播放参数进行修改。如果相邻帧时间差的绝对值大于预设判断阈值,则相邻帧视频数据的时间差超出了波动范围,需要对播放参数进行调整才能够保证视频的流畅播放,因此可以执行按照相邻帧时间差,修改当前帧视频数据的播放参数的步骤。如果相邻帧时间差的绝对值小于或等于预设判断阈值,即相邻帧视频数据的时间差在合理的波动范围以内,因此可以直接控制输出当前帧视频数据,即能够保证视频播放的流畅性。
可见,在本实施例中,每解码一帧视频数据,都会将当前帧的pts与前一帧的pts做差值,如果差值的绝对值小于阈值,则直接将帧数据送往显示模块进行显示。如果差值的绝对值大于阈值,则确定此时的相邻帧视频数据的pts不连续,需要先根据差值的正负来更新segment_start或base_time,再将该帧视频数据下发,以完成显示。
进一步地,在部分实施例中,每次成功下发视频数据后,还需要更新上一帧视频数据的pts值,以便后续帧数据解码后执行相同的判断过程。即按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤或控制输出当前帧视频数据的步骤中,还包括:控制所述显示器275和/或音频输出接口280输出当前帧视频数据;以及更新上一帧视频数据的时间戳等于当前帧视频数据的时间戳。
在一些实施例中,如图10所示,按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤后,所述方法还包括:
S501:提取修改后的播放参数;
S502:使用修改后的播放参数,计算当前帧视频数据的实际播放时间;
S503:在所述实际播放时间控制所述显示器和/或音频输出接口输出当前帧视频数据。
在修改播放参数后,控制器250可以提取修改后的播放参数,再使用修改后的播放参数计算当前帧视频数据的实际播放时间,并在到达实际播放时间时,控制显示器275和/或音频输出接口280对当前帧视频数据进行输出,最终将视频数据转化为具体的视频或音频信号。为了将视频数据转化为具体的视频或音频信号,显示设备200可以通过内置的显示模块将每一帧视频数据转化为具体的像素值,并且通过显示器275将像素值呈现出来。同理,音频数据可以经过音频处理模块处理后,由音频输出接口280输出至扬声器或其他音频输出装置,以呈现声音信号。
其中,所述实际播放时间按照下式计算获得:
real_time=(pts-segment_start)/rate+base_t ime;
式中,real_t ime为实际播放时间;pts为当前帧视频数据的时间戳;segment_start为修改后的播放起始时间;rate为播放速度;base_time为修改后的播放系统时间。通过上述公式,可以在按照修改后的播放参数确定播放时间,以便在确定的时刻在显示器275上显示当前帧视频数据同时在音频输出接口280中输出音频信号,保证音画同步。
在一些实施例中,为了完成视频播放任务,控制器250还需要对其他播放参数进行重新计算。由于在部分情况下相邻帧时间差存在一定波动,并且这种波动不会对视频播放过程的流畅性造成较大影响,但为了能够继续播放视频,如图10所示,在计算实际播放时间后,所述方法还包括:
S504:提取当前系统时间;
S505:根据所述当前系统时间和所述实际播放时间,计算延迟播放时间;
S506:如果所述延迟播放时间等于0,直接输出当前帧视频数据;
S507:如果所述延迟播放时间大于0,等待所述延迟播放时间后输出当前帧视频数据。
在计算实际播放时间后,控制器250还可以对当前的系统时间now进行提取,并通过当前系统时间now和实际播放时间real_time进行计算,获得延迟播放时间delay_t ime。显然,所述延迟播放时间按照下式计算获得:
delay_t ime=real_time-now;
式中,delay_time为延迟播放时间;real_time为实际播放时间;now为当前系统时间。
计算延迟播放时间delay_t ime后,还可以对延迟播放时间delay_time进行判断,如果延迟播放时间delay_time等于0,即当前系统时间now就是实际播放时间real_t ime,则可以直接输出当前帧视频数据,从而在显示器275和/或音频输出接口280中输出当前帧视频数据。如果延迟播放时间delay_time大于0,即当前系统时间now还未到达实际播放时间real_time,因此可以等待延迟播放时间delay_time后,再输出当前帧视频数据。
由以上技术方案可知,为了能够完成对视频数据的播放,在修改播放参数后,控制器250可以按照正常的流媒体播放过程对实际播放时间和延迟播放时间进行计算,从而使播放器能够按照修改以后的播放参数逐帧进行播放。由于上述播放方式可以兼容相邻帧连续的视频源,因此可以在视频连续或不连续时都能够按照相同的方式输出视频数据,大大提高方法的兼容性。
基于上述流媒体视频音画同步方法,本申请的部分实施例中还提供一种显示设备200,包括:显示器275、音频输出接口280以及控制器250。其中,显示器275被配置为显示播放数据中的视频画面;音频数据接口280被配置为输出播放数据中的音频信号;所述控制器250被配置为执行以下程序步骤:
S1:获取播放数据,所述播放数据包括视频数据和/或音频数据;
S2:对所述播放数据执行解码,以获得多帧视频数据;
S3:根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差;
S4:按照所述相邻帧时间差,修改当前帧视频数据的播放参数,所述播放参数包括播放起始时间或播放系统时间,所述播放起始时间为播放数据的播放起始时间,所述播放系统时间为播放器的起播时间。
由以上技术方案可知,上述实施例中提供的显示设备200可以通过控制器250执行上述流媒体视频音画同步方法,以实现流媒体视频播放中,实现基于系统时钟为主时钟的播放模式。控制器250可以在获取播放数据后,对播放数据执行解码,从而获得多帧视频数据。再计算前帧视频数据与前一帧视频数据的相邻帧时间差,从而根据计算的相邻帧时间差,修改当前帧视频数据的播放参数,缓解视频在相邻帧时间戳不连续时的卡住和卡顿现象,保证视频的流畅性。
在一些实施例中,所述控制器250还可以进一步划分成多个模块,包括解码模块和显示模块。其中,所述解码模块被配置为执行获取播放数据,对播放数据执行解码,以获得多帧视频数据以及根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差的步骤;所述显示模块被配置为执行按照相邻帧时间差,修改当前帧视频数据的播放参数的步骤。
本实施例中,解码模块可以负责将音视频压缩数据进行解码并发送到显示模块。而显示模块则可以根据音视频同步策略决定是否显示、何时显示。具体的,如图11所示,解码模块每收到一帧视频数据后,都会将当前帧视频数据的pts与前一帧视频数据的pts做差值计算。如果差值的绝对值小于阈值,则直接将帧数据送往显示模块;如果差值的绝对值大于阈值,此时确定当前相邻两帧的pts不连续,需要先根据差值的正负来通知显示模块更新segment_start或base_time,再将该帧数据下发给显示模块。
同时,如图12所示,显示模块每收到一帧从解码模块发送来的视频数据,都会先判断是否需要更新segment_start或base_time的值,如果需要更新,则segment_start或base_t ime的值进行修改,并使用更新后的值计算当前帧的real_t ime,保证real_time连续,进而保证视频连续播放。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (10)
1.一种显示设备,其特征在于,包括:
显示器;
音频输出接口;
控制器,被配置为:
获取播放数据,所述播放数据包括视频数据和/或音频数据;
对所述播放数据执行解码,以获得多帧视频数据;
根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差;
按照所述相邻帧时间差,修改当前帧视频数据的播放参数,所述播放参数包括播放起始时间或播放系统时间,所述播放起始时间为播放数据的播放起始时间,所述播放系统时间为播放器的起播时间。
2.根据权利要求1所述的显示设备,其特征在于,根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差的步骤中,所述控制器被进一步配置为:
提取当前帧视频数据的时间戳和前一帧视频数据的时间戳;
通过当前帧视频数据的时间戳减前一帧视频数据的时间戳,获得相邻帧时间差;
如果所述相邻帧时间差的绝对值大于预设判断阈值,则执行按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤;
如果所述相邻帧时间差的绝对值小于或等于预设判断阈值,则控制输出当前帧视频数据。
3.根据权利要求2所述的显示设备,其特征在于,如果所述相邻帧时间差的绝对值大于预设判断阈值,所述控制器被进一步配置为:
计算当前帧视频数据的播放起始时间和播放系统时间;
如果所述相邻帧时间差大于0,修改当前帧视频数据的播放起始时间提前所述相邻帧时间差的值;
如果所述相邻帧时间差小于0,修改当前帧视频数据的播放系统时间增加调节值,所述调节值为相邻帧时间差的绝对值与播放速度的比值。
4.根据权利要求1所述的显示设备,其特征在于,所述控制器被进一步配置为:
控制所述显示器和/或音频输出接口输出当前帧视频数据;
更新上一帧视频数据的时间戳等于当前帧视频数据的时间戳。
5.根据权利要求4所述的显示设备,其特征在于,所述控制器被进一步配置为:
提取修改后的播放参数;
使用修改后的播放参数,计算当前帧视频数据的实际播放时间;
在所述实际播放时间控制所述显示器和/或音频输出接口输出当前帧视频数据。
6.根据权利要求5所述的显示设备,其特征在于,所述实际播放时间按照下式计算获得:
real_time=(pts-segment_start)/rate+base_time;
式中,real_time为实际播放时间;pts为当前帧视频数据的时间戳;segment_start为播放起始时间;rate为播放速度;base_time为播放系统时间。
7.根据权利要求5所述的显示设备,其特征在于,所述控制器被进一步配置为:
提取当前系统时间;
根据所述当前系统时间和所述实际播放时间,计算延迟播放时间;
如果所述延迟播放时间等于0,直接输出当前帧视频数据;
如果所述延迟播放时间大于0,等待所述延迟播放时间后输出当前帧视频数据。
8.根据权利要求7所述的显示设备,其特征在于,所述延迟播放时间按照下式计算获得:
delay_time=real_time-now;
式中,delay_time为延迟播放时间;real_time为实际播放时间;now为当前系统时间。
9.根据权利要求1所述的显示设备,其特征在于,所述控制器中包括解码模块和显示模块;其中,
所述解码模块被配置为执行获取播放数据,对所述播放数据执行解码,以获得多帧视频数据以及根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差的步骤;
所述示模块被配置为执行按照所述相邻帧时间差,修改当前帧视频数据的播放参数的步骤。
10.一种流媒体视频音画同步方法,其特征在于,应用于显示设备,所述显示设备包括显示器、音频输出接口以及控制器;所述方法包括:
获取播放数据,所述播放数据包括视频数据和/或音频数据;
对所述播放数据执行解码,以获得多帧视频数据;
根据当前帧视频数据与前一帧视频数据的时间戳,计算相邻帧时间差;
按照所述相邻帧时间差,修改当前帧视频数据的播放参数,所述播放参数包括播放起始时间或播放系统时间,所述播放起始时间为播放数据的起始时间,所述播放系统时间为播放器的起播时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035305.8A CN112153446B (zh) | 2020-09-27 | 2020-09-27 | 一种显示设备及流媒体视频音画同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035305.8A CN112153446B (zh) | 2020-09-27 | 2020-09-27 | 一种显示设备及流媒体视频音画同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112153446A true CN112153446A (zh) | 2020-12-29 |
CN112153446B CN112153446B (zh) | 2022-07-26 |
Family
ID=73895652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035305.8A Active CN112153446B (zh) | 2020-09-27 | 2020-09-27 | 一种显示设备及流媒体视频音画同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112153446B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954376A (zh) * | 2021-02-04 | 2021-06-11 | 海信电子科技(武汉)有限公司 | 一种视频播放方法及显示设备 |
CN113038193A (zh) * | 2021-03-24 | 2021-06-25 | Vidaa美国公司 | 一种自动修复音视频不同步的方法及显示设备 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
CN114257857A (zh) * | 2022-01-04 | 2022-03-29 | 海信视像科技股份有限公司 | 显示设备及视频倍速播放方法 |
CN114979681A (zh) * | 2022-04-11 | 2022-08-30 | 上海哔哩哔哩科技有限公司 | 流媒体数据的时间戳更新方法及装置 |
WO2024021999A1 (zh) * | 2022-07-26 | 2024-02-01 | 华为技术有限公司 | 同步方法、系统及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262776B1 (en) * | 1996-12-13 | 2001-07-17 | Microsoft Corporation | System and method for maintaining synchronization between audio and video |
US20050021811A1 (en) * | 2002-12-20 | 2005-01-27 | Stmicroelectronics Sa | Process and device for synchronizing presentation of audio and/or video frames |
US20120155833A1 (en) * | 2010-12-20 | 2012-06-21 | General Instrument Corporation | Method of Processing a Sequence of Coded Video Frames |
US20160065889A1 (en) * | 2014-08-27 | 2016-03-03 | Clearone Communications Hong Kong Ltd. | Control mechanism for video output |
WO2018120557A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳市中兴微电子技术有限公司 | 一种音视频同步处理的方法和装置、存储介质 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
-
2020
- 2020-09-27 CN CN202011035305.8A patent/CN112153446B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262776B1 (en) * | 1996-12-13 | 2001-07-17 | Microsoft Corporation | System and method for maintaining synchronization between audio and video |
US20050021811A1 (en) * | 2002-12-20 | 2005-01-27 | Stmicroelectronics Sa | Process and device for synchronizing presentation of audio and/or video frames |
US20120155833A1 (en) * | 2010-12-20 | 2012-06-21 | General Instrument Corporation | Method of Processing a Sequence of Coded Video Frames |
US20160065889A1 (en) * | 2014-08-27 | 2016-03-03 | Clearone Communications Hong Kong Ltd. | Control mechanism for video output |
WO2018120557A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳市中兴微电子技术有限公司 | 一种音视频同步处理的方法和装置、存储介质 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954376A (zh) * | 2021-02-04 | 2021-06-11 | 海信电子科技(武汉)有限公司 | 一种视频播放方法及显示设备 |
CN113038193A (zh) * | 2021-03-24 | 2021-06-25 | Vidaa美国公司 | 一种自动修复音视频不同步的方法及显示设备 |
CN113038193B (zh) * | 2021-03-24 | 2023-08-11 | Vidaa美国公司 | 一种自动修复音视频不同步的方法及显示设备 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
CN113473229B (zh) * | 2021-06-25 | 2022-04-12 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
CN114257857A (zh) * | 2022-01-04 | 2022-03-29 | 海信视像科技股份有限公司 | 显示设备及视频倍速播放方法 |
CN114257857B (zh) * | 2022-01-04 | 2024-05-24 | 海信视像科技股份有限公司 | 显示设备及视频倍速播放方法 |
CN114979681A (zh) * | 2022-04-11 | 2022-08-30 | 上海哔哩哔哩科技有限公司 | 流媒体数据的时间戳更新方法及装置 |
WO2024021999A1 (zh) * | 2022-07-26 | 2024-02-01 | 华为技术有限公司 | 同步方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112153446B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112153446B (zh) | 一种显示设备及流媒体视频音画同步方法 | |
CN111669636B (zh) | 一种音画同步的视频录制方法及显示设备 | |
CN112153447B (zh) | 一种显示设备及音画同步控制方法 | |
CN111901654A (zh) | 一种显示设备及屏幕录制方法 | |
CN112019782B (zh) | 增强型音频回传通道的控制方法及显示设备 | |
CN112118400B (zh) | 显示设备上图像的显示方法及显示设备 | |
CN112214189A (zh) | 图像显示方法及显示设备 | |
CN112188279A (zh) | 一种频道切换方法和显示设备 | |
CN113438539A (zh) | 一种数字电视节目录制方法及显示设备 | |
CN112243141B (zh) | 投屏功能的显示方法及显示设备 | |
CN111836104B (zh) | 显示设备及显示方法 | |
CN112203154A (zh) | 一种显示设备 | |
CN112399217B (zh) | 显示设备及与功放设备建立通信连接的方法 | |
CN111954043B (zh) | 一种信息栏显示方法及显示设备 | |
CN112055245B (zh) | 一种彩色字幕实现方法及显示设备 | |
CN114095769B (zh) | 一种应用级播放器的直播低延迟处理方法及显示设备 | |
CN111866498B (zh) | 一种摄像头异常处理方法及显示设备 | |
CN112214190A (zh) | 显示设备资源播放方法及显示设备 | |
CN112118476B (zh) | 一种快速显示节目预约图标的方法及显示设备 | |
CN112218156B (zh) | 一种调节视频动态对比度的方法及显示设备 | |
CN114302197A (zh) | 一种语音分离控制方法及显示设备 | |
CN111918056A (zh) | 一种摄像头状态检测方法及显示设备 | |
CN112153443B (zh) | Pts获取方法和显示设备 | |
CN113436564B (zh) | 一种epos的展示方法及显示设备 | |
CN113194355B (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 |