一种媒体流的播放处理方法及装置与流程

文档序号:16149569发布日期:2018-12-05 17:16阅读:215来源:国知局

本发明涉及通信技术领域,尤其涉及一种媒体流的播放处理方法及装置。

背景技术

在视频直播过程中,会遇到很多异常状况,例如,推流端的接入网络质量差或网络中断、中央处理器资源占用过高、机器温度过热、系统崩溃、推流软件退后台(例如,手机直播过程中接电话)等。这些异常状况会导致观看端播放器产生严重卡顿、画面定格或黑屏,有些观看端播放器甚至在异常状况结束后都不能恢复,必须手动刷新或重置。

在现有技术中,针对因推流端的异常导致播放器无法自动恢复播放的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供一种媒体流的播放处理方法及装置,以解决因媒体流帧率过低或断流导致播放器无法自动恢复播放的问题。

第一方面,本发明实施例提供了一种媒体流的播放处理方法。该方法包括:在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输所述第二图像组。

第二方面,本发明实施例还提供一种媒体流的播放处理装置。该装置包括:补帧模块,用于在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输模块,用于传输所述第二图像组。

第三方面,本发明实施例还提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被执行时实现上述的媒体流的播放处理方法中的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的媒体流的播放处理方法中的步骤。

这样,本发明实施例中,通过在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输所述第二图像组。通过在第一图像组不满足播放端持续播放条件时,将来自媒体流的能够被独立解码的第一图像帧补入第一图像组,使得补入第一图像帧的第一图像组能够满足播放端持续播放条件,从而可以维持播放器持续稳定播放,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器。

附图说明

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

图1是本发明实施例提供的媒体流播放系统的结构图;

图2是本发明实施例提供的媒体流的播放处理方法的流程图;

图3是本发明实施例提供的第一图像帧补入第一图像组的示意图;

图4是本发明又一实施例提供的第一图像帧补入第一图像组的示意图;

图5是本发明又一实施例提供的媒体流的播放处理方法的流程图;

图6是本发明实施例提供的媒体流的播放处理装置的结构图;

图7是本发明又一实施例提供的媒体流的播放处理装置的结构图;

图8是本发明实施例提供的电子设备的结构图。

具体实施方式

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

为了便于描述,以下对本发明实施例涉及的一些术语进行解释:

图像组:groupofpictures,简称为gop,是指一组连续的、编码后的图像,以i帧开始,至下一个i帧结束。一个gop中通常包括i帧、p帧和b帧,其中,p帧和b帧在gop里具有严格的时间序列和参考关系。

帧内编码图像帧:intracodedpictureframe,简称为i帧,也称为关键帧,编码时不依赖任何其他图像帧的数据。

前向预测编码图像帧:predictivecodedpictureframe,简称为p帧,仅包含上一帧的运动补偿残差信息,解码p帧图像需要依赖上一帧的数据。

双向预测编码帧:bi-directionalinterpolatedpredictionframe,简称为b帧,编码时既需要考虑与上一帧的差别信息,也需要考虑与下一帧的差别信息。

根据本发明实施例,提供了一种媒体流的播放处理方法,在待传输的图像组不满足播放端持续播放条件时,向其补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足播放端持续播放条件的图像组,以使播放端持续播放。

可选的,在本实施例中,上述媒体流的播放处理方法可以应用于如图1所示的由推流端01、服务器02、和观看端03所构成的硬件环境中。如图1所示,服务器02与推流端01、观看端03可以通过网络进行连接,上述网络包括但不限于:广域网、城域网或局域网。推流端01和观看端03可以是pc、手机、平板电脑等。

具体的,推流端01可以将编码后的媒体流推送至服务器02,服务器02可以将接收到的媒体流进行转码等处理,传输给观看端03,或者经由中间源、分发源、cdn节点等模块将媒体流分发给多个观看端03,从而使得多个观看端03可以将媒体流进行解码播放。本发明实施例的媒体流的播放处理方法可以由推流端01执行,也可以由服务器02执行。

可选的,本发明实施例中媒体流的播放处理方法可以在媒体流被分发之前执行,从而使得观看该媒体流的所有观看端均可以持续稳定播放。

需要说明的是,本发明具体实施例不管在哪个网元中执行都能够提高播放端持续播放的可能性。

需要说明的是,图1所示的硬件环境还可以根据需求包含其他的硬件模块,本发明实施例的媒体流的播放处理方法也可以由其他的硬件模块执行,本实施例对此不做限定。

参见图2,图2是本发明实施例提供的媒体流的播放处理方法的流程图,如图2所示,包括以下步骤:

步骤201、在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组。

本实施例中,在媒体流传输过程中,将媒体流编码成一个个的图像组依次进行传输,可选的,上述媒体流可以是符合h.264规范的媒体流。播放端持续播放条件可以是维持播放器稳定持续播放的条件,例如,维持播放器播放时不会出现黑屏、严重卡屏或是播放失败等无法自动恢复的问题。可选的,播放端持续播放条件可以是维持播放器持续稳定播放的帧率。

本实施例中,能够被独立解码的图像帧是指解码时无需依赖媒体流中其他图像帧的数据就能够解码出完整图像的图像帧。第一图像帧为媒体流中能够被独立解码的图像帧,例如,图像组中的关键帧。

例如,参见图1,若推流端01出现异常状况导致第一图像组帧率过低,则可以向第一图像组中补入第一图像帧,以使补入第一图像帧的第一图像组满足播放器持续稳定播放的条件。

步骤202、传输所述第二图像组。

具体的,本实施例可以在推流端01出现异常状况导致媒体流中的图像帧丢失时,通过向媒体流中补入能够被独立解码的图像帧,从而可以向播放器持续传输满足播放端持续播放条件的媒体流,维持播放器持续稳定播放。

本实施例中,当检测到缓存的待传输的第一图像组不满足所述播放端持续播放条件,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输所述第二图像组。通过在第一图像组不满足播放端持续播放条件时,将来自媒体流的能够被独立解码的第一图像帧补入第一图像组,使得补入第一图像帧的第一图像组能够满足播放端持续播放条件,从而可以维持播放器持续稳定播放,减少了由于暂时断流或是帧率过低引起的播放器无法修复的错误,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器。

此外,由于能够维持播放器持续稳定播放,从而服务器无需不断地处理因播放器播放失败用户发送的各种刷新、访问等请求,减少了服务器的负担。

可选的,参见图1,上述步骤201和步骤202可以是在推流端01中执行,也可以是在服务器02中执行。具体的,可以在推流端01向服务器02传输第一图像组之前,先检测第一图像组是否满足播放端持续播放条件,在检测出第一预设图像组不满足播放端持续播放条件时,向第一图像组中补入第一图像帧,以使补入第一图像帧的第一图像组满足播放器持续稳定播放的条件,并将补入第一图像帧的第一图像组传输给服务器02。也可以在服务器02向观看端03传输第一图像组之前,先检测第一图像组是否满足播放端持续播放条件,在检测出第一预设图像组不满足播放端持续播放条件时,向第一图像组中补入第一图像帧,以使补入第一图像帧的第一图像组满足播放器持续稳定播放的条件,并将补入第一图像帧的第一图像组传输给观看端03。

可选的,本实施例可以通过比较第一图像组中相邻两个图像帧之间的平均时间间隔是否超过预设值来判断第一图像组是否满足播放端持续播放条件,例如,若第一图像组中相邻两个图像帧之间的平均时间间隔超过预设值,则确定第一图像组不满足播放端持续播放条件,若第一图像组中相邻两个图像帧之间的平均时间间隔未超过预设值,则确定第一图像组满足播放端持续播放条件。

可选的,本实施例也可以通过检测所述第一图像组的帧率是否小于预设帧率来判断第一图像组是否满足播放端持续播放条件。

具体的,本实施例的媒体流的播放处理方法还包括:在所述第一图像组的帧率小于预设帧率时,确定所述第一图像组不满足所述播放端持续播放条件;在所述第一图像组的帧率大于或等于所述预设帧率时,确定所述第一图像组满足所述播放端持续播放条件。

具体的,媒体流中的各个图像组分别对应一个播放时长,例如,1秒、2秒,甚至更长的时间(与不同的标准以及标准的演进相关)等。图像组中相邻两个图像帧的平均时间间隔,也即图像组的播放时长与图像组中图像帧的数量的比值。图像组的帧率可以是图像组中图像帧的数量与播放时长的比值,例如,媒体流中的各个图像组对应1秒的播放时长,第一图像组包括5个图像帧,则第一图像组中相邻两个图像帧的平均时间间隔为200ms,第一图像组的帧率为5帧/秒。

本实施例中,预设帧率可以根据实际情况进行设置,例如,5帧/秒、8帧/秒等。本实施例通过检测第一图像组的帧率的大小来判断是否需要向第一图像组中补帧,实现简单高效,并在第一图像组的帧率较低时向第一图像组中补帧,从而可以避免播放器播放时因帧率过低或是断流导致播放器播放失败。

在上述步骤201中,可选的,补入所述第一图像组的所述第一图像帧可以为:

从所述媒体流中提取并存储的图像帧;或

缓存的至少一个图像组中的图像帧。

本实施例可以将接收到的来自流媒体的能够被独立解码的图像帧存储至预设的存储空间,从而在需要向第一图像组补入图像帧时,可以直接从预设的存储空间中获取能够被独立解码的图像帧并补入第一图像组,操作便捷,效率较高。

而在实际情况中,在媒体流传输过程中通常会缓存至少一个图像组,如当前待传输的第一图像组。因此,本实施例也可以从缓存的至少一个图像组中获取能够被独立解码的图像帧并补入第一图像组,操作便捷,效率较高。而且相比于从预设的存储空间中获取能够被独立解码的图像帧并补入第一图像组,无需设置额外的存储空间。

本实施例中,可以采用缓存的至少一个图像组中的图像帧,而当缓存的图像组超过一个时,能够被独立解码的图像帧可能是一个,也可能是多个。当能够被独立解码的图像帧是一个时,则可以将该能够被独立解码的图像帧作为第一图像帧,当能够被独立解码的图像帧是多个时,则可以从多个能够被独立解码的图像帧中获取任意一个能够被独立解码的图像帧作为第一图像帧。

可选的,所述缓存的至少一个图像组中的图像帧中包括多个能够被独立解码的图像帧时,所述补入所述第一图像组的所述第一图像帧为:所述多个能够被独立解码的图像帧中任意一个能够被独立解码的图像帧。

本实施例中,若所述缓存的至少一个图像组中的图像帧中包括多个能够被独立解码的图像帧时,例如,第一图像组中的能够被独立解码的图像帧和位于第一图像组之后的图像组中的能够被独立解码的图像帧,则可以从多个能够被独立解码的图像帧中获取任意一个能够被独立解码的图像帧并补入第一图像组,例如,可以获取第一图像组中的能够被独立解码的图像帧并补入第一图像组,也可以获取位于第一图像组之后的图像组中的能够被独立解码的图像帧并补入第一图像组。

可选的,补入所述第一图像组的所述第一图像帧属于所述媒体流中位于所述第一图像组之后的图像组时,所述第一图像帧补入所述第一图像组的尾帧之后,否则补入所述第一图像组的起始帧之前。

由于媒体流中的各个图像组具有时序性,为了提高媒体流播放的连续性和流畅性,若第一图像帧属于所述媒体流中位于所述第一图像组之后的图像组,则将第一图像帧补入所述第一图像组的尾帧之后,若第一图像帧属于所述第一图像组,则将所述第一图像帧补入所述第一图像组的起始帧之前。

例如,预设帧率为5帧/秒,第一图像组包括i1p1b1三帧图像,若第一图像帧为媒体流中位于所述第一图像组之后的图像组的i2帧,则补入第一图像帧的第一图像组可以为i1p1b1i2i2,若第一图像帧为第一图像组的i1帧,则补入第一图像帧的第一图像组可以为i1i1i1p1b1。

以下以具体示例对本实施例进行说明:

当缓存中仅包括图像组1,其中,图像组1为当前待传输的图像组,图像组1包括i1p1b1三帧图像,参见图3,将图像组1的关键帧i1补入图像组1的起始帧之前。

当缓存中包括图像组1和图像组2,其中,图像组1为当前待传输的图像组,图像组2为图像组1之后的一个图像组,图像组1包括i1p1b1三帧图像,参见图4,将图像组2的关键帧i2补入图像组1的尾帧之后。

当缓存中包括图像组1、图像组2和图像组3时,其中,图像组1为当前待传输的图像组,图像组2为图像组1之后的一个图像组,图像组3为图像组2之后的一个图像组,图像组1包括i1p1b1三帧图像,参见图4,将图像组2的关键帧i2补入图像组1的尾帧之后。

可选的,在所述传输所述第二图像组之前,所述方法还包括:向所述第二图像组中不存在对应的音频帧的图像帧,补入静音帧;

相应的,所述传输所述第二图像组包括:将所述第二图像组中的各个图像帧和所述第二图像组中的各个图像帧对应的音频帧按照时间戳对齐传输。

具体的,媒体流通常包括视频流和音频流,为了使播放时视频流和音频流能够同步,视频流中各个图像帧和音频流的各个音频帧均设置有时间戳,从而可以根据时间戳同步播放图像帧和音频帧。

本实施例中,对于第二图像组中存在对应音频帧的图像帧,则可以将图像帧和音频帧按照时间戳对齐传输,而对于第二图像组中不存在对应的音频帧的图像帧,例如,补入第一图像组的第一图像帧,则可以补入静音帧,并将该静音帧和图像帧按照时间戳对齐传输。

需要说明的是,为了提高媒体流播放的流畅性,可以在启动媒体流传输后先缓存至少2个图像组,之后再进行图像组传输。

需要说明的是,上述实施例中的各个实现方式可以任意组合。

由上可知,本实施例通过在当前待传输的第一图像组帧率较低时向第一图像组中补入能够独立解码图像帧,得到满足预设帧率的第二图像组,从而可以维持播放器的持续稳定输出,减少由于暂时断流或是帧率过低引起的播放器无法修复的错误,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器,极大地提升了视频直播的稳定性和观看体验,实现简单,成本较低,而且兼容性较好。

参见图5,图5是本发明又一实施例提供的媒体流的播放处理方法的流程图,如图5所示,包括以下步骤:

步骤501、缓存至少一个图像组。

可选的,为了提高媒体流播放的流畅性,本实施例可以在启动媒体流传输时,先缓存至少2个图像组。在缓存至少2个图像组后,在执行步骤502。

步骤502、检测缓存的至少一个图像组中当前待传输的第一图像组是否满足预设帧率。

本实施例中,若检测到所述第一图像组小于预设帧率,则执行步骤503。可选的,若检测到所述第一图像组大于或等于预设帧率,则可以直接传输所述第一图像组。

步骤503、检测是否接收到媒体流中位于所述第一图像组之后的图像组的i帧。

本实施例在第一图像组的帧率小于预设帧率时,检测是否接收到媒体流中位于所述第一图像组之后的图像组的i帧,其中,i帧为可解码的i帧,也即未被损坏的i帧。若检测到已接收到所述媒体流中位于所述第一图像组之后的图像组的i帧,执行步骤504,若检测到未接收到所述媒体流中位于所述第一图像组之后的图像组的i帧,执行步骤505。

步骤504、将位于所述第一图像组之后的图像组的i帧补入所述第一图像组的尾帧之后,得到满足所述预设帧率的第二图像组。

例如,预设帧率为5帧/秒,第一图像组包括i1p1b1三帧图像,若接收到媒体流中位于所述第一图像组之后的图像组的i2帧,则将i2帧补入第一图像组,补入i2帧的第一图像组可以为i1p1b1i2i2。

需要说明的是,本实施例也可以使补入i帧的第一图像组的帧率大于预设帧率。例如,上述补入i2帧的第一图像组也可以为i1p1b1i2i2i2i2。

可选的,若接收到多个位于第一图像组之后的图像组的i帧,此时可以优先获取第一图像组后一个图像组的i帧补入第一图像组。

步骤505、将所述第一图像组的i帧补入所述第一图像组的起始帧之前,得到满足所述预设帧率的第二图像组。

例如,预设帧率为5帧/秒,第一图像组包括i1p1b1三帧图像,若未接收到媒体流中位于所述第一图像组之后的图像组的i帧,则将第一图像组的i1帧补入第一图像帧,补入i1帧的第一图像组可以为i1i1i1p1b1。

步骤506、传输所述第二图像组。

需要说明的是,本实施例可以在未接收到媒体流中位于所述第一图像组之后的图像组的i帧时,可以将第一图像组的i帧补入第一图像组,得到满足预设帧率的第二图像组。传输时仅传输第二图像组的i帧并补静音帧,直至接收到媒体流中位于所述第一图像组之后的图像组的i帧后,在传输第二图像组其他的图像帧(例如,b帧和p帧)和音频包,以提高媒体流播放时的连续性和流畅性。

需要说明的是,本实施例在媒体流传输过程中重复执行上述步骤502至步骤506,直至媒体流传输结束。

需要说明的是,参见图1,上述步骤501至步骤506可以由推流端01执行,也可以由服务器02执行。

由上可知,本实施例通过将在当前待传输的图像组帧率较低时向待传输的图像组中补入i帧,得到满足预设帧率的待传输的图像组,从而可以维持播放器的持续稳定输出,减少由于暂时断流或是帧率过低引起的播放器无法修复的错误,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器,极大地提升了视频直播的稳定性和观看体验,实现简单,成本较低,而且兼容性较好。

参见图6,图6是本发明实施提供的媒体流的播放处理装置的结构图,如图6所示,媒体流的播放处理装置600包括补帧模块601和传输模块602,其中:

补帧模块601,用于在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;

传输模块602,用于传输所述第二图像组。

可选的,参见图7,所述媒体流的播放处理装置600还包括:确定模块603,用于在所述第一图像组的帧率小于预设帧率时,确定所述第一图像组不满足所述播放端持续播放条件;在所述第一图像组的帧率大于或等于所述预设帧率时,确定所述第一图像组满足所述播放端持续播放条件。

可选的,补入所述第一图像组的所述第一图像帧为:从所述媒体流中提取并存储的图像帧;或缓存的至少一个图像组中的图像帧。

可选的,所述缓存的至少一个图像组中的图像帧中包括多个能够被独立解码的图像帧时,所述补入所述第一图像组的所述第一图像帧为:所述多个能够被独立解码的图像帧中任意一个能够被独立解码的图像帧。

可选的,所述补入所述第一图像组的所述第一图像帧属于所述媒体流中位于所述第一图像组之后的图像组时,所述第一图像帧补入所述第一图像组的尾帧之后,否则补入所述第一图像组的起始帧之前。

可选的,所述媒体流为符合h.264规范的媒体流,所述第一图像帧为关键帧。

可选的,所述补帧模块601还用于:向所述第二图像组中不存在对应的音频帧的图像帧,补入静音帧;

相应的,所述传输模块602具体用于:将所述第二图像组中的各个图像帧和所述第二图像组中的各个图像帧对应的音频帧按照时间戳对齐传输。

本实施例的媒体流的播放处理装置600能够执行前述任一方法实施例中的媒体流的播放处理方法,为避免重复,这里不再赘述。

本发明实施例的媒体流的播放处理装置600,通过补帧模块601在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输模块602传输所述第二图像组。通过在第一图像组不满足播放端持续播放条件时,将来自媒体流的能够被独立解码的第一图像帧补入第一图像组,使得补入第一图像帧的第一图像组能够满足播放端持续播放条件,从而可以维持播放器稳定播放,减少了由于暂时断流或是帧率过低引起的播放器无法修复的错误,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器。

参见图8,图8是本发明实施提供的电子设备的结构图,如图8所示,电子设备800包括:至少一个处理器801、存储器802、至少一个网络接口804和用户接口803。电子设备800中的各个组件通过总线系统805耦合在一起。可理解,总线系统805用于实现这些组件之间的连接通信。总线系统805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统805。

其中,用户接口803可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。

可以理解,本发明实施例中的存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的系统和方法的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器802存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8021和应用程序8022。

其中,操作系统8021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序8022,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序8022中。

在本发明实施例中,通过调用存储器802存储的程序或指令,具体的,可以是应用程序8022中存储的程序或指令,处理器801用于:在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输所述第二图像组。

上述本发明实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成上述方法的步骤。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

可选的,处理器801还用于:在所述第一图像组的帧率小于预设帧率时,确定所述第一图像组不满足所述播放端持续播放条件;在所述第一图像组的帧率大于或等于所述预设帧率时,确定所述第一图像组满足所述播放端持续播放条件。

可选的,补入所述第一图像组的所述第一图像帧为:从所述媒体流中提取并存储的图像帧;或缓存的至少一个图像组中的图像帧。

可选的,所述缓存的至少一个图像组中的图像帧中包括多个能够被独立解码的图像帧时,所述补入所述第一图像组的所述第一图像帧为:所述多个能够被独立解码的图像帧中任意一个能够被独立解码的图像帧。

可选的,所述补入所述第一图像组的所述第一图像帧属于所述媒体流中位于所述第一图像组之后的图像组时,所述第一图像帧补入所述第一图像组的尾帧之后,否则补入所述第一图像组的起始帧之前。

可选的,所述媒体流为符合h.264规范的媒体流,所述第一图像帧为关键帧。

可选的,处理器801还用于:在所述传输所述第二图像组之前,向所述第二图像组中不存在对应的音频帧的图像帧,补入静音帧;

相应的,处理器801执行所述传输所述第二图像组包括:将所述第二图像组中的各个图像帧和所述第二图像组中的各个图像帧对应的音频帧按照时间戳对齐传输。

电子设备800能够执行上述任一方法实施例中的媒体流的播放处理方法,为避免重复,这里不再赘述。

本发明实施例的电子设备800,通过在缓存的至少一个图像组中当前待传输的第一图像组不满足播放端持续播放条件时,向所述第一图像组中补入已接收到的来自媒体流的能够被独立解码的第一图像帧,得到满足所述播放端持续播放条件的第二图像组;传输所述第二图像组。通过在第一图像组不满足播放端持续播放条件时,将来自媒体流的能够被独立解码的第一图像帧补入第一图像组,使得补入第一图像帧的第一图像组能够满足播放端持续播放条件,从而可以维持播放器稳定播放,减少了由于暂时断流或是帧率过低引起的播放器无法修复的错误,使播放器在异常状态结束后能自动恢复流畅播放,无需手动刷新或重置播放器。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个方法实施例中的媒体流的播放处理方法中的步骤。

在本发明的上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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