视频投屏方法、装置、终端及存储介质与流程

文档序号:21479291发布日期:2020-07-14 17:05阅读:210来源:国知局
视频投屏方法、装置、终端及存储介质与流程

本公开涉及互联网技术领域,特别涉及一种视频投屏方法、装置、终端及存储介质。



背景技术:

随着互联网技术的发展,越来越多的用户喜欢在终端上观看视频。受限于屏幕大小,在观看视频过程中,很多用户可将智能手机、平板电脑等小屏幕终端上的视频发送到智能电视等大屏幕终端上进行观看。

目前,相关技术在进行视频投屏时,可按照固定的投屏参数,将视频帧发送至接收端。

然而,当网络信号较弱或者网络波动较大时,采用固定的投屏参数发送视频帧时网络会发生拥塞,接收端接收到的视频帧可能出现丢包现象,导致画面延迟较大、画质较差。



技术实现要素:

为改善视频投屏时画面延迟大、画质差的问题,本公开实施例提供了一种视频投屏方法、装置、终端及存储介质。所述技术方案如下:

一方面,提供了一种视频投屏方法,所述方法包括:

在向第一终端发送视频帧的过程中,接收所述第一终端发送的第一参数调节指令,所述第一参数调节指令为所述第一终端在任一视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时发送;

响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的投屏参数;

基于调小后的投屏参数,向所述第一终端发送视频帧。

在一种可能的实现方式中,所述接收第一终端发送的第一参数调节指令之前,还包括:

与所述第一终端建立网络连接;

基于所建立的网络连接,与所述第一终端进行时间同步。

在一种可能的实现方式中,所述响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的投屏参数,包括:

响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,所述响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的帧率和码率,包括:

每隔预设帧数丢弃一帧视频帧,以调小向所述第一终端发送视频帧的帧率。

在一种可能的实现方式中,所述响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的投屏参数,包括:

响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的码率。

在一种可能的实现方式中,所述基于调小后的投屏参数,向所述第一终端发送视频帧之后,还包括:

接收所述第一终端发送的第二参数调节指令,所述第二参数调节指令为所述第一终端在视频帧的接收时间戳与发送时间戳之间的差值小于第二阈值且持续时间达到预设时长时发送;

响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的投屏参数;

基于调大后的投屏参数,向所述第一终端发送视频帧。

在一种可能的实现方式中,所述响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的投屏参数,包括:

响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,所述响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的投屏参数,包括:

响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的码率。

另一方面,提供了一种视频投屏方法,所述方法包括:

响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较;

当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,向所述第二终端发送第一参数调节指令,所述第一参数调节指令用于所述第二终端调小向第一终端发送视频帧的投屏参数;

接收所述第二终端采用调小后的投屏参数发送的视频帧。

在一种可能的实现方式中,所述响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较之前,还包括:

与所述第二终端建立网络连接;

基于所建立的网络连接,与所述第二终端进行时间同步。

在一种可能的实现方式中,所述接收所述第二终端采用调小后的投屏参数发送的视频帧之后,还包括:

将接收到的视频帧的发送时间戳与接收时间戳进行比较;

当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值且持续时长达到预设时长,向所述第二终端发送第二参数调节指令,所述第二参数调节指令用于所述第二终端调大向第一终端发送视频帧的投屏参数。

另一方面,提供了一种视频投屏装置,所述装置包括:

接收模块,用于在向第一终端发送视频帧的过程中,接收所述第一终端发送的第一参数调节指令,所述第一参数调节指令为所述第一终端在任一视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时发送;

参数调节模块,用于响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的投屏参数;

发送模块,用于基于调小后的投屏参数,向所述第一终端发送视频帧。

在一种可能的实现方式中,所述装置还包括:

连接模块,用于与所述第一终端建立网络连接;

同步模块,用于基于所建立的网络连接,与所述第一终端进行时间同步。

在一种可能的实现方式中,所述参数调节模块,用于响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,所述参数调节模块,用于每隔预设帧数丢弃一帧视频帧,以调小向所述第一终端发送视频帧的帧率。

在一种可能的实现方式中,所述参数调节模块,用于响应于所述第一参数调节指令,调小向所述第一终端发送视频帧的码率。

在一种可能的实现方式中,

所述接收模块,还用于接收所述第一终端发送的第二参数调节指令,所述第二参数调节指令为所述第一终端在视频帧的接收时间戳与发送时间戳之间的差值小于第二阈值且持续时间达到预设时长时发送;

所述参数调节模块,还用于响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的投屏参数;

所述发送模块,还用于基于调大后的投屏参数,向所述第一终端发送视频帧。

在一种可能的实现方式中,所述参数调节模块,用于响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,所述参数调节模块,用于响应于所述第二参数调节指令,调大向所述第一终端发送视频帧的码率。

另一方面,提供了一种视频投屏装置,所述装置包括:

比较模块,用于响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较;

发送模块,用于当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,向所述第二终端发送第一参数调节指令,所述第一参数调节指令用于所述第二终端调小向第一终端发送视频帧的投屏参数;

接收模块,用于接收所述第二终端采用调小后的投屏参数发送的视频帧。

在一种可能的实现方式中,所述装置还包括:

连接模块,用于与所述第二终端建立网络连接;

同步模块,用于基于所建立的网络连接,与所述第二终端进行时间同步。

在一种可能的实现方式中,

所述比较模块,还用于将接收到的视频帧的发送时间戳与接收时间戳进行比较;

所述发送模块,还用于当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值且持续时长达到预设时长,向所述第二终端发送第二参数调节指令,所述第二参数调节指令用于所述第二终端调大向第一终端发送视频帧的投屏参数。

另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述一方面所述的视频投屏方法,或上述另一个方面所述的视频投屏方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述一方面所述的视频投屏方法,或上述另一方面所述的视频投屏方法。

本公开实施例提供的技术方案带来的有益效果是:

在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟较小,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

附图说明

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

图1是本公开实施例提供的一种视频投屏方法所涉及的实施环境的示意图;

图2是本公开实施例提供的一种视频投屏方法的流程图;

图3是本公开实施例提供的一种视频投屏方法的流程图;

图4是本公开实施例提供的一种视频投屏方法的流程图;

图5是本公开实施例提供的一种视频投屏装置的结构示意图;

图6是本公开实施例提供的一种视频投屏装置的结构示意图;

图7示出了本公开一个示例性实施例提供的终端的结构框图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。

请参考图1,其示出了本公开实施例提供的视频投屏方法所涉及的实施环境,该实施环境包括:第一终端101和第二终端102。

其中,第一终端为大屏幕终端,例如智能电视等。第二终端为小屏幕终端,例如智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱等。第二终端102内安装至少一个视频播放应用,可为用户提供视频播放服务。第一终端101与第二终端102位于同一局域网内,可以通过有线网络或无线网络进行连接

本公开实施例提供了一种视频投屏方法,以第二终端执行本公开实施例为例。参见图2,本公开实施例提供的方法流程包括:

201、在向第一终端发送视频帧的过程中,接收第一终端发送的第一参数调节指令。

其中,第一参数调节指令为第一终端在任一视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时发送。

202、响应于第一参数调节指令,调小向第一终端发送视频帧的投屏参数。

203、基于调小后的投屏参数,向第一终端发送视频帧。

本公开实施例提供的方法,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

在一种可能的实现方式中,接收第一终端发送的第一参数调节指令之前,还包括:

与第一终端建立网络连接;

基于所建立的网络连接,与第一终端进行时间同步。

在一种可能的实现方式中,响应于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,包括:

响应于第一参数调节指令,调小向第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,响应于第一参数调节指令,调小向第一终端发送视频帧的帧率和码率,包括:

每隔预设帧数丢弃一帧视频帧,以调小向第一终端发送视频帧的帧率。

在一种可能的实现方式中,响应于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,包括:

响应于第一参数调节指令,调小向第一终端发送视频帧的码率。

在一种可能的实现方式中,基于调小后的投屏参数,向第一终端发送视频帧之后,还包括:

接收第一终端发送的第二参数调节指令,第二参数调节指令为第一终端在视频帧的接收时间戳与发送时间戳之间的差值小于第二阈值且持续时间达到预设时长时发送;

响应于第二参数调节指令,调大向第一终端发送视频帧的投屏参数;

基于调大后的投屏参数,向第一终端发送视频帧。

在一种可能的实现方式中,响应于第二参数调节指令,调大向第一终端发送视频帧的投屏参数,包括:

响应于第二参数调节指令,调大向第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,响应于第二参数调节指令,调大向第一终端发送视频帧的投屏参数,包括:

响应于第二参数调节指令,调大向第一终端发送视频帧的码率。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

本公开实施例提供了一种视频投屏方法,以第一终端执行本公开实施例为例。参见图3,本公开实施例提供的方法流程包括:

301、响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较。

302、当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,向第二终端发送第一参数调节指令。

其中,第一参数调节指令用于第二终端调小向第一终端发送视频帧的投屏参数。

303、接收第二终端采用调小后的投屏参数发送的视频帧。

本公开实施例提供的方法,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,向第二终端发送第一参数调节指令,使得第二终端调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

在一种可能的实现方式中,响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较之前,还包括:

与第二终端建立网络连接;

基于所建立的网络连接,与第二终端进行时间同步。

在一种可能的实现方式中,接收第二终端采用调小后的投屏参数发送的视频帧之后,还包括:

将接收到的视频帧的发送时间戳与接收时间戳进行比较;

当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值且持续时长达到预设时长,向第二终端发送第二参数调节指令,第二参数调节指令用于第二终端调大向第一终端发送视频帧的投屏参数。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

本公开实施例提供了一种视频投屏方法,以第一终端和第二终端执行本公开实施例为例。参见图4,本公开实施例提供的方法流程包括:

401、第一终端与第二终端建立网络连接,并基于所建立的网络连接,与第二终端进行时间同步。

第一终端与第二终端可以建立socket连接。建立socket连接至少需要一对套接字,其中一个运行于第一终端,另一个运行于第二终端。基于套接字,第一终端和第二终端建立socket连接的过程可分为如下三个步骤:

第一步,第一终端监听过程。第一终端的套接字并不会定位具体的第二终端的套接字,而是处于等待连接状态,实时监控网络状态,等待第二终端发送的连接请求。

第二步,第二终端请求过程。第二终端基于套接字向第一终端发送连接请求,以连接第一终端的套接字。此时,第二终端的套接字需要描述待连接的第一终端的套接字,并指出第一终端套接字的地址和端口号,进而向第一终端发送连接请求。

第三步,第一终端和第二终端连接确认过程。当第一终端的套接字监听到或接收到第二终端基于套接字发送的连接请求,响应该连接请求,建立一个新的线程,将第一终端的套接字的描述信息发送至第二终端,如果第二终端确认此描述信息,则第一终端与第二终端建立连接。

当然,第一终端与第二终端还可以通过wifi信号、蓝牙信号、红外信号、nfc(nearfieldcommunication,近场通信)信号等至少一种建立网络连接。例如,第一终端可以广播wifi信号,第二终端通过开启wlan(wirelesslocalareanetworks,无线局域网络)功能,接收第一终端广播的wifi信号,第一终端基于第二终端接收到的wifi信号,与第二终端建立连接;第一终端可以发射蓝牙信号,第二终端开启蓝牙功能,接收蓝牙信号,第一终端基于第二终端接收到的蓝牙信号,与第二终端建立连接;第一终端可以发射红外信号,第二终端开启红外功能,接收红外信号,第一终端基于第二终端接收到的红外信号,与第二终端建立连接;第一终端可以发射nfc信号,第二终端开启nfc功能,接收nfc信号,第一终端基于第二终端接收到的nfc信号,与第二终端建立连接等等。

基于所建立的网络连接,第一终端可向第二终端发送第一终端的时间戳信息,当接收到第一终端的时间戳信息时,第二终端将本端的时间戳与第一终端的时间戳进行比较,并调整本端的时钟,将本端的时间戳与第一终端的时间戳对齐,从而实现第一终端与第二终端的时间同步。

402、第二终端向第一终端发送至少一帧视频帧。

用户在使用小屏幕的第二终端观看视频过程中,为了获取到更好的观看体验,可将第二终端上的视频投屏到大屏幕的第一终端上进行播放。为此,第二终端可基于与第一终端所建立的网络连接,向第一终端发送至少一帧视频帧,每帧视频帧携带第二终端发送该帧视频帧的发送时间戳。

403、响应于接收到的第二终端发送的至少一帧视频帧,第一终端将每帧视频帧的发送时间戳与接收时间戳进行比较。

当接收到第二终端发送的至少一帧视频帧,第一终端获取每帧视频帧的发送时间戳,并将每帧视频帧的发送时间戳与接收时间戳进行比较,并执行步骤404。

404、当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,第一终端向第二终端发送第一参数调节指令。

其中,第一阈值用于衡量网络状况,当收发数据的时间差大于该第一阈值,可以确定网络状况不佳,时延较大,影响播放视频的流畅度及画质;当收发数据的时间差小于该第一阈值,不会影响视频的播放。

在接收第二终端发送的视频帧过程中,当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,第二终端可以确定该帧视频帧的网络时延过大,如果第二终端继续采用原来的投屏参数发送视频帧,将影响第一终端上所显示的视频帧的画质,此时第一终端将向第二终端发送第一参数调节指令,以通过调节第二终端向第一终端发送视频帧的投屏参数,达到减小网络时延,提高画质的目的;当该视频帧的发送时间戳与接收时间戳之间的差值小于第一阈值,第二终端可以正常显示视频帧。

405、响应于第一参数调节指令,第二终端调小向第一终端发送视频帧的投屏参数。

其中,投屏参数包括帧率、码率等。响应于第一参数调节指令,第二终端调小向第一终端发送视频帧的投屏参数时,包括以下两种方式:

第一种方式、响应于第一参数调节指令,第二终端调小向第一终端发送视频帧的帧率和码率。

针对该种方式、第二终端可以采取抽帧方式调小帧率,同时重置编码器,以降低码率。第二终端采取抽帧方式调小帧率的过程为:第一终端在向第二终端发送的第一参数调节指令中指示每秒内丢弃的帧数,响应于该第一参数调节指令,第二终端每隔预设帧数丢弃一帧视频帧,以调小向第一终端发送视频帧的帧率。该预设帧数可以根据每秒发送的帧数和丢弃的帧数确定,例如,第一参数调节指令指示每秒丢弃的帧数为m帧,则第二终端在每秒向第一终端发送n帧视频帧时,每n/m帧即丢弃一帧。采用该种方式进行均匀丢帧,提高了画面流畅度,即便丢帧也不会明显卡顿。

采用调小帧率和码率的方式,在不降低每帧视频帧的画质的前提下,降低了视频帧播放的流畅度。

第二种方式、响应于第一参数调节指令,第二终端调小向第一终端发送视频帧的码率。

采用调小码率的方式,保证了视频播放的流畅度,但是降低了每帧视频的画质。

需要说明的是,第二终端在调小向第一终端发送视频帧的投屏参数时,可以逐渐调小投屏参数,即先将投屏参数调小预设数值,然后采用调小后的投屏参数向第一终端发送视频帧,第一终端接收第二终端发送的视频帧,并将接收到的视频帧的发送时间戳与接收时间戳进行比较,如果发送时间戳与接收时间戳之间的差值依然大于第一阈值,则向第二终端发送第一参数调节指令,以使第二终端继续调小投屏参数,直至接收到的视频帧的发送时间戳与接收时间戳之间的差值小于等于第一阈值。

406、第二终端基于调小后的投屏参数,向第一终端发送视频帧。

基于调小后的投屏参数,第二终端通过与第一终端所建立的网络连接,继续向第一终端发送视频帧,该视频帧中携带第二终端发送该视频帧的发送时间戳。

407、第一终端接收第二终端采用调小后的投屏参数发送的视频帧,并将接收到的视频帧的发送时间戳与接收时间戳进行比较。

当接收到第二终端采用调小后的投屏参数发送的视频帧,第一终端记录每帧视频帧的接收时间戳,并将每帧视频帧的发送时间戳与接收时间戳进行比较,从而对当前的网络状况进行判断。

408、当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值且持续时长达到预设时长,第一终端向第二终端发送第二参数调节指令。

其中,第二阈值同样用于衡量当前的网络状况,可以为10ms、20ms等等。当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值,说明网络状态较佳,该帧视频帧的时延较小,此时可以适当调大投屏参数,以提高视频播放的流畅度及视频帧的画质,因而第一终端将向第二终端发送第二参数调节指令,以使第二终端调大向第一终端发送视频帧的投屏参数。

409、响应于第二参数调节指令,第二终端调大向第一终端发送视频帧的投屏参数。

第二终端响应于第二参数调节指令,调大向第一终端发送视频帧的投屏参数时,包括以下两种方式:

第一种方式、响应于第二参数调节指令,第二终端调大向第一终端发送视频帧的帧率和码率。

响应于第二参数调节指令,第二终端可以调大向第一终端发送视频帧的帧率,并重置编码器,以调大向第一终端发送视频帧的码率。

采用调大帧率和码率的方式,不仅提高了播放视频的流畅度,而且提高了每帧视频帧的画质。

第二种方式、响应于第二参数调节指令,第二终端调大向第一终端发送视频帧的码率。

响应于第二参数调节指令,第二终端可以只调大向第一终端发送视频帧的码率。

采用调大码率的方式,在播放视频的流畅度不变的前提下,提高了每帧视频帧的画质。

需要说明的是,第二终端在调大向第一终端发送视频帧的投屏参数时,可以逐渐调大投屏参数,即先将投屏参数调大预设数值,然后采用调大后的投屏参数向第一终端发送视频帧,第一终端接收第二终端发送的视频帧,并将接收到的视频帧的发送时间戳与接收时间戳进行比较,如果发送时间戳与接收时间戳之间的差值依然小于第二阈值,则向第二终端发送第二参数调节指令,以使第二终端继续调大投屏参数,直至接收到的视频帧的发送时间戳与接收时间戳之间的差值大于等于第二阈值。

410、第二终端基于调大后的投屏参数,向第一终端发送视频帧。

基于调大后的投屏参数,第二终端通过与第一终端所建立的网络连接,向第一终端发送视频帧。

需要说明的是,上述对投屏参数的调节过程是实时进行的,贯穿于视频投屏的整个过程中。通过对投屏参数进行实时调节,确保投射到第一终端上的视频播放的流畅性,提高了画面质量。

本公开实施例提供的方法,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

参见图5,本公开实施例提供了一种视频投屏装置,该装置包括:

接收模块501,用于在向第一终端发送视频帧的过程中,接收第一终端发送的第一参数调节指令,第一参数调节指令为第一终端在任一视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时发送;

参数调节模块502,用于响应于第一参数调节指令,调小向第一终端发送视频帧的投屏参数;

发送模块503,用于基于调小后的投屏参数,向第一终端发送视频帧。

在一种可能的实现方式中,该装置还包括:

连接模块,用于与第一终端建立网络连接;

同步模块,用于基于所建立的网络连接,与第一终端进行时间同步。

在一种可能的实现方式中,参数调节模块502,用于响应于第一参数调节指令,调小向第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,参数调节模块502,用于每隔预设帧数丢弃一帧视频帧,以调小向第一终端发送视频帧的帧率。

在一种可能的实现方式中,参数调节模块502,用于响应于第一参数调节指令,调小向第一终端发送视频帧的码率。

在一种可能的实现方式中,

接收模块501,还用于接收第一终端发送的第二参数调节指令,第二参数调节指令为第一终端在视频帧的接收时间戳与发送时间戳之间的差值小于第二阈值且持续时间达到预设时长时发送;

参数调节模块502,还用于响应于第二参数调节指令,调大向第一终端发送视频帧的投屏参数;

发送模块503,还用于基于调大后的投屏参数,向第一终端发送视频帧。

在一种可能的实现方式中,参数调节模块502,用于响应于第二参数调节指令,调大向第一终端发送视频帧的帧率和码率。

在一种可能的实现方式中,参数调节模块502,用于响应于第二参数调节指令,调大向第一终端发送视频帧的码率。

综上,本公开实施例提供的装置,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

参见图6,本公开实施例提供了一种视频投屏装置,该装置包括:

比较模块601,用于响应于接收到的第二终端发送的至少一帧视频帧,将每帧视频帧的发送时间戳与接收时间戳进行比较;

发送模块602,用于当任一视频帧的发送时间戳与接收时间戳之间的差值大于第一阈值,向第二终端发送第一参数调节指令,第一参数调节指令用于第二终端调小向第一终端发送视频帧的投屏参数;

接收模块603,用于接收第二终端采用调小后的投屏参数发送的视频帧。

在一种可能的实现方式中,该装置还包括:

连接模块,用于与第二终端建立网络连接;

同步模块,用于基于所建立的网络连接,与第二终端进行时间同步。

在一种可能的实现方式中,

比较模块601,还用于将接收到的视频帧的发送时间戳与接收时间戳进行比较;

发送模块602,还用于当任一视频帧的发送时间戳与接收时间戳之间的差值小于第二阈值且持续时长达到预设时长,向第二终端发送第二参数调节指令,第二参数调节指令用于第二终端调大向第一终端发送视频帧的投屏参数。

本公开实施例提供的装置,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,向第二终端发送第一参数调节指令,使得第二终端调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

图7示出了本公开一个示例性实施例提供的终端700的结构框图。该终端700可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端700包括有:处理器701和存储器702。

处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的视频投屏方法。

在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。

外围设备接口703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路704用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏705用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。

定位组件708用于定位终端700的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件708可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。

加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3d动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器713可以设置在终端700的侧边框和/或显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商logo时,指纹传感器714可以与物理按键或厂商logo集成在一起。

光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制显示屏705的显示亮度。具体地,当环境光强度较高时,调高显示屏705的显示亮度;当环境光强度较低时,调低显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。

接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制显示屏705从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本公开实施例提供的终端,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数况,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

本公开实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现图2至图4中任一所述的视频投屏方法。该计算机可读存储介质可以是非暂态的。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开实施例提供的计算机可读存储介质,在视频帧的接收时间戳与发送时间戳之间的差值大于第一阈值时,接收第一参数调节指令,并基于第一参数调节指令,调小向第一终端发送视频帧的投屏参数,从而基于调小后的投屏参数,向第一终端发送视频帧。由于视频帧的接收时间戳与发送时间戳之间的差值能够反映出当前网络状况,因而基于视频帧的接收时间戳与发送时间戳对投屏参数进行调节,在网络状况不佳时,缩短了画面延迟,提高了画面质量。

另外,本公开实施例基于收发两端协商去实时调节投屏参数况,可以更及时地解决环境网络拥塞带来的影响,让投屏画面的降级更丝滑,避免延迟累积的发生。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1