基于Miracast的回放方法及装置与流程

文档序号:27108352发布日期:2021-10-27 18:29阅读:197来源:国知局
基于Miracast的回放方法及装置与流程
基于miracast的回放方法及装置
技术领域
1.本发明涉及镜像投屏的技术领域,特别涉及一种基于miracast的回放方法及装置。


背景技术:

2.随着移动设备硬件规格的提高及移动操作系统的迭代升级,消费者对移动设备的多媒体需求从开始的图片、文字上升到现在的视频、网络游戏等。加上通信技术的发展,移动设备能够处理的多媒体场景与日俱增,使用者已经不满足仅仅在小屏上独享多媒体内容,更乐于将移动设备小屏上的多媒体内容投射到电视、投影仪等大屏上与他人分享。
3.具有镜像投屏(miracast)功能的外部装置(sink端),其可在与移动souce设备连接后,解码移动source端设备的通信数据,控制sink端的显示器播放移动source端的一路rtsp流,负载是ts(mpegts,简称ts)格式视频。该外部装置需要对souce端的ts流(传送流)实现回放,并降低自身与移动设备souce端之间的音视频延迟。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于miracast的回放方法,能够对souce端的ts流进行回放,降低镜像投屏外部装置与移动源设备之间的视频延迟。
5.本发明还提出一种具有上述基于miracast的回放方法的基于miracast的回放装置。
6.根据本发明的第一方面实施例的基于miracast的回放方法,包括以下步骤:对接收到的镜像码流执行解封装及解码,查询获取第一帧图像数据及所述第一帧图像数据的第一显示时间,以所述第一显示时间开启播放器计时器;根据当前视频帧的显示时间与所述播放器计时器的第一时间差,调整所述播放器计时器的速率;根据当前音频帧的播放时间与所述播放器计时器的第二时间差,将当前所述音频帧输入至音频设备或者丢弃当前所述音频帧。
7.根据本发明实施例的基于miracast的回放方法,至少具有如下有益效果:以视频流作为音视频同步校准参考,基于视频流显示帧进行回放控制,可有效限低镜像投屏时的视频延时,优化投屏画面显示的流畅性。
8.根据本发明的一些实施例,根据当前视频帧的显示时间与所述播放器计时器的第一时间差,调整所述播放器计时器的速率的方法包括:配置所述播放器计时器的状态为跟随视频显示时间,获取当前所述视频帧的显示时间与所述播放器计时器的所述第一时间差;若所述第一时间差大于第一预设时间,则以当前所述视频帧重置所述播放器计时器;若所述第一时间差小于或等于所述第一预设时间,则基于待播放的所述视频帧及所述第一时间差,调整所述播放器计时器的速率,以追赶或等待当前所述视频帧的显示时间。
9.根据本发明的一些实施例,基于待播放的所述视频帧及所述第一时间差,调整所
述播放器计时器的速率,以追赶或等待当前所述视频帧的显示时间的方法包括:若存在多个待播放的所述视频帧,则调整所述播放器计时器,直接播放待播放的所述视频帧中的显示时间最后的所述视频帧;若仅存在一个待播放的所述视频帧,则基于所述第一时间差,对待播放的所述视频帧延时播放。
10.根据本发明的一些实施例,根据当前音频帧的播放时间与所述播放器计时器的第二时间差,将当前所述音频帧输入至音频设备或者丢弃当前所述音频帧的方法包括:获取当前所述音频帧的播放时间与所述播放器计时器的所述第二时间差;若所述第二时间差大于第二预设时间,则丢弃所述音频帧;若所述第二时间差小于或等于所述第二预设时间,则输出所述音频帧到音频播放设备。
11.根据本发明的一些实施例,还包括:若超过第三预设时间未收到新的所述视频帧,但接收到所述音频帧,则根据当前所述音频帧与所述播放器计时器的所述第二时间差,以当前所述音频帧重置所述播放器计时器。
12.根据本发明的一些实施例,根据当前所述音频帧与所述播放器计时器的所述第二时间差,以当前所述音频帧重置所述播放器计时器的方法包括:配置所述播放器计时器的状态为跟随音频播放时间,获取当前所述音频帧的播放时间与所述播放器计时器的所述第二时间差;若所述第二时间差大于第四预设时间,则以当前所述音频帧重置所述播放器计时器;若所述第二时间差小于或等于所述第四预设时间,则调整所述播放器计时器的速率,以追赶或等待当前所述音频帧的播放时间。
13.根据本发明的第二方面实施例的基于miracast的回放装置,包括:解码分析模块,用于对接收到的镜像码流解封装及解码,查询获取第一帧图像数据及所述第一帧图像数据的第一显示时间,以所述第一显示时间开启播放器计时器;视频帧处理模块,用于根据当前视频帧的显示时间与所述播放器计时器的第一时间差,调整所述播放器计时器的速率;音频帧处理模块,用于根据当前音频帧的播放时间与所述播放器计时器的第二时间差,将当前所述音频帧输入至音频设备或者丢弃当前所述音频帧。
14.根据本发明实施例的基于miracast的回放装置,至少具有如下有益效果:以视频流作为音视频同步校准参考,基于视频流显示帧进行回放控制,可有效限低镜像投屏时的视频延时,优化投屏画面显示的流畅性。
15.根据本发明的一些实施例,所述视频帧处理模块包括:第一判定模块,用于配置所述播放器计时器的状态为跟随视频显示时间,以及,获取当前所述视频帧的显示时间与所述播放器计时器的所述第一时间差,确定所述第一时间差是否大于第一预设时间;第一重置模块,用于若所述第一时间差大于第一预设时间,则以当前所述视频帧重置所述播放器计时器;第一调整模块,用于若所述第一时间差小于或等于所述第一预设时间,则基于待播放的所述视频帧及所述第一时间差,调整所述播放器计时器的速率,以追赶或等待当前所述视频帧的显示时间。
16.根据本发明的一些实施例,还包括:静止场景处理模块,用于确定是否超过第三预设时间未收到新的所述视频帧,若接收到所述音频帧,则根据当前所述音频帧与所述播放器计时器的所述第二时间差,以当前所述音频帧重置所述播放器计时器。
17.根据本发明的一些实施例,所述静止场景处理模块包括:第二判定模块,用于配置所述播放器计时器的状态为跟随音频播放时间,以及,获取当前所述音频帧的播放时间与
所述播放器计时器的所述第二时间差,确定所述第二时间差是否大于第四预设时间;第二重置模块,用于若所述第二时间差大于所述第四预设时间,则以当前所述音频帧重置所述播放器计时器;第二调整模块,用于若所述第二时间差小于或等于所述第四预设时间,则调整所述播放器计时器的速率,以追赶或等待当前所述音频帧的播放时间。
18.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
19.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
20.图1为本发明实施例的方法的主要流程示意图;
21.图2为本发明实施例的装置的内部模块示意框图;
22.图3为本发明实施例的方法的整体流程示意图。
23.附图标记:
24.解码分析模块100、视频帧处理模块200、音频帧处理模块300、静止场景处理模块400;
25.第一判定模块210、第一重置模块220、第一调整模块230;
26.第二判定模块410、第二重置模块420、第二调整模块430。
具体实施方式
27.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
28.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。在本发明的描述中,步骤标号仅是为了描述的方便或者引述的方便所作出的标识,各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
29.名词解释:
30.rtsp,全称real time streaming protocol,一种实时流传输协议。
31.pts(presentation time stamp):即显示时间戳,用于告知播放器该在什么时候播放这一帧的数据。
32.参照图1,本发明的实施例的方法包括:对接收到的镜像码流执行解封装及解码,查询获取第一帧图像数据及第一帧图像数据的第一显示时间,以第一显示时间开启播放器计时器;根据当前视频帧的显示时间与播放器计时器的第一时间差,调整播放器计时器的速率;根据当前音频帧的播放时间与播放器计时器的第二时间差,将当前音频帧输入至音频设备或者丢弃当前音频帧。
33.在本发明的一个实施例中,参照图3,移动源设备将编码后的镜像码流传送到miracast sink设备(即图3中的投屏外部装置),镜像流为mpegts格式,同时包含视频、音频数据。sink设备对接收到的镜像码流完成解封装及解码,并创建播放器计时器,作为音视频同步的纽带。投屏外部装置查询获取视频图像,获取到第一帧图像数据以及该第一帧图像数据对应的pts,并以该pts作为播放器计时器的开启时刻。播放器计时器开始计时,将图像数据发送给显示模块。后续接收到视频帧图像,获取该视频帧的pts(显示时间戳,相当于本发明中的视频帧的显示时间),计算该pts与播放器计时器的时间差值,得到第一时间差。若第一时间差大于70ms(相当于第一预设时间),则以视频帧的pts重置播放器计时器;否则,即第一时间差小于等于70ms,则调整播放器计时器的速率,以使播放器计时器的时间追上或者等待当前视频帧的pts。在本实施例中,若播放器内有多个视频帧待显时,则直接显示最后一帧,保证视频低延时;若播放器内只有一帧待显时,根据播放器计时器与视频帧pts差值决定是否延时送显,保证音视频的同步。若获取到的是音频帧及其对应的pts(显示时间戳,相当于本发明中的单频帧的播放时间),计算该音频帧的pts与播放器计时器时间差值,得到第二时间差值。若第二时间差值大于100ms(相当于第二预设时间),则丢弃该音频帧pcm数据;否则,即第二时间小于等于100ms,则将该音频发送至音频播放设备。
34.在本发明的实施例中,参照图3,当超过1s(相当于第三预设时间)无视频帧数据,则在接收到音频帧数据,计算该音频帧的pts与播放器计时器时间差值,得到第二时间差值。若第二时间差值大于100ms(相当于第四预设时间),则以当前音频帧pts重置播放器计时器;否则,即第二时间小于等于100ms,则调整播放器计时器的速率,以使播放器计时器的时间追上或者等待当前音频帧的pts。这种情况是由于某些情况下,回放的镜像码流中存在静止场景产生的,此时,可能在较长时间获得不到视频图像。
35.参照图3,本发明的实施例中,投屏外部装置接收到编码后的镜像码流,进行解封装及解码,若当前获取到第一帧图像数据,则根据该第一帧图像数据的第一显示时间(即pts)开启播放器计时器,将第一帧图像数据输出后,继续处理后续数据。
36.后续若接收到视频帧,首先判断当前播放器计时器的状态是否为跟随视频显示时间(相当于图3中的视频pts),若否则将播放器计时器配置为跟随视频显示时间。然后获取当前视频帧与播放器计时器的第一时间差值,确定该第一时间差值是否大于第一预设时间。若第一时间差值大于第一预设时间,则以当前视频帧的pts重置播放器计时器;否则,根据第一时间差值及待播放的视频帧的数量,调整播放器计时器的速率,以追上或等待当前视频帧的pts。在本实施例中,若播放器内有多个视频帧待显时,则直接显示最后一帧,保证视频低延时;若播放器内只有一帧待显时,根据播放器计时器与视频帧pts差值决定是否延时送显,保证音视频的同步。
37.后续若接收到音频帧,首先判断当前是否为静止场景,即判断大于第三预设时间未收到新的视频帧。
38.若为静止场景,则判断当前播放器计时器的状态是否为跟随音频播放时间,并将播放器计时器的状态配置为跟随音频播放时间。然后获取当前视频帧与播放器计时器的第二时间差值,确定该第二时间差值是否大于第四预设时间(图3中为100ms)。若第二时间差值大于第四预设时间,则以当前音频帧的pts重置播放器计时器;否则,根据第二时间差值调整播放器计时器的速率,以追上或等待当前音频帧的pts。
39.若为非静止场景,则获取当前音频帧与播放器计时器的第二时间差值,确定该第二时间差值是否大于第二预设时间(图3中为100ms)。若第二时间差值大于第二预设时间,则舍弃该音频帧;否则,播放当前音频帧。
40.应理解的是,尽管图3中的第三预设时间与第四预设时间均为100ms,但本发明的实施例并不限于此,即本发明的实施例中的第一至第四预设时间均可以根据需求进行调整。
41.本发明以视频帧的显示时间作为控制参考,降低了投屏场景对人更为敏感的视频帧延时,可提高镜像投屏的画面显示流畅性。
42.本发明实施例的装置,参照图2,包括以下模块:解码分析模块100,用于对接收到的镜像码流解封装及解码,查询获取第一帧图像数据及第一帧图像数据的第一显示时间,以第一显示时间开启播放器计时器;视频帧处理模块200,用于根据当前视频帧的显示时间与播放器计时器的第一时间差,调整播放器计时器的速率;音频帧处理模块300,用于根据当前音频帧的播放时间与播放器计时器的第二时间差,将当前音频帧输入至音频设备或者丢弃当前音频帧。其中,视频帧处理模块200,包括:第一判定模块210,用于获取当前视频帧的显示时间与播放器计时器的第一时间差,确定第一时间差是否大于第一预设时间;第一重置模块220,用于若第一时间差大于第一预设时间,则以当前视频帧重置播放器计时器;第一调整模块230,用于若第一时间差小于或等于第一预设时间,则基于待播放的视频帧及第一时间差,调整播放器计时器的速率,以追赶或等待当前视频帧的显示时间。例如:存在多个播放帧,加快播放速度,追赶当前视频帧的显示时间。
43.参照图2,本实施例的装置,还包括:静止场景处理模块400,用于确定是否超过第三预设时间未收到新的视频帧,若接收到音频帧,则根据当前音频帧与播放器计时器的第二时间差,以当前音频帧重置播放器计时器。静止场景处理模块400包括:第二判定模块410,用于获取当前音频帧的播放时间与播放器计时器的第二时间差,确定第二时间差是否大于第四预设时间;第二重置模块420,用于若第二时间差大于第四预设时间,则以当前音频帧重置播放器计时器;第二调整模块430,用于若第二时间差小于或等于第四预设时间,则调整播放器计时器的速率,以追赶或等待当前音频帧的播放时间。
44.尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本公开的范围内。
45.上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。
46.因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流
程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。
47.本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。
48.软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施方案中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。
49.软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。
50.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1