掌桥专利:专业的专利平台
掌桥专利
首页

一种显示设备及音画同步方法

文献发布时间:2024-04-29 00:47:01


一种显示设备及音画同步方法

技术领域

本发明涉及显示设备技术领域,尤其涉及一种显示设备及音画同步方法。

背景技术

在制作音视频内容时,需要同时采集音频和视频数据。这些数据会以流的形式传输,并且在需要播放时进行解码和同步播放。在采集音频和视频数据时,需要将对应的时间戳(PTS)添加到采集的数据中。视频数据和音频数据的播放顺序均由各自的时间戳确定。其中,视频数据的时间戳表示其在显示器中的显示时刻。音频数据的时间戳表示其在扬声器中的播放时刻。

播放器会根据视频数据的时间戳和音频数据的时间戳,来实现同步播放音频数据和视频数据,即实现音画同步。如果当前需要播放的视频数据和音频数据的时间戳相近,确定音画同步,否则需要通过调整播放速度、跳过某些帧等方式来保证音画同步。实际应用中,通常是以音频数据的时间戳作为时钟来校准视频数据的时间戳,以使实现音画同步。

但是,在以音频数据的时间戳作为时钟来实现音画同步的前提条件为音频数据正常播放,如果音频数据的时间戳发生跳变,再以音频数据的时间戳作为时钟来校准视频数据的时间戳时,则无法实现音画同步。

发明内容

本申请提供一种显示设备及音画同步方法,解决如果音频数据播放不正常,例如音频数据的时间戳发生跳变,或者音频解码失败,再以音频数据的时间戳作为时钟来校准视频数据的时间戳时,则无法实现音画同步的问题。

第一方面,本申请一些实施例提供一种显示设备,包括:

显示器,被配置为播放视频数据,其中,视频数据具有原始视频时间戳,原始视频时间戳为采集视频数据时记录的时间戳;

扬声器,被配置为播放音频数据,其中,音频数据具有原始音频时间戳和时间间隔,原始音频时间戳为采集音频数据时记录的时间戳,所述时间间隔为根据音频数据的大小计算得到的相邻两帧音频数据的音频时间戳之间的差值;

控制器,被配置为:

如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,将所述当前帧音频数据的计算音频时间戳重置为所述第一原始音频时间戳,其中,所述当前帧音频数据的计算音频时间戳为根据所述当前帧音频数据的上一帧音频数据对应的计算音频时间戳和所述时间间隔计算得到的时间戳,所述第二原始音频时间戳为所述当前帧音频数据的上一帧音频数据的原始音频时间戳;

基于当前帧视频数据的原始视频时间戳和所述第一原始音频时间戳的大小关系,确定所述当前帧视频数据的播放结果,其中,在确定所述当前帧视频数据的播放结果的过程中,所述当前帧音频数据持续播放。

第二方面,本申请一些实施例提供一种音画同步方法,所述显示设备包括显示器,被配置为播放视频数据,其中,视频数据具有原始视频时间戳,原始视频时间戳为采集视频数据时记录的时间戳;扬声器,被配置为播放音频数据,其中,音频数据具有原始音频时间戳和时间间隔,原始音频时间戳为采集音频数据时记录的时间戳,所述时间间隔为根据音频数据的大小计算得到的相邻两帧音频数据的音频时间戳之间的差值,所述音画同步方法包括:

如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,将所述当前帧音频数据的计算音频时间戳重置为所述第一原始音频时间戳,其中,所述当前帧音频数据的计算音频时间戳为根据所述当前帧音频数据的上一帧音频数据对应的计算音频时间戳和所述时间间隔计算得到的时间戳,所述第二原始音频时间戳为所述当前帧音频数据的上一帧音频数据的原始音频时间戳;

基于当前帧视频数据的原始视频时间戳和所述第一原始音频时间戳的大小关系,确定所述当前帧视频数据的播放结果,其中,在确定所述当前帧视频数据的播放结果的过程中,所述当前帧音频数据持续播放。

由以上技术方案可知,上述实施例提供的显示设备及音画同步方法,显示设备包括显示器、扬声器以及控制器,显示器用于播放视频数据,视频数据具有原始视频时间戳,扬声器用于播放音频数据,音频数据具有原始音频时间戳和时间间隔,时间间隔为根据音频数据的大小计算得到的相邻两帧音频数据的音频时间戳之间的差值。音频数据持续播放过程中,第二原始音频时间戳为所述当前帧音频数据的上一帧音频数据的原始音频时间戳,如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,则判断音频数据发生时间戳跳变。将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳,当前帧音频数据的计算音频时间戳为根据当前帧音频数据的上一帧音频数据对应的计算音频时间戳和时间间隔计算得到的时间戳。最后基于当前帧视频数据的原始视频时间戳和第一原始音频时间戳的大小关系,确定当前帧视频数据的播放结果。这样,即使音频数据的时间戳,可以对发生跳变的音频时间戳进行重置,然后以重置后的音频时间戳作为时钟来校准视频数据的时间戳,从而实现音画同步。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的显示设备与控制设备之间操作场景的示意图;

图2为本申请实施例提供的控制装置100的硬件配置框图;

图3为本申请实施例提供的显示设备200的硬件配置框图;

图4为本申请实施例提供的显示设备200中软件配置图;

图5为本申请一些实施例提供的显示设备200用户界面示意图;

图6为本申请一些实施例提供的又一种显示设备200用户界面示意图;

图7为本申请一些实施例提供的显示设备的播放器配置图;

图8为本申请一些实施例提供的显示设备200执行音画同步方法流程示意图;

图9为本申请一些实施例提供的基于音频时间戳音画同步原理示意图;

图10为本申请一些实施例提供的又一种基于音频时间戳音画同步原理示意图;

图11为本申请一些实施例提供的又一种基于音频时间戳音画同步原理示意图;

图12为本申请一些实施例提供的又一种基于音频时间戳音画同步原理示意图;

图13为本申请一些实施例提供的又一种基于音频时间戳音画同步原理示意图;

图14为本申请一些实施例提供的又一种基于音频时间戳音画同步原理示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例及相应的附图对本申请示例性实施方式进行清楚、完整地描述。显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。

需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请一些实施例的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。

本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应所述理解这样使用的用语在适当情况下可以互换。

术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。

本申请实施方式提供的显示设备可以具有多种实施形式,例如,可以是电视、智能电视、激光投影设备、显示器(monitor)、电子白板(electronic bulletin board)、电子桌面(electronic table)等。

图1和图3为本申请的显示设备的一种具体实施方式。

图1为本申请示例性实施例中显示设备与控制设备之间操作场景的示意图。如图1中示出,用户可通过移动终端300和控制设备100操作显示设备200。

在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。

在一些实施例中,也可以使用智能设备300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。

在一些实施例中,显示设备可以不使用上述的智能设备或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。

在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。

在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。

图2示例性示出了根据示例性实施例中控制装置100的硬件配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。如图3,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、处理器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。

在一些实施例中处理器包括视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自处理器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面。显示器260可为液晶显示器、OLED显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。

通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与外部控制设备100或服务器400建立控制信号和数据信号的发送和接收。

用户接口,可用于接收控制装置100(如:红外遥控器等)的控制信号。

检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。

外部装置接口240可以包括但不限于如下:高清晰度多媒体接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。

调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。

在一些实施例中,处理器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在处理器250所在的主体设备的外置设备中,如外置机顶盒等。

处理器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。处理器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,处理器250便可以执行与由用户命令选择的对象有关的操作。

在一些实施例中处理器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM(RandomAccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。

用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。

“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。

如图4所示,将显示设备的系统分为三层,从上至下分别为应用层、中间件层和硬件层。

应用层主要包含电视上的常用应用,以及应用框架(Application Framework),其中,常用应用主要是基于浏览器Browser开发的应用,例如:HTML5 APPs;以及原生应用(Native APPs)。

应用框架(Application Framework)是一个完整的程序模型,具备标准应用软件所需的一切基本功能,例如:文件存取、资料交换...,以及这些功能的使用接口(工具栏、状态列、菜单、对话框)。

原生应用(Native APPs)可以支持在线或离线,消息推送或本地资源访问。

中间件层包括各种电视协议、多媒体协议以及系统组件等中间件。中间件可以使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

硬件层主要包括HAL接口、硬件以及驱动,其中,HAL接口为所有电视芯片对接的统一接口,具体逻辑由各个芯片来实现。驱动主要包含:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。

用户可以利用显示设备200来观看网络中各种媒资资源。显示设备可以在网络中下载相应的媒资数据,并分离出相应的视频数据和音频数据。通过在显示器中显示视频数据,并通过扬声器播放音频数据,从而实现媒资的播放,以供用户观看。但是在播放媒资的过程中,图像数据的处理时间一般会比音频数据的处理时间长,导致视频播放会落后于音频,造成音画不同步的现象。因此,显示设备具有音画同步功能,将视频数据和音频数据同步播放,以提高用户的体验性。

例如,当用户控制显示设备200开机后,控制器可以控制显示器显示用户界面。图5示出了一些实施例中用户界面的示意图。如图5所示,用户界面包括导航栏500、功能栏510和内容显示区520等区域,功能栏510包括多个功能控件如“历史”、“收藏”和“我的应用”等。其中,内容显示区520中显示的内容会随导航栏500中被选中控件的变化而变化。在应用面板页面时,用户可以通过点击“我的应用”控件,以输入针对应用面板页面的显示指令,来触发进入对应的应用面板。需要说明的是,用户也可以通过其他方式来输入对功能控件的选中操作,以触发进入应用面板。例如,利用语音控制功能或者搜索功能等,控制进入到应用面板页面。

用户可以选择导航栏500中某个控件,从而控制显示设备进入相应类别下的界面中,以观看网络媒资。例如,用户可以直接选择“电视剧”入口选项,通过控制装置或终端设备控制焦点光标移动至选中的“电视剧”入口选项,从而触发显示设备显示“电视剧界面”。

对于图5所示的用户界面,用户可以选择“我的应用”控件,从而触发显示设备显示出应用面板。用户可以通过应用面板查看到显示设备已经安装的应用程序,即显示设备所支持的功能。图6示出了一些实施例中应用面板的示意图。如图6所示,应用面板中包括“网络媒资”、“有线电视”以及“视频聊天”三个控件。其中,用户通过触控“网络媒资”控件,可以通过显示设备观看媒资。此时,控制器可以控制显示设备打开播放器。用户可以在播放器中选择某个媒资从而进行观看。

图7示出了一些实施例中显示设备的播放器配置图。如图7所示,播放器可以包括网络协议解析及下载模块、解复用模块、解码模块和输出模块。其中,网络协议解析及下载模块可以确定出显示设备和服务器之间的传输协议,从而在服务器中下载媒资数据。解复用模块可以对下载的媒资数据进行解复用,得到媒资数据中包含的视频数据(video)和音频数据(audio),还可以包含字幕数据等。解码模块包括音频解码单元和视频解码单元。其中,音频解码单元用于对音频数据解码,视频解码单元用于对视频数据解码。输出模块中包括音频输出单元和视频输出单元。音频输出单元将解码后的音频数据传输到音频设备进行播放,视频输出单元将解码后的视频数据传输到显示器进行显示。

当用户选择某个具体的媒资并控制显示设备进行播放时,则认为用户向显示设备发送了媒资播放指令。响应于该媒资播放指令,显示设备可以确定用户选择的目标媒资,并开始获取目标媒资的媒资数据,以便能够实时播放目标媒资。控制器可以是实时获取媒资数据。具体的,显示设备中的网络协议解析及下载模块,用于解析网络协议并下载媒资数据,可以是目标媒资的码流数据。媒资数据可以是流媒体数据,流媒体技术是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。

控制器可以控制网络协议解析及下载模块与提供目标媒资的服务器进行通信连接。网络协议解析及下载模块可以确定双方之间的网络传输协议,从而根据该网络向服务器发送媒资获取请求。网络传输协议可以是RTP协议(Real-time Transport Protocol,实时传输协议),RTP可以承载TS数据流,保证数据高效、实时传输,因此广泛应用于流媒体相关的电话、视频会议、电视、一键通等通讯和娱乐业务中。RTP说明了在互联网上传递音频和视频的标准数据包格式,即本申请中的RTP数据包的格式。

在确定了网络传输协议后,网络协议解析及下载模块可以向服务器发出RTSP(Real Time Stresming Protocol,实时流协议)请求,以获取媒资数据。RTSP用来控制实时数据的发送,RTSP可控制多个数据发送会话。在RTSP会话期间,可打开或关闭多个对服务器的可靠传输连接,以发出RTSP请求。

服务器在接收到RTSP请求后,可以先确定目标媒资,再生成目标媒资的媒资数据。具体的,由于媒资数据一般包括视频数据和音频数据,服务器可以将音频数据和视频数据进行复合处理,得到相应的媒资数据。可以是复合成TS(Transport Stresm,传输流)数据流,然后加上RTP协议头从而得到RTP包形式的媒资数据。此时,网络协议解析及下载模块和服务器之间已经建立了RSTP会话,通过该会话,服务器可以按照一定的速率将RTP包形式的媒资数据发送给网络协议解析及下载模块。显示设备可以根据该媒资数据播放目标媒资。

网络协议解析及下载模块中可以预先设置有一块存储区域。在获取到媒资数据后,可以将媒资数据先存储到该预设的存储区域中,以便后续处理。

获取的媒资数据中融合了视频数据和音频数据,为了能够正常播放目标媒资,需要将两种数据区分开进行处理。控制器可以基于媒资数据获取视频数据以及音频数据,可以是对媒资数据进行解复用处理,从而得到两种数据。

显示设备中可以设置解复用模块,可以对媒资数据解复用,控制器可以控制网络协议解析及下载模块将媒资数据发送至解复用模块,具体可以将存储区域的媒资数据发送至解复用模块。控制器可以控制解复用模块对媒资数据进行解复用处理,将媒资数据解封装从而得到视频数据和音频数据,还可以包括字幕数据等。在获取到视频数据和音频数据后,可以分别对两种数据进行解码处理,从而得到显示设备能够呈现给用户的解码数据,显示设备进一步可以直接播放两种解码数据。需要说明的是,由于媒资码流数据进行解复用的速度和音视频数据进行解码的速度一般是不能完全匹配的,导致两个过程不能实时的连贯进行。因此,在对媒资数据进行解复用处理后,可以将得到的视频数据和音频数据先进行存储,从而保证后续可以连贯的进行解码处理。

具体的,可以预先设置有视频缓存区域和音频缓存区域,分别用于存储视频数据和音频数据。显示设备可以单独设置一个缓存模块,该缓存模块具有一定的存储空间,其中设置有视频缓存区域和音频缓存区域。缓存模块也可以直接设置在网络协议解析及下载模块的的存储区域中,本申请实施例不做限定。

在对视频数据和音频数据进行解码后,控制器还可以对两种数据进行渲染,并控制输出模块将渲染后的视频数据输出至显示器,将渲染后的音频数据输出至音频设备。

显示设备可以通过显示器显示画面,即显示渲染后的视频数据。显示设备还可以设置有音频输出接口,用于连接音频设备,可以为显示设备外接的蓝牙音箱、USB音箱等。外接的音频设备可以播放声音,即播放渲染后的音频数据。显示设备也可以内置有扬声器或音箱等音频设备。对于内置的音频设备,或者外接的音频设备,均可以用来播放渲染后的音频数据,本申请实施例中对音频设备不做限定。

显示设备还设置有音画同步功能。当用户感觉显示设备播放的画面和声音不同步时,可以向显示设备发送音画同步指令。显示设备可以进入音画同步模式,从而对视频数据和音频数据进行音画同步处理。

视频数据/音频数据的播放顺序可以由时间戳来确定。时间戳可以是数据本身携带有的参数信息,用于表征播放时间。每个数据都会具有一个时间戳。以视频数据为例,时间戳即为当前帧视频数据的显示时间戳,表示在显示器中的显示时刻。时间戳越小,表示该帧视频数据的播放时间越靠前,其播放顺序越靠前。时间戳越大,表示该帧视频数据的播放时间越靠后,其播放顺序越靠后。在下载媒资数据时,通常是按照时间戳由小到大的顺序下载,以便按照时间顺序正常播放,因此,数据下载的顺序即可表征播放顺序。

解码后的视频数据和音频数据可以分别存储在缓存队列中,可以按照时间戳从小到大的顺序,分别将两种数据输入到音画同步模块。为了保证音画同步的准确性,可以令音画同步模块中在同一时间只存在一帧视频数据和一帧音频数据。即检测到音画同步模块中还存在有一帧视频数据时,不会将缓存队列中视频数据继续输入到音画同步模块,等到该帧视频数据离开音画同步模块时,例如开始进行渲染并播放过程时,可以将缓存队列中时间戳最小的视频数据输入到音画同步模块。

在进行音画同步时,可以将未播放的视频数据和音频数据进行对比,确定时间戳和音频数据时间戳相近的目标视频数据,并将目标视频数据之前的所有视频数据删除,从而保证两种数据的同步。以音频数据的时间戳为基准,校准视频数据的时间戳。但是,在以音频数据的时间戳作为时钟来实现音画同步的前提条件为音频数据正常播放,如果音频数据的时间戳发生跳变,再以音频数据的时间戳作为时钟来校准视频数据的时间戳时,则无法实现音画同步。

鉴于上述问题,本申请部分实施例提供一种显示设备,本申请的显示设备包括显示器、扬声器以及控制器,其中,显示器被配置为播放视频数据,视频数据具有原始视频时间戳(以下标识为PTSvedio),扬声器被配置为播放音频数据,音频数据具有原始音频时间戳(以下标识为PTSaudio)和时间间隔(以下标识为Duration),所述时间间隔为根据音频数据的大小计算得到的相邻两帧音频数据的音频时间戳之间的差值。原始视频时间戳为采集视频数据时记录的时间戳,原始音频时间戳为采集音频数据时记录的时间戳。

在音频数据中,一帧音频数据的持续时间(即时间间隔Duration)和数据长度(Datasize)之间的关系取决于采样率和数据格式,也就是说对于PCM(Pulse CodeModulation,脉冲编码调制)文件,一帧音频数据的持续时间可以利用数据长度、采样率、数据格式等计算得到。时间间隔的计算公式如下:

Duration=DataSize/channelCount*byteCount*sampleRate;

其中,channelCount表示音频数据的声道数量,byteCount表示音频数据的存储位深,sampleRate表示音频数据的采样率。

为了便于对本申请一些实施例中技术方案的理解,下面结合一些具体实施例和附图对各个步骤进行详细说明。图8为本申请一些实施例提供的显示设备200执行音画同步方法流程示意图。如图8所示,本申请实施例提供的显示设备200执行的音画同步方法包括以下步骤:

步骤S801,如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,将所述当前帧音频数据的计算音频时间戳重置为所述第一原始音频时间戳;

步骤S802,基于当前帧视频数据的原始视频时间戳和所述第一原始音频时间戳的大小关系,确定所述当前帧视频数据的播放结果,其中,在确定所述当前帧视频数据的播放结果的过程中,所述当前帧音频数据持续播放。

本申请是以音频数据的时间戳为基准校准视频数据的时间戳,即以音频数据的时间戳和视频数据的时间戳确定是否播放视频数据,因此音频数据为持续播放的状态,也就是说将缓存队列中的音频数据持续输入到音画同步模块,而是否将缓存列表中的视频数据输入的音画同步模块需要根据本申请的方法进行确定。

如图9所示的基于音频时间戳音画同步原理示意图中,当前帧音频数据为第三帧音频数据,第一原始音频时间戳标记为PTS3。当前帧音频数据的上一帧音频数据为第二帧音频数据,第二原始音频时间戳为第二帧音频数据的原始音频时间戳,第二原始音频时间戳标记为PTS2。需要说明的是,原始音频时间戳为一帧音频数据的起始时间戳。其中,深灰色背景的区域代表已经渲染的内容,浅灰色背景的区域代表已经解码的内容,白色背景的区域代表未解码的内容。

如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值小于或等于第一差值阈值,则可以基于当前帧音频数据的计算音频时间戳和当前帧视频数据的原始视频时间戳,确定当前帧视频数据的播放结果。其中,第一差值阈值可以为Duration+制作误差,该制作误差为制作码流时的数值误差,例如确定的制作误差为9ms,则第一差值阈值=Duration+9ms。

图9所示的示例为当前帧音频数据的第一原始音频时间戳与上一帧音频数据的第二原始音频时间戳之间的差值等于Duration的示例,即PTS3-PTS2=Duration的示例,因此图9所示的示例中PTS3-PTS2<第一差值阈值。图9所示的示例实际上为音频时间戳未发生跳变的示例,此时可以正常的基于计算音频时间戳校准视频数据时间戳,即基于音频数据时间戳和视频数据时间戳大小关系,确定视频数据的播放结果。

为了保证视频数据校准效果,可以基于当前帧音频数据的计算音频时间戳和当前帧视频数据的原始视频时间戳,确定当前帧视频数据的播放结果。当前帧音频数据具有原始音频时间戳和计算音频时间戳。原始音频时间戳为采集音频数据时记录的时间戳,而计算音频时间戳为根据上一帧音频数据的计算音频时间戳和时间间隔计算得到的时间胡聪。上一帧音频数据的计算音频时间戳则时根据其上一帧音频数据的计算音频时间戳和时间间隔计算得到的时间戳……。

第一帧音频数据的计算音频时间戳等于其原始音频时间戳,例如,如图9中的PTS1;第二帧音频数据的计算音频时间戳等于第一帧音频数据的计算音频时间戳与时间间隔之和,例如,如图9中的PTS’2=PTS1+Duration;第三帧音频数据的计算音频时间戳等于第二帧音频数据的计算音频时间戳与时间间隔之和,例如,如图9中的PTS’3=PTS’2+Duration……。依次类推可以计算得到所有帧音频数据的计算音频时间戳。然后基于当前帧音频数据的计算音频时间戳和当前帧视频数据的原始视频时间戳,确定当前帧视频数据的播放结果。例如,播放到第三帧音频数据时,将当先需要播放的视频数据的原始视频时间戳与第三帧音频数据进行比较,即将PTSvedio(可能是第三帧视频数据的原始视频时间戳)与PTS’3进行比较,然后确定当前帧视频数据的播放结果。

在一些实施例中,系统时钟是音视频渲染的真实参考点,为了进一步保证视频数据校准效果,可以通过为每帧音频增加系统时钟的方式对音频数据时间戳进行校准。具体的,在执行基于当前帧音频数据的计算音频时间戳和当前帧视频数据的原始视频时间戳,确定当前帧视频数据的播放结果时,还可以基于系统时钟对当前帧音频数据的计算音频时间戳进行校准,得到校准音频时间戳,然后基于当前帧视频数据的原始视频时间戳和校准音频时间戳,确定当前帧视频数据的播放结果。基于系统时钟对当前帧音频数据的计算音频时间戳进行校准的过程可以包括:基于系统时钟和当前帧音频数据计算校准差值,然后根据校准差值对当前帧音频数据的计算音频时间戳进行校准,得到校准音频时间戳。

校准差值标识为△T,校准差值的计算公式为△T=Clock

如图11所示的基于音频时间戳音画同步原理示意图中,当前帧音频数据为第三帧音频数据,第一原始音频时间戳标记为PTS3。当前帧音频数据的上一帧音频数据为第二帧音频数据,第二原始音频时间戳为第二帧音频数据的原始音频时间戳,第二原始音频时间戳标记为PTS2。

如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,即PTS3-PTS2>Duration+制作误差,因此图11所示的示例实际上为音频时间戳发生跳变的示例,此时不可以正常的基于计算音频时间戳校准视频数据时间戳,确定视频数据的播放结果。这是由于音频时间戳发生跳变时,当前帧音频数据的时间戳和上一帧音频数据的时间戳相差较多,此时的计算音频时间戳与记录的原始音频时间戳相差得也较多。例如,图11中的第三帧音频数据的计算音频时间戳实际上为第二帧音频数据的结束时间戳,而由于发生了音频时间戳跳变,第三帧音频数据的原始音频时间戳与第二帧音频数据的结束时间戳相差较多。如果仍然基于计算音频时间戳校准视频数据时间戳,则会导致视频数据校准不准确,最终可能导致不能够实现音画同步。

因此,如果检测到当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,可以将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳。然后基于当前帧视频数据的原始视频时间戳和第一原始音频时间戳的大小关系,确定当前帧视频数据的播放结果。具体的,还需要基于系统时钟对第一原始音频时间戳进行校准,然后基于当前帧视频数据的原始视频时间戳和校准后的第一原始音频时间戳,确定当前帧视频数据的播放结果。

例如,图11中的第三帧音频数据的第一原始音频时间戳(PTS3),与第二帧音频数据的第二原始音频时间戳(PTS2)之间的差值大于第一差值阈值,即PTS3-PTS2>Duration+制作误差,第二帧音频数据和第三帧音频数据之间发生了音频跳变。图11中,PTS’2(第二帧音频数据的计算音频时间戳)=PTS1+Duration,PTS’3(第三帧音频数据的计算音频时间戳)=PTS’2+Duration。但是由于此时第三帧音频数据和第二帧音频时间之间发生音频时间戳跳变,也即PTS3-PTS2>Duration+制作误差,第三帧音频数据的计算音频时间戳PTS’3与第三帧音频数据的原始音频时间戳PTS3相差较多,如果仍然基于计算音频时间戳PTS’3和PTSvideo则会导致判断结果错误,最终导致无法实现音画同步。

因此,此时需要将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳,在图11所示的示例中为将第三帧音频数据的计算音频时间戳PTS’3重置为第三帧音频数据的原始音频时间戳PTS3。然后基于校准差值对第三帧音频数据的原始音频时间戳PTS3进行校准,得到第三音频数据的校准音频时间戳PTSnow=PTS3+△T。

在得到校准音频时间戳之后,基于当前帧视频数据的原始视频时间戳和校准音频时间戳的大小关系,确定当前帧视频数据的播放结果。在确定所述当前帧视频数据的播放结果的过程中,所述当前帧音频数据持续播放。

确定当前帧视频数据的播放结果的具体结果为:如果所述当前帧视频数据的原始视频时间戳和所述第一原始音频时间戳之间的差值的绝对值小于或等于第二差值阈值,在所述显示器上播放所述当前帧视频数据;如果所述当前帧视频数据的原始视频时间戳和所述第一原始音频时间戳之间的差值大于所述第二差值阈值,在所述显示器上持续播放所述当前帧视频数据的上一帧视频数据,直至所述当前帧视频数据的原始视频时间戳等于所述第一原始音频时间戳;如果所述第一原始音频时间戳和所述当前帧视频数据的原始视频时间戳之间的差值大于所述第二差值阈值,在所述显示器上播放所述当前帧视频数据的下一帧视频数据,以使所述第一原始音频时间戳和所述当前帧视频数据的下一帧视频数据的原始视频时间戳之前的差值的绝对值小于或等于所述第二差值阈值。

例如,图11示例中的PTSnow为校准后的当前帧音频数据的音频时间戳,PTSvideo为当前帧视频数据的视频时间戳。如果PTSvideo-PTSnow>第二差值阈值,表示视频数据的时间戳与音频数据的时间戳的差值超过第二差值阈值,即视频数据播放过快,此时不在显示器上渲染当前帧视频数据,而是在显示器上持续播放当前帧视频数据的上一帧视频数据(即仍然播放第三帧视频数据,而不播放第四帧视频数据),直至PTSnow=PTSvideo再开始播放第四帧视频数据。

如果PTSvideo-PTSnow≤第二差值阈值,表示视频数据的时间戳与音频时间的时间戳的差值未超过第二差值阈值,即音频数据和视频数据均未过快,即音画同步,此时可以在显示器上渲染当前帧视频数据。如果PTSnow-PTSvideo≤第二差值阈值,表示视频数据的时间戳与音频时间的时间戳的差值未超过第二差值阈值,即音频数据和视频数据均未过快,即音画同步,此时可以在显示器上渲染当前帧视频数据。

如果PTSnow-PTSvideo>第二差值阈值,表示音频数据的时间戳与视频数据的时间戳的差值超过第二差值阈值,即音频数据播放过快,此时不在显示器上渲染当前帧视频数据,而是在显示器上持续播放当前帧视频数据的下一帧视频数据(即不播放第四帧视频数据,而是播放第五帧视频数据)。

由以上技术方案可知,上述实施例提供的显示设备及音画同步方法,显示设备包括显示器、扬声器以及控制器,显示器用于播放视频数据,视频数据具有原始视频时间戳,扬声器用于播放音频数据,音频数据具有原始音频时间戳和时间间隔,时间间隔为根据音频数据的大小计算得到的相邻两帧音频数据的音频时间戳之间的差值。音频数据持续播放过程中,第二原始音频时间戳为所述当前帧音频数据的上一帧音频数据的原始音频时间戳,如果当前帧音频数据的第一原始音频时间戳与第二原始音频时间戳之间的差值大于第一差值阈值,则判断音频数据发生时间戳跳变。将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳,当前帧音频数据的计算音频时间戳为根据当前帧音频数据的上一帧音频数据对应的计算音频时间戳和时间间隔计算得到的时间戳。最后基于当前帧视频数据的原始视频时间戳和第一原始音频时间戳的大小关系,确定当前帧视频数据的播放结果。这样,即使音频数据的时间戳,可以对发生跳变的音频时间戳进行重置,然后以重置后的音频时间戳作为时钟来校准视频数据的时间戳,从而实现音画同步。

如果将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳时,第一原始音频时间戳小于或等于当前帧视频数据的原始视频时间戳,则可以基于当前帧视频数据的原始视频时间戳和第一原始音频时间戳的大小关系,确定当前帧视频数据的播放结果。

如果将当前帧音频数据的计算音频时间戳重置为第一原始音频时间戳时,第一原始音频时间戳大于当前帧视频数据的原始视频时间戳,此时视频数据没有基准时钟进行视频数据播放结果的确定。因此需要在当前帧音频数据上拼接第一音频数据包,生成拼接音频数据,此时拼接音频数据具有拼接音频时间戳。然后可以基于拼接音频时间戳和当前帧视频数据的原始视频戳的大小关系,确定当前帧视频数据的播放结果为开始播放。

例如,如图12所示的基于音频时间戳音画同步原理示意图中,将PTS’3重置为PTS3之后,PTS3>PTSvideo,此时视频数据没有基准时钟进行视频数据播放结果的确定。因此此时可以在第三帧音频数据上拼接第一音频数据包,生成拼接后的第三帧音频数据。拼接音频数据包后的第三帧音频数据具有拼接音频时间戳PTSnow,此时的PTSnow=PTSvideo,基于PTSnow的PTSvideo的大小关系,可以确定当前音画同步,因此可以播放当前帧视频数据(第三帧音频数据)。需要说明的是,第一音频数据包可以为空的数据包,也可以是包含数据的数据包,本申请不作限制。

上述实施例中的音画同步方法可以应用于音频和视频正在播放的场景中。例如,图11中的第三帧音频数据(PTS3)和第二帧音频数据(PTS2)之间存在时间戳跳变,因此不能够基于第三帧音频数据的计算音频时间戳(PTS’3)和当前帧视频数据的原始视频时间戳(PTSvideo),确定当前帧视频数据的播放结果。而需要将第三帧音频数据的计算音频时间戳(PTS’3)重置为第三帧音频数据的原始音频时间戳(PTS3),然后基于系统时钟对原始音频时间戳,得到校准音频时间戳(PTSnow)。最后基于校准音频时间戳(PTSnow)和当前帧视频数据的原始视频时间戳(PTSvideo)大小关系,确定当前帧视频数据的播放结果。

图11示例中的重置后的第三帧音频数据的原始音频时间戳(PTS3)小于或等于当前帧视频数据的原始视频时间戳(PTSvideo),因此可以基于校准音频时间戳(PTSnow)和当前帧视频数据的原始视频时间戳(PTSvideo)大小关系,确定当前帧视频数据的播放结果。图12示例中,如果重置后的第三帧音频数据的原始音频时间戳(PTS3)大于当前帧视频数据的原始视频时间戳(PTSvideo),则可以在当前帧音频数据上拼接第一音频数据包,为当前帧视频数据建立播放基准(PTSnow)。

上述实施例中的音画同步方法可以应用于单片循环播放的场景中。在单片循环播放(单片循环播放同一视频)的场景中,通常是在播放完毕视频时关闭当前的播放器,重新起播同一视频。上述方案由于需要关闭当前播放器然后重新起播,因此耗时较长,用户体验较差。本申请实施例中,可以不需要停止现有的播放器,只需要从文件头继续发送音视频数据即可。具体的,可以创建监测结束标记线程(包括监测音频数据结束标记线程和监测视频数据结束标记线程),具体的监测音频数据和视频数据的时间戳大小。如果发生音频数据的时间戳跳变,则设置播放结束标记,并立即重置计算音频时间戳为第一帧音频数据的原始音频时间戳。

如图13所示的基于音频时间戳音画同步原理示意图中,播放完毕第三帧音频数据时,即播放完当前需要单片播放的视频时,需要再次从该视频的第一帧音频数据开始播放,这个过程需要系统反应时间,因此该视频的第三帧音频数据的时间戳,与重新播放该视频的第一帧音频数据的时间戳之前存在时间戳跳变。例如,判断条件可以设置为((PTSn-1+Durationn-1)-PTSn)>第一差值阈值。如果满足这个条件,可以确定该视频的第三帧音频数据的时间戳,与重新播放该视频的第一帧音频数据的时间戳之前存在时间戳跳变,也就能确定已重新播放该视频。此时需要将重新播放的第一帧音频数据的计算音频时间戳PTS’1重置为PTS1(PTS1即为PTSnow)。图13的示例中,为重新起播视频时音频数据和视频数据同时播放,也即PTSnow=PTSvideo。因此可以同时播放音频数据和视频数据,实现音画同步。

如图14所示的基于音频时间戳音画同步原理示意图中,重新起播视频时音频数据和视频数据未同时播放,将PTS’1重置为PTS1之后,PTS1>PTSvideo,此时视频数据没有基准时钟进行视频数据播放结果的确定。因此此时可以在第一帧音频数据上拼接第一音频数据包,生成拼接后的第一帧音频数据。拼接音频数据包后的第一帧音频数据具有拼接音频时间戳PTSnow,此时的PTSnow=PTSvideo,基于PTSnow的PTSvideo的大小关系,可以确定当前音画同步,因此可以播放当前帧视频数据(第一帧音频数据)。

本说明书中各个实施例之间相同相似的部分互相参照即可,在此不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

相关技术
技术分类

06120116594704