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

一种音视频输出方法及电子设备

文献发布时间:2024-07-23 01:35:21


一种音视频输出方法及电子设备

技术领域

本申请涉及音视频处理领域,尤其涉及一种音视频输出方法及电子设备。

背景技术

在将视频进行无线投屏的过程中,其视频的来源通常为发送端设备的屏幕上的内容,发送端设备播放视频内容,在投屏时,首先将视频内容解码,之后利用图形显示数据合成服务SurfaceFlinger将解码后的视频内容与发送端设备的屏幕上显示的其他内容进行合并,之后才能进行编码并输出,即需要将视频内容与屏幕上显示的其他内容进行合并,这就导致投屏过程出现不必要的延迟及功耗。

发明内容

有鉴于此,本申请提供一种音视频输出方法及电子设备,其具体方案如下:

一种音视频输出方法,包括:

根据第一设备中的目标音视频流,确定所述目标音视频流的第一码流参数;

获得第二设备支持的至少一种第二码流参数;

将所述第一码流参数与各所述第二码流参数进行比对,得到比对结果;

至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备。

进一步的,所述至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备,包括:

如果所述比对结果表征所述第一码流参数与至少一种所述第二码流参数匹配,生成与所述目标音视频流的码流对应的传输流,将所述传输流输出至所述第二设备。

进一步的,所述至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备,包括:

如果所述比对结果表征所述第一码流参数与每一个所述第二码流参数不匹配,对所述目标音视频流的码流进行码流参数调整,以获得符合至少一种所述第二码流参数的目标码流,生成所述符合所述第二码流参数的目标码流对应的传输流,将所述传输流输出至所述第二设备。

进一步的,在所述码流为视频码流的情况下,所述目标音视频流为目标视频流,所述如果所述比对结果表征所述第一码流参数与所述第二码流参数不匹配,对所述目标音视频流的码流进行码流参数调整,以获得符合至少一种所述第二码流参数的目标码流,包括:

如果所述比对结果表征所述第一码流参数中的第一编码格式与所述第二码流参数中的第二编码格式不匹配,对所述目标视频流的码流进行解码,将解码后的码流编码成符合所述第二编码格式的码流;

如果所述比对结果表征所述第一码流参数中的第一帧率与所述第二码流参数中的第二帧率不匹配,对所述目标视频流的码流进行解码,调整解码后的码流的帧率为所述第二帧率,将调整帧率后的码流进行编码;

如果所述比对结果表征所述原第一码流参数中的第一分辨率与所述第二码流参数中的第二分辨率不匹配,对所述目标视频流的码流进行解码,调整解码后的码流的分辨率为所述第二分辨率,将调整分辨率后的码流进行编码。

进一步的,在所述目标音视频流的码流包括视频码流及音频码流的情况下,所述至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备,包括:

如果所述比对结果表征所述目标音视频流的音频码流的第一音频码流参数与第二音频码流参数匹配,生成与所述目标音视频流的视频码流及音频码流对应的传输流,将所述传输流输出至所述第二设备。

进一步的,在所述目标音视频流的码流包括视频码流及音频码流的情况下,所述至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备,包括:

如果所述比对结果表征所述目标音视频流的音频码流的第一音频码流参数与第二音频码流参数不匹配,对所述音频码流进行解码,将解码后的音频码流编码成符合第二音频编码参数的音频码流,生成所述符合所述第二音频码流参数的目标音频码流对应的传输流,将所述传输流输出至所述第二设备。

进一步的,所述如果所述比对结果表征所述目标音视频流的音频码流的第一音频码流参数与第二音频码流参数不匹配,对所述音频码流进行解码,将解码后的音频码流编码成符合第二音频编码参数的音频码流,包括:

如果所述比对结果表征所述目标音视频流的第一音频码流参数中的第一音频编码格式与所述第二音频码流参数中的第二音频编码格式不匹配,对所述音频码流进行解码,将解码后的音频码流编码成符合所述第二音频编码格式的音频码流;

如果所述比对结果表征所述目标音视频流的第一音频码流参数中的第一音频采样率与所述第二音频码流参数中的第二音频采样率不匹配,对所述音频码流进行解码,重新采样后,编码成符合所述第二音频采样率的音频码流。

进一步的,所述基于所述比对结果生成传输流,将所述传输流输出至所述第二设备,包括:

如果确定所述第二设备不支持字幕码流,获得字幕文件的字幕码流;

将基于所述比对结果确定的视频码流与所述字幕码流通过透明度混合方式混合,获得目标码流,其中,所述透明度混合方式能够将所述视频码流对应的图像与所述字幕码流对应的图像混合,形成一个图像;

基于所述目标码流生成传输流,输出所述传输流至所述第二设备。

进一步的,所述基于所述比对结果生成传输流,包括:

如果确定所述第二设备支持第一形式字幕码流,确定所述码流信息中包括字幕码流,将基于所述比对结果得到的视频码流及字幕码流打包生成传输流;

如果确定所述第二设备支持第一形式字幕码流,获得字幕文件的字幕码流,将所述字幕码流与基于所述比对结果得到的视频码流打包生成传输流;

如果确定所述第二设备支持第二形式字幕码流,获得字幕码流,生成所述字幕码流对应的补充增强信息,将所述补充增强信息与所述视频码流合并后,生成传输流。

一种电子设备,包括:

处理器,用于根据电子设备中的目标音视频流,确定所述目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数;将所述第一码流参数与各所述第二码流参数进行比对,得到比对结果;至少基于所述比对结果生成传输流,将所述传输流输出至所述第二设备;

存储器,用于存储所述处理器执行上述处理过程的程序。

附图说明

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

图1为本申请实施例公开的一种音视频输出方法的流程图;

图2为本申请实施例公开的一种音视频输出方法的流程图;

图3为本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图4为本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图5为本申请实施例公开的一种音视频输出方法的流程图;

图6为本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图7为本申请实施例公开的一种音视频输出方法的流程图;

图8本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图9本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图10本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图11为本申请实施例公开的一种将目标音视频流从第一设备传输至第二设备的示意图;

图12为本申请实施例公开的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请公开了一种音视频输出方法,其流程图如图1所示,包括:

步骤S11、根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;

步骤S12、获得第二设备支持的至少一种第二码流参数;

步骤S13、将第一码流参数与各第二码流参数进行比对,得到比对结果;

步骤S14、至少基于比对结果生成传输流,将传输流输出至第二设备。

在将音视频进行无线投屏的过程中,视频的来源通常为发送端设备的屏幕:发送端设备播放音视频,首先将视频解码,之后通过图形显示数据合成服务SurfaceFlinger将解码后的视频内容与发送端设备的屏幕上显示的其他内容进行合并之后,再编码为接收端设备支持的码流;对于音频,也需要先解码,经过音频数据合成服务AudioFlinger后,进行重新编码。

这一过程中引入了图形显示数据合成服务SurfaceFlinger及音频数据合成服务AudioFlinger,需要进行编码解码,与其他内容合并,这就导致音视频投屏过程中增加了不必要的功耗和延时。

基于此,本方案中,直接确定第一设备中的目标音视频流的第一码流参数,并与第二设备支持的第二码流参数进行比对,从而生成第二设备能够支持的传输流,并输出至第二设备,本方案中是直接从第一设备中获得目标音视频流的第一码流参数,而不是从第一设备的显示屏上获得,无需使用图形显示数据合成服务SurfaceFlinger及音频数据合成服务AudioFlinger,无需与其他内容合并即可得到目标音视频流的第一码流参数,减少了不必要的编码解码过程,减少了将目标音视频流投屏至第二设备的过程中的功耗和延时,提高了用户体验。

其中,目标音视频流,即源音视频流。

确定需要投屏至第二设备的目标音视频流,确定该目标音视频流的第一码流参数。

可具体的,在确定需要投屏至第二设备的目标音视频流后,可根据目标音视频流的格式创建对应的媒体提取器Extractor,从媒体提取器Extractor中获取目标音视频流的第一码流,第一码流中包括如:分辨率、帧率、编码格式等信息。

直接根据目标音视频流确定其码流参数,目标音视频流无需在第一设备上显示或播放,也就无需与显示屏上的其他内容合并,减少了与显示屏上的其他内容合并时的解码编码的过程。

在获得需要传输至第二设备的目标音视频流的第一码流参数后,还需要确定第二设备能够支持的第二码流参数,第二设备能够支持的第二码流参数可以为1个,也可以为多个,第二码流参数中可以包括如:分辨率、帧率、编码格式等信息。

在确定需要被投屏至第二设备的目标音视频流的第一码流参数,以及第二设备能够支持的第二码流参数后,就需要将第一码流参数与第二码流参数进行比对,获得比对结果,以便基于比对结果确定第一码流参数是否能够被第二设备支持,从而确定是否需要对目标音视频流的码流参数进行调整。

在获得比对结果后,基于比对结果生成传输流,即基于比对结果确定是否需要对目标音视频流进行调整,若需要调整,对目标音视频流进行调整后,将目标音视频流调整为传输流TS文件,并将传输流作为实施传输协议RTP负载,通过无线直连Wifi P2P方式传输至第二设备,即实现了将第一设备中的目标音视频流投屏至第二设备中,并且,直接从目标音视频流确定其第一码流参数,而无需经过第一设备的显示屏显示,减少了图形显示数据合成服务SurfaceFlinger及音频数据合成服务AudioFlinger的处理过程,提高了目标音视频流的传输效率,减少了功耗及延时。

本实施例公开了一种音视频输出方法,根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数,将第一码流参数与各第二码流参数进行比对,得到比对结果,至少基于比对结果生成传输流,将传输流输出至第二设备。本方案中直接确定需要传输至第二设备的目标音视频流的第一码流参数,并基于此获得传输流,将其传输至第二设备,实现了直接基于目标音视频流的码流参数生成第二设备支持的传输流,无需从第一设备所显示或播放的内容中确定目标音视频流,避免了从第一设备显示或播放的内容中确定目标音视频流时需要与第一设备输出的其他显示内容或音频进行合并的过程,减少了目标音视频流从第一设备输出至第二设备时的延迟或功耗。

本实施例公开了一种音视频输出方法,其流程图如图2所示,包括:

步骤S21、根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;

步骤S22、获得第二设备支持的至少一种第二码流参数;

步骤S23、将第一码流参数与各第二码流参数进行比对,得到比对结果;

步骤S24、如果比对结果表征第一码流参数与至少一种第二码流参数匹配,生成与目标音视频流的码流对应的传输流,将传输流输出至第二设备。

在确定需要输出至第二设备进行投屏显示的目标音视频流后,确定目标音视频流的第一码流参数,确定第二设备支持的第二码流参数,比对第一码流参数与第二码流参数是否匹配,得到比对结果。

比对结果中可以包括第一码流参数与第二码流参数匹配的结果,以及第一码流参数与第二码流参数不匹配的结果。对比对结果进行分析,确定当前的目标音视频流的第一码流参数与第二设备的第二码流参数是否匹配。

如果确定第一码流参数与第二码流参数匹配,则表明第二设备能够支持目标音视频流的码流参数,此时,可无需对目标音视频流的第一码流参数进行调整,直接将第一码流参数的目标音视频流转换成传输流后,传输至第二设备即可。

此时,将目标音视频流从第一设备传输至第二设备的示意图,可以如图3所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,传输流打包器TSPacketizer,实时传输协议源端RTP Source,第二设备包括:实时传输协议接收端RTPSink,分离器Demuxer,视频解码器VideoDecoder,音频解码器AudioDecoder,视频渲染VideoRender,音频输出AudioRender。

如果第一码流参数与第二码流参数匹配,则其流程可以为:在第一设备端通过媒体源MediaSource获得目标音视频流,通过媒体提取器Extractor提取目标音视频流的原始码流,确定第一码流参数,如果第一码流参数与第二码流参数匹配,则直接将目标音视频流的原始码流中的音频码流Audio及视频码流Video发送至传输流打包器TS Packetizer,重新打包成传输流的格式,并通过实时传输协议源端RTP Source将传输流通过Wifi P2P方式传输至第二设备的实时传输协议接收端RTP Sink,实时传输协议接收端RTP Sink将接收到的传输流发送至分离器Demuxer,将传输流分离成视频流及音频流,通过视频解码器VideoDecoder将视频流解码后发送至视频渲染VideoRender,通过音频解码器AudioDecoder将音频流解码后发送至音频输出AudioRender,以便第二设备对其进行输出。

本实施例公开了一种音视频输出方法,根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数,将第一码流参数与各第二码流参数进行比对,得到比对结果,如果比对结果表征第一码流参数与至少一种第二码流参数匹配,生成与目标音视频流的码流对应的传输流,将传输流输出至第二设备。本方案中如果确定第一码流参数与第二码流参数匹配,则无需对目标音视频流的码流参数进行调整,无需进行编码与解码的过程;在直接从目标音视频流确定第一码流参数的基础上,第一码流参数与第二码流参数匹配,在这种情况下,将目标音视频流从第一设备输出至第二设备,整个过程无需进行编码与解码,提高了目标音视频流的传输效率,减少了音视频流在传输过程中的功耗及延时。

进一步的,本实施例公开的音视频输出方法,还可以包括:

如果比对结果表征第一码流参数与每一个第二码流参数不匹配,对目标音视频流的码流进行码流参数调整,以获得符合至少一种第二码流参数的目标码流,生成符合第二码流参数的目标码流对应的传输流,将传输流输出至第二设备。

如果确定第一码流参数与任一第二码流参数均不匹配,则需要对目标音视频流的码流参数进行调整,以使得调整之后的目标音视频流的码流参数能够与至少一个第二码流参数匹配,以使得第二设备能够支持调整码流参数之后的目标音视频流,保证第二设备对目标音视频流进行输出时的输出效果。

其中,第一码流参数与第二码流参数不匹配,可以为:第一码流参数中的编码格式与第二码流参数中的编码格式不匹配,也可以为:第一码流参数中的分辨率与第二码流参数中的分辨率不匹配,或者,可以为:第一码流参数中的帧率与第二码流参数中的帧率不匹配,或者,还可以为:第一码流参数中的分辨率、帧率及编码格式中的至少两个与第二码流参数中的不匹配。

具体的,如果第二码流参数为多个,以2个为例进行说明,可以为:第一码流参数中的分辨率与第二码流参数1中的分辨率不匹配,第一码流参数中的帧率与第二码流参数2中的帧率不匹配;或者,第一码流参数中的编码格式与第二码流参数1中的编码格式不匹配,第一编码参数中的编码格式与第二码流参数2中的编码格式不匹配等。

以编码格式不匹配为例进行说明,即第一码流参数中的第一编码格式与第二码流参数中的第二编码格式不匹配,但是,第一码流参数中的分辨率及帧率均与第二码流参数中匹配,此时,对目标音视频流的码流进行解码,将解码后的码流编码成符合第二编码格式的码流。

则将目标音视频流从第一设备传输至第二设备的示意图,可以如图4所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,视频解码器VideoDecoder1,音频解码器AudioDecoder1,视频编码器VideoEncoder1,音频编码器AudioEncoder1,传输流打包器TS Packetizer,实时传输协议源端RTP Source,第二设备包括:实时传输协议接收端RTP Sink,分离器Demuxer,视频解码器VideoDecoder2,音频解码器AudioDecoder2,视频渲染VideoRender,音频输出AudioRender。

如果第一码流参数的编码格式与第二码流参数的编码格式不匹配,则其流程可以为:在第一设备端通过媒体源MediaSource获得目标音视频流,通过媒体提取器Extractor提取目标音视频流的原始码流,确定第一码流参数,由于第一码流参数的编码格式与第二码流参数的编码格式不匹配,则将目标音视频流的原始码流中的音频码流Audio通过第一设备的音频解码器AudioDecoder1进行解码,并通过第一设备的音频编码器AudioEncoder1将其重新编码成与第二码流参数中的编码格式匹配的音频码流,将目标音视频流的原始码流中的视频码流Video通过第一设备的视频解码器VideoDecoder1进行解码,并通过视频编码器VideoEncoder1将其重新编码成与第二码流参数中的编码格式匹配的视频码流;之后,将重新解码及编码的音频码流及视频码流发送至传输流打包器TS Packetizer,重新打包成传输流的格式,并通过实时传输协议源端RTP Source将传输流通过Wifi P2P方式传输至第二设备的实时传输协议接收端RTP Sink,实时传输协议接收端RTP Sink将接收到的传输流发送至分离器Demuxer,将传输流分离成视频流及音频流,通过第二设备的视频解码器VideoDecoder2将视频流解码后发送至视频渲染VideoRender,通过音频解码器AudioDecoder2将音频流解码后发送至音频输出AudioRender,以便第二设备对其进行输出。

例如:目标音视频流的编码格式为AV1编码,而第二设备支持的编码格式为H.264/H.265编码,则需将目标音视频流的码流解码并重新编码成H.264/H.265格式的码流,从而使得第二设备能够支持目标音视频流的编码格式。

另外,如果比对结果表征第一码流参数中的第一帧率与第二码流参数中的第二帧率不匹配,对目标音视频流的码流进行解码,调整解码后的码流的帧率为第二帧率,将调整帧率后的码流进行编码。

如果第一码流参数中的第一帧率与第二码流参数中的第二帧率不匹配,则需在第一设备中增加帧率转换器(Frame Rate Converter,FRC),在通过解码器将目标音视频流的码流解码后,通过帧率转换器RFC调整目标音视频流的码流的帧率,将其帧率调整为第二帧率,之后重新编码,并通过传输流打包器TS Packetizer,重新打包成传输流的格式,并输出至第二设备,以便第二设备能够对接收到的目标音视频流进行显示或播放。

如果比对结果表征第一码流参数中的第一分辨率与第二码流参数中的第二分辨率不匹配,对目标音视频流的码流进行解码,调整解码后的码流的分辨率为第二分辨率,将调整分辨率后的码流进行编码。

如果第一码流参数中的第一分辨率与第二码流参数中的第二分辨率不匹配,则需在第一设备中增加视频缩放器Video Scaler,首先通过视频解码器将目标音视频流进行解码后,通过视频缩放器Video Scaler将目标音视频流解码出的视频码流进行分辨率的调整,将其缩放到第二设备能够支持的分辨率,如直接将第一分辨率调整为第二分辨率,之后再重新编码,并通过传输流打包器TS Packetizer,重新打包成传输流的格式,并输出至第二设备,以便第二设备能够对接收到的目标音视频流进行显示或播放。

例如:目标音视频流的第一分辨率为8K,而第二设备支持的第二分辨率为4K,则需将目标音视频流进行解码,下采样到4K后重新编码之后,再传输至第二设备,第二设备即可实现对目标音视频流的播放。

另外,如果目标音视频流的第一码流参数中的帧率及分辨率与第二码流参数均不匹配,则需首先将目标音视频流进行解码,之后由帧率转换器RFC调整码流的帧率,再通过视频缩放器Video Scaler调整码流的分辨率,之后对调整帧率及分辨率后的码流进行重新编码,并在打包后发送至第二设备,以便第二设备能够实现对调整之后的目标音视频流的播放。

本实施例公开了一种音视频输出方法,其流程图如图5所示,包括:

步骤S51、根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;

步骤S52、获得第二设备支持的至少一种第二码流参数;

步骤S53、将第一码流参数与各第二码流参数进行比对,得到比对结果;

步骤S54、如果比对结果表征目标音视频流中的音频码流的第一音频码流参数与第二设备的第二音频码流参数匹配,生成与目标音视频流的视频码流及音频码流对应的传输流,将传输流输出至第二设备。

在确定需要输出至第二设备进行投屏显示的目标音视频流后,确定目标音视频流的第一码流参数,确定第二设备支持的第二码流参数,比对第一码流参数与第二码流参数是否匹配,得到比对结果。

比对结果中可以包括第一码流参数与第二码流参数匹配的结果,以及第一码流参数与第二码流参数不匹配的结果。对比对结果进行分析,确定当前的目标音视频流的第一码流参数与第二设备的第二码流参数是否匹配。

如果目标音视频流中包括视频文件及音频文件,则在确定目标音视频流的第一码流参数与第二设备的第二码流参数是否匹配时,需确定视频流的第一视频码流参数与第二设备的第二视频码流参数是否匹配,同时,还需确定音频流的第一音频码流参数与第二设备的第二音频码流参数是否匹配。

只有当第一视频码流参数与第二视频码流参数匹配,同时,第一音频码流参数与第二音频码流参数匹配时,才能够确定第一码流参数与第二码流参数匹配;如果第一视频码流参数与第二视频码流参数匹配,同时,第一音频码流参数与第二音频码流参数不匹配,则可确定第一码流参数与第二码流参数不匹配;或者,第一音频码流参数与第二音频码流参数匹配,而第一视频码流参数与第二视频码流参数不匹配,则确定第一码流参数与第二码流参数不匹配。

如果第一视频码流参数与第二视频码流参数匹配,则可按照上述实施例的方式,无需对视频码流进行调整,可直接生成与目标音视频流的码流对应的传输流,并将传输流输出至第二设备;

如果第一视频码流参数与第二视频码流参数不匹配,则可按照上述实施例的方式调整视频码流的码流参数,以使得第二设备能够支持其接收到的目标音视频流;

如果第一音频码流参数与第二音频码流参数匹配,则无需对音频码流进行调整,在第一视频码流参数与第二视频码流参数匹配时,直接生成与目标音视频流的音频码流及视频码流对应的传输流,并将传输流输出至第二设备;

如果第一音频码流参数与第二音频码流参数不匹配,对音频码流进行解码,将解码后的音频码流编码成符合第二音频编码参数的音频码流,生成符合第二音频码流参数的目标音频码流对应的传输流,将传输流输出至第二设备。

音频码流参数中至少包括:音频编码格式及音频采样率,在确定第一音频码流参数与第二音频码流参数是否匹配时,需分别确定第一音频码流参数中的音频编码格式与第二音频码流参数中的音频编码格式是否匹配,以及,第一音频码流参数中的音频采样率与第二音频码流参数中的音频采样率是否匹配。

如果确定第一音频码流参数中的第一音频编码格式与第二音频码流参数中的第二音频编码格式不匹配,对音频码流进行解码,将解码后的音频码流编码成符合第二音频编码格式的音频码流。

如果第一音频码流参数与第二音频码流参数中不匹配的仅为音频编码格式,则在提取出目标音视频流中的音频码流参数后,直接将音频码流参数进行解码后,重新编码即可,只要按照第二音频码流参数中的第二音频编码格式对音频码流参数进行重新编码,即可得到符合第二设备支持的音频码流,以便目标音视频流中的音频文件能够被第二设备输出。

如果确定第一音频码流参数中的第一音频采样率与第二音频码流参数中的第二音频采样率不匹配,对目标音视频流中的音频码流进行解码,重新采样后,编码成符合第二音频采样率的音频码流。

如果第一音频码流参数与第二音频码流参数中不匹配的仅为音频采样率,则在提取出目标音视频流中的音频码流参数后,直接将音频码流参数进行解码,之后进行重新采样,重新采样时按照第二音频码流参数中的第二音频采样率进行采样,再重新编码,即可得到符合第二设备的第一音频码流,以便目标音视频流中的音频流能够被第二设备输出。

那么,本实施例公开的音视频输出方法所基于的第一设备,要实现将目标音视频流从第一设备传输至第二设备的示意图,可以如图6所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,视频解码器VideoDecoder1,帧率转换器RFC,视频缩放器Video Scaler,视频编码器VideoEncoder1,音频解码器AudioDecoder1,重采样器Resampler,音频编码器AudioEncoder1,传输流打包器TS Packetizer,实时传输协议源端RTP Source;图6中并未示出第二设备的示意图。

通过图6所示的示意图,能够实现目标音视频流中的视频码流参数与第二设备的视频码流参数不匹配时,对目标音视频流的视频码流进行调整的过程,也能够实现目标音视频流中的音频码流参数与第二设备的音频码流参数不匹配时,对目标音视频流的音频码流进行调整的过程。

本实施例公开了一种音视频输出方法,根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数,将第一码流参数与各第二码流参数进行比对,得到比对结果,如果比对结果表征目标音视频流中的音频码流的第一音频码流参数与第二设备的第二音频码流参数匹配,生成与目标音视频流的视频码流及音频码流对应的传输流,将传输流输出至第二设备。本方案中如果确定第一音频码流参数与第二音频码流参数匹配,则无需对目标音视频流中的音频的码流参数进行调整,无需对音频码流进行编码与解码的过程,提高了目标音视频流的传输效率,减少了音视频流在传输过程中的功耗及延时。

本实施例公开了一种音视频输出方法,其流程图如图7所示,包括:

步骤S71、根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;

步骤S72、获得第二设备支持的至少一种第二码流参数;

步骤S73、将第一码流参数与各第二码流参数进行比对,得到比对结果;

步骤S74、如果确定第二设备不支持字幕码流,获得字幕文件的字幕码流;

步骤S75、将基于比对结果确定的视频码流与字幕码流通过透明度混合方式混合,获得目标码流信息,其中,透明度混合方式能够将视频码流对应的图像与字幕码流对应的图像混合,形成一个图像;

步骤S76、基于目标码流信息生成传输流,输出传输流至第二设备。

在对音视频流进行播放时,音视频流中可能包括字幕文件,也可能不包括字幕文件,第二设备要实现对第一设备输出的音视频流的播放,第二设备可能支持字幕码流,也可能不支持字幕码流。

如果第二设备不支持字幕码流,而目标音视频流中包括字幕文件,或者存在单独的字幕文件用于提供字幕,那么,就需要对字幕文件进行解码,之后将解码后的字幕码流与解码后的视频码流通过透明度混合方式混合在一起,之后通过编码的形式,得到一个视频码流,这样在将打包后的传输流输出至第二设备后,第二设备中并不能识别到其中的字幕码流,而是仅有视频码流,如果目标视频流中存在音频流,则第二设备中还能够识别到音频码流,第二设备能够正常对视频码流及音频码流进行播放。

采用透明度混合方式,能够将字幕码流与视频码流混合形成一个视频码流,即将视频码流对应的图像与字幕码流对应的图像混合形成一个图像,混合之后编码并打包后的传输流中并不存在字幕码流,所以第二设备能够正常播放,字幕码流对应的内容作为图像码流对应的图像中的一部分,与视频码流对应的图像一起输出。

对于将目标音视频流及字幕文件从第一设备传输至第二设备的示意图,可以如图8所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,视频解码器VideoDecoder,帧率转换器RFC,视频缩放器Video Scaler,视频编码器VideoEncoder,字幕源SubtitleSource,字幕解码器SubtitleDecoder,透明度混合器AlphaBlender,传输流打包器TS Packetizer,实时传输协议源端RTP Source。图8中仅示出了第一设备的内部结构,并且,对于目标音视频流中的音频码流信息,在图8中并未示出,其可具体参见图6所示。

字幕文件可来源于目标音视频流,即目标音视频流中可包括字幕文件,从目标音视频流中可提取出视频码流及字幕码流;字幕文件也可以来源于字幕源SubtitleSource,由字幕源SubtitleSource提供字幕码流,由目标音视频流提供视频码流。

无论字幕码流是来源于目标音视频流,还是字幕源SubtitleSource,当字幕解码器SubtitleDecoder获得字幕码流后,将其传输至透明度混合器AlphaBlender,视频解码器VideoDecoder获得视频码流,对其进行解码,将解码后的视频码流传输至透明度混合器AlphaBlender,由透明度混合器AlphaBlender将解码后的字幕码流及解码后的视频码流进行混合,混合之后,通过视频编码器VideoEncoder进行编码,之后,将重新编码的码流发送至传输流打包器TS Packetizer,重新打包成传输流的格式,并通过实时传输协议源端RTPSource将传输流通过Wifi P2P方式传输至第二设备,使得字幕与视频合在一起,通过第二设备能够实现对该视频码流的播放。

其中,需要说明的是,如果视频码流的码流参数与第二设备的码流参数不匹配,则需要将解码后的视频码流经过帧率转换器RFC,视频缩放器Video Scaler调整之后再输出至透明度混合器AlphaBlender。

进一步的,如果第二设备能够支持扩展字幕码流,则需确定第二设备支持的是哪一种形式的扩展字幕码流。

具体的,如果第二设备支持第一形式字幕码流,确定码流中包括字幕码流,将基于比对结果得到的视频码流及字幕码流打包生成传输流。

第一形式字幕码流可以为:单独路径形式,此时,字幕码流是从目标音视频流中提取出的字幕码流。

将目标音视频流从第一设备传输至第二设备的示意图,可以如图9所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,传输流打包器TS Packetizer,实时传输协议源端RTP Source;第二设备中可包括:实时传输协议接收端RTP Sink,分离器Demuxer,视频解码器VideoDecoder,音频解码器AudioDecoder,字幕解码器SubtitleDecoder,视频渲染VideoRender,音频输出AudioRender,字幕蒙版TextOverlay。

图9所示的实施例中以目标音视频流的第一码流参数与第二设备的第二码流参数匹配为例进行说明,若不匹配时,则需在第一设备中增加相应的编码器、解码器、帧率转换器等。

通过媒体提取器Extractor能够将目标音视频流中的视频码流Video,音频码流Audio及字幕码流Subtitle提取出来,并在确定目标音视频流的第一码流参数与第二设备的第二码流参数匹配后,通过传输流打包器TS Packetizer打包生成传输流后,通过实时传输协议源端RTP Source将传输流传输至第二设备的实时传输协议接收端RTP Sink,分离器Demuxer将传输流分离成视频码流、音频码流及字幕码流后,分别通过相应的解码器进行解码后,通过相应的供应器进行输出,从而实现了通过第二设备对第一设备传输的目标音视频流的投屏播放。

另外,如果第二设备支持第一形式字幕码流,获得字幕文件的字幕码流,将字幕码流与基于比对结果得到的视频码流打包生成传输流。

第一形式字幕码流可以为:单独路径形式,此时,字幕码流是外挂字幕,即通过单独的字幕源接口SubtitleSource传输的字幕码流信息。

将目标音视频流从第一设备传输至第二设备的示意图,可以如图10所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,字幕源SubtitleSource,传输流打包器TS Packetizer,实时传输协议源端RTP Source。第二设备内部结构并未在图10中示出。

图10中所示的实施例中,字幕码流subtitle是由字幕源SubtitleSource提供的,媒体源MediaSource提供目标音视频流,通过媒体提取器Extractor从目标音视频流中提取出音频码流Audio及视频码流Video后,通过传输流打包器TS Packetizer将音频码流Audio、视频码流Video以及字幕码流subtitle打包形成传输流后,通过实时传输协议源端RTP Source输出至第二设备,以使第二设备能够对音频码流Audio、视频码流Video以及字幕码流subtitle进行输出播放。

进一步的,如果确定第二设备支持第二形式字幕码流,获得字幕码流,生成字幕码流对应的补充增强信息,将补充增强信息与视频码流合并后,生成传输流。

第二形式字幕码流,可以为:补充增强形式,即将字幕码流以补充增强形式SEI负载视频码流中,此时,字幕码流可以为:从目标音视频流中提取出的字幕码流,也可以为单独的字幕源提供的字幕码流。

将目标音视频流从第一设备传输至第二设备的示意图,可以如图11所示,包括:第一设备包括:媒体源MediaSource,媒体提取器Extractor,字幕源SubtitleSource,封装复用器NaluMuxer,传输流打包器TS Packetizer,实时传输协议源端RTP Source;第二设备中可包括:实时传输协议接收端RTP Sink,分离器Demuxer,视频解码器VideoDecoder,音频解码器AudioDecoder,字幕解码器SubtitleDecoder,视频渲染VideoRender,音频输出AudioRender,字幕蒙版TextOverlay。

图11中所示的实施例中,字幕码流subtitle可以由字幕源SubtitleSource提供,也可以由媒体提取器Extractor从目标音视频流中提取出来,媒体源MediaSource提供目标音视频流,通过媒体提取器Extractor从目标音视频流中提取出音频码流Audio及视频码流Video后,将音频码流Audio直接发送至传输流打包器TS Packetizer,将视频码流Video及字幕码流subtitle输出至封装复用器NaluMuxer,通过封装复用器NaluMuxer实现利用补充增强SEI的形式将字幕码流subtitle与视频码流Video合并后,通过封装Nalu的形式输出至传输流打包器TS Packetizer;通过传输流打包器TS Packetizer将音频码流Audio、视频码流Video以及字幕码流subtitle打包形成传输流后,通过实时传输协议源端RTP Source输出至第二设备,以使第二设备能够对音频码流Audio、视频码流Video以及字幕码流subtitle进行输出播放,在第二设备通过视频解码器VideoDecoder进行解码时,将补充增强形式的字幕码流subtitle从封装后的码流中解码出来后,分别通过相应的解码器对视频码流Video及字幕码流subtitle进行解码,以实现第二设备对对第一设备传输的目标音视频流的投屏播放。

本实施例公开了一种音视频输出方法,根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数;将第一码流参数与各第二码流参数进行比对,得到比对结果;如果确定第二设备不支持字幕码流,获得字幕文件的字幕码流;将基于比对结果确定的视频码流与字幕码流通过透明度混合方式混合,获得目标码流,其中,透明度混合方式能够将视频码流对应的图像与字幕码流对应的图像混合,形成一个图像;基于目标码流生成传输流,输出传输流至第二设备。本方案中在第二设备不支持字幕码流时,将字幕码流与视频码流通过透明度混合方式混合,以获得目标码流,实现通过第二设备对包括字幕的视频码流的输出,提高了用户体验。

本实施例公开了一种电子设备,其结构示意图如图12所示,包括:

处理器121及存储器122。

其中,处理器121用于根据电子设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数;将第一码流参数与各第二码流参数进行比对,得到比对结果;至少基于比对结果生成传输流,将传输流输出至第二设备;

存储器,用于存储处理器执行上述处理过程的程序。

本实施例所公开的电子设备即上述实施例所涉及的第一设备,在某些情况下,电子设备作为第一设备使用,而在某些情况下,电子设备也可作为第二设备使用,在此并不做具体限定。

本实施例公开的电子设备是基于上述实施例公开的音视频输出方法实现的,在此不再赘述。

本实施例公开了一种电子设备,根据第一设备中的目标音视频流,确定目标音视频流的第一码流参数;获得第二设备支持的至少一种第二码流参数,将第一码流参数与各第二码流参数进行比对,得到比对结果,至少基于比对结果生成传输流,将传输流输出至第二设备。本方案中直接确定需要传输至第二设备的目标音视频流的第一码流参数,并基于此获得传输流,将其传输至第二设备,实现了直接基于目标音视频流的码流参数生成第二设备支持的传输流,无需从第一设备所显示或播放的内容中确定目标音视频流,避免了从第一设备显示或播放的内容中确定目标音视频流时需要与第一设备输出的其他显示内容或音频进行合并的过程,减少了目标音视频流从第一设备输出至第二设备时的延迟或功耗。

本申请实施例还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现上述音视频输出方法的各步骤,具体实现过程可以参照上述实施例相应部分的描述,本实施例不做赘述。

本申请还提出了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述音视频输出方法方面的各种可选实现方式中所提供方法,具体实现过程可以参照上述相应实施例的描述,不做赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种控制显示器屏幕输出亮度的方法、装置及电子设备
  • 音视频输出设备数据检测方法
  • 一种电子设备的操作控制方法及电子设备
  • 一种电子设备的输入方法、输入装置及电子设备
  • 网呈会场的音视频输出方法、电子设备及存储介质
  • 一种电子设备的输出方法、输出控制装置及电子设备
技术分类

06120116679657