首页 / 专利库 / 多媒体工具与应用 / 媒体流 / 播放媒体流的方法、服务器及终端

播放媒体流的方法、服务器及终端

阅读:706发布:2020-05-08

专利汇可以提供播放媒体流的方法、服务器及终端专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种播放 媒体流 的方法、 服务器 及终端,属于通信领域。所述方法包括:终端向服务器发送携带有 视频流 分片的分片标识的获取 请求 ,所述视频流分片是所述终端已接收的所述服务器发送的视频流中包括的视频流分片;所述服务器根据所述视频流分片的分片标识,获取所述视频流的起始时间;所述服务器根据所述起始时间获取所述视频流对应的 音频流 ;所述服务器向所述终端发送所述音频流;所述终端接收所述音频流,播放所述视频流和所述音频流。本申请解决了相关技术中终端播放不出声音或者播放的声音与视频画面不一致的问题,保证终端播放的声音与视频画面一致。,下面是播放媒体流的方法、服务器及终端专利的具体信息内容。

1.一种播放媒体流的方法,其特征在于,所述方法包括:
服务器接收终端发送的携带有视频流分片的分片标识的获取请求,所述视频流分片是所述服务器已发送给所述终端的视频流中包括的视频流分片;
所述服务器根据所述视频流分片的分片标识,获取所述视频流的起始时间;
所述服务器根据所述起始时间获取所述视频流对应的音频流
所述服务器向所述终端发送所述音频流,以使所述终端播放所述视频流和所述音频流;
其中,所述服务器已发送给所述终端的视频流为第一码率的第一视频流;
所述方法还包括:
在所述服务器停止向所述终端发送所述第一视频流并向所述终端发送第二码率的第二视频流时,所述服务器向所述终端发送通知消息,所述通知消息携带所述第一视频流的最后一个数据包的序号和所述第二视频流的第一个数据包的序号,所述第一码率小于所述第二码率。
2.如权利要求1所述的方法,其特征在于,所述视频流包括至少一路音频流的描述信息,所述获取请求还携带一路音频流的描述信息;
所述服务器根据所述起始时间获取所述视频流对应的音频流,包括:
所述服务器根据所述一路音频流的描述信息确定所述一路音频流;
所述服务器根据所述起始时间,从所述一路音频流中获取所述视频流对应的音频流。
3.如权利要求1或2所述的方法,其特征在于,所述服务器接收终端发送的携带有视频流分片的分片标识的获取请求之前,所述方法还包括:
所述服务器向所述终端发送实时传输控制协议RTCP包,所述RTCP包的分片时间戳字段携带所述视频流分片的分片标识。
4.如权利要求1所述的方法,其特征在于,所述通知消息为服务端终端通知SCN报文,所述SCN报文包括旧序号字段和新序号字段,所述旧序号字段携带所述最后一个数据包的序号,所述新序号字段携带所述第一个数据包的序号。
5.一种频道切换的方法,其特征在于,所述方法包括:
终端向服务器发送携带有视频流分片的分片标识的获取请求,所述视频流分片是所述终端已接收的所述服务器发送的视频流中包括的视频流分片;
所述终端接收所述服务器根据所述分片标识发送的音频流,所述音频流的起始时间和所述视频流的起始时间相同;
所述终端播放所述视频流和所述音频流;
其中,所述终端已接收的视频流为第一码率的第一视频流;
所述方法还包括:
所述终端接收所述服务器发送的第二码率的第二视频流和通知消息,所述第二码率大于所述第一码率,所述通知消息携带所述第一视频流的最后一个数据包的序号和所述第二视频流的第一个数据包的序号;
所述终端根据所述通知消息播放所述第二视频流。
6.如权利要求5所述的方法,其特征在于,所述视频流包括至少一路音频流的描述信息;
所述终端向所述服务器发送携带有视频流分片的分片标识的获取请求,包括:
所述终端从所述至少一路音频流中选择的一路音频流的描述信息;
所述终端向所述服务器发送携带有所述视频流分片的分片标识和所述一路音频流的描述信息的获取请求。
7.如权利要求5或6所述的方法,其特征在于,在所述终端向所述服务器发送携带有视频流分片的分片标识的获取请求之前,还包括:
所述终端接收所述服务器发送的实时传输控制协议RTCP包,获取所述RTCP包的分片时间戳字段携带的所述视频流分片的分片标识。
8.如权利要求5所述的方法,其特征在于,所述通知消息为服务端终端通知SCN报文,所述SCN报文包括旧序号字段和新序号字段,所述旧序号字段携带所述最后一个数据包的序号,所述新序号字段携带所述第一个数据包的序号。
9.一种服务器,其特征在于,所述服务器包括:
接收单元,用于接收终端发送的携带有视频流分片的分片标识的获取请求,所述视频流分片是所述服务器已发送给所述终端的视频流中包括的视频流分片;
处理单元,用于根据所述视频流分片的分片标识,获取所述视频流的起始时间;根据所述起始时间获取所述视频流对应的音频流;
发送单元,用于向所述终端发送所述音频流,以使所述终端播放所述视频流和所述音频流;
其中,所述服务器已发送给所述终端的视频流为第一码率的第一视频流;
所述发送单元,还用于在停止向所述终端发送所述第一视频流并向所述终端发送第二码率的第二视频流时,向所述终端发送通知消息,所述通知消息携带所述第一视频流的最后一个数据包的序号和所述第二视频流的第一个数据包的序号,所述第一码率小于所述第二码率。
10.如权利要求9所述的服务器,其特征在于,所述视频流包括至少一路音频流的描述信息,所述获取请求还携带一路音频流的描述信息;
所述处理单元,还用于:
根据所述一路音频流的描述信息确定所述一路音频流;
根据所述起始时间,从所述一路音频流中获取所述视频流对应的音频流。
11.如权利要求9或10所述的服务器,其特征在于,所述发送单元,还用于向所述终端发送实时传输控制协议RTCP包,所述RTCP包的分片时间戳字段携带所述视频流分片的分片标识。
12.如权利要求9所述的服务器,其特征在于,所述通知消息为服务端终端通知SCN报文,所述SCN报文包括旧序号字段和新序号字段,所述旧序号字段携带所述最后一个数据包的序号,所述新序号字段携带所述第一个数据包的序号。
13.一种终端,其特征在于,所述终端包括:
发送单元,用于向服务器发送携带有视频流分片的分片标识的获取请求,所述视频流分片是所述终端已接收的所述服务器发送的视频流中包括的视频流分片;
接收单元,用于接收所述服务器根据所述分片标识发送的音频流,所述音频流的起始时间和所述视频流的起始时间相同;
处理单元,用于播放所述视频流和所述音频流;
其中,已接收的视频流为第一码率的第一视频流;
所述接收单元,还用于接收所述服务器发送的第二码率的第二视频流和通知消息,所述第二码率大于所述第一码率,所述通知消息携带所述第一视频流的最后一个数据包的序号和所述第二视频流的第一个数据包的序号;
所述处理单元,还用于根据所述通知消息播放所述第二视频流。
14.如权利要求13所述的终端,其特征在于,所述视频流包括至少一路音频流的描述信息;
所述处理单元,还用于从所述至少一路音频流中选择的一路音频流的描述信息;
所述发送单元,还用于向所述服务器发送携带有所述视频流分片的分片标识和所述一路音频流的描述信息的获取请求。
15.如权利要求13或14所述的终端,其特征在于,所述接收单元,还用于接收所述服务器发送的实时传输控制协议RTCP包,获取所述RTCP包的分片时间戳字段携带的所述视频流分片的分片标识。
16.如权利要求13所述的终端,其特征在于,所述通知消息为服务端终端通知SCN报文,所述SCN报文包括旧序号字段和新序号字段,所述旧序号字段携带所述最后一个数据包的序号,所述新序号字段携带所述第一个数据包的序号。

说明书全文

播放媒体流的方法、服务器及终端

技术领域

[0001] 本申请涉及通信领域,特别涉及一种播放媒体流的方法、服务器及终端。

背景技术

[0002] 在交互式网络电视(Internet Protocol Television,IPTV)系统中,用户可以利用诸如电视机、手机、平板电脑等终端观看电视节目。用户在观看某个频道的电视节目时,常常需要切换到另一个频道,观看该另一个频道的电视节目。为了便于说明,称该另一个频道为目标频道,终端可以通过如下方式获取目标频道的媒体流进行播放。
[0003] 目前出现了自适应码流的场景,终端可在该场景下切换到目标频道,该场景定义了每个频道的视频流包括高码率视频流和低码率视频流两种,且快速频道切换(Fast Channel Change,FCC)服务器中缓存有视频源发送的每个频道的高码率视频流和低码率视频流,这样在终端切换到目标频道时,FCC服务器可以根据需求选择一种视频流提供给终端播放。切换过程如下:FCC服务器接收该终端发送的用于切换到目标频道的播放请求后,为了使终端能够快速播放目标频道的电视节目,所以先向终端发送目标频道的低码率视频流,发送一段时间后为了提高终端播放画面的质量,再向终端发送目标频道的高码率视频流并通知终端加入目标频道的组播组。终端播放FCC服务器发送的高码率视频流,并加入目标频道的组播组,在接收到该组播组发送的音频流和视频流后播放该音频流和该视频流。
[0004] 在上述自适应码流的场景中FCC服务器向终端发送视频流,并没有涉及到音频流,这样可能导致终端无法播放出声音或者播放的声音与视频画面不一致的问题。发明内容
[0005] 为了解决现有技术中可能会导致终端播放不出声音或者播放的声音与视频画面不一致的问题,本申请的实施例提供了一种播放媒体流的方法、服务器及终端。所述技术方案如下:
[0006] 第一方面,提供了一种播放媒体流的方法,该方法包括:服务器接收终端发送的获取请求,该获取请求携带有其已发送给终端的视频流中的视频流分片的分片标识;服务器根据该分片标识确定其已发送给终端的视频流的起始时间,根据该起始时间获取该视频流对应的音频流;服务器向该终端发送该音频流,以使该终端播放该视频流和该音频流。由于服务器接收到终端发送的获取请求后,能够根据该获取请求中携带的分片标识,确定出其已发送给终端的视频流对应的音频流,该音频流和该视频流的起始时间相同,因此,终端同时播放该视频流和音频流时能够保证音视频同步,解决了相关技术中终端播放不出声音或者播放的声音与视频画面不一致的问题。
[0007] 在第一方面的一种可能的实现方式中,服务器向终端发送的视频流中包括至少一路音频流的描述信息,以便终端从中选择与自身能相符的一路音频流的描述信息,这样使得终端向服务器发送的获取请求还包括该一路音频流的描述信息;服务器在接收到该获取请求后,根据该获取请求中的分片标识确定其已发送给终端的视频流的起始时间;还根据该获取请求中的一路音频流的描述信息确定一路音频流,根据该起始时间从确定出该路音频流中获取该视频流对应的音频流。如此终端可以根据自身的能力获取与自身能力相符的音频流进行播放。
[0008] 在第一方面的一种可能的实现方式中,服务器在接收终端发送的携带有分片标识的获取请求之前,向终端发送实时传输控制协议(Real-time Transport Control Protocol,RTCP)包,该RTCP包的分片时间戳字段携带该分片标识。服务器通过向终端发送RTCP包,该RTCP包的分片时间戳字段携带该分片标识,以便终端向该服务器发送携带有该分片标识的获取请求,该获取请求用于向服务器请求获取该终端已接收到的视频流对应的音频流。
[0009] 在第一方面的一种可能的实现方式中,服务器已发送给终端的视频流为第一码率的第一视频流,该方法还包括:服务器在停止向终端发送第一视频流并向该终端发送第二码率的第二视频流时,第一码率小于第二码率,向终端发送通知消息,该通知消息携带第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号。由于终端接收到第一视频流的最后一个数据包后,接收到的是第二视频流的第一个数据包,该最后一个数据包的序号与该第一个数据包的序号不连续,为避免终端误判成数据包丢失,停止播放第二数据流,服务器向终端发送通知消息,以便终端根据该通知消息确定该最后一个数据包和第一个数据包是连续的数据包,从而正常从该第一个数据包开始播放第二视频流。
[0010] 在第一方面的一种可能的实现方式中,服务器向终端发送的通知消息为服务端终端通知(Server terminal notification,SCN)报文,该SCN报文包括旧序号字段和新序号字段,旧序号字段携带服务器向终端发送的第一视频流的最后一个数据包的序号,新序号字段携带服务器向终端发送的第二视频流的第一个数据包的序号。
[0011] 第二方面,提供了一种播放媒体流的方法,该方法包括:终端向服务器发送获取请求,该获取请求携带有其已接收的视频流中视频流分片的分片标识,以便服务器根据该获取请求发送该视频流对应的音频流,该音频流的起始时间和该视频流的起始时间相同;终端接收服务器发送的音频流,播放其接收到的视频流以及音频流。由于该视频流以及该音频流的起始时间相同,因此终端同时播放该视频流和音频流时能够保证音视频同步,解决了相关技术中终端播放不出声音或者播放的声音与视频画面不一致的问题。
[0012] 在第二方面的一种可能的实现方式中,终端从服务器接收到的视频流中包括至少一路音频流的描述信息,终端还从这些描述信息中选择自身能力相符的一路音频流的描述信息,其向服务器发送的获取请求还包括该一路音频流的描述信息,以从服务器获取与自身能力相符的音频流进行播放。
[0013] 在第二方面的一种可能的实现方式中,终端在向服务器发送携带有分片标识的获取请求之前,还接收到服务器发送的RTCP包,获取该RTCP包的分片时间戳字段携带该终端已接收到的视频流中视频流分片的分片标识,将该分片标识添加至该获取请求,使服务器接收到该获取请求后,根据该分片标识向该终端发送该终端已接收到的视频流对应的音频流。
[0014] 在第二方面的一种可能的实现方式中,终端已接收的视频流为第一码率的第一视频流,终端还接收服务器发送的第二码率的第二视频流,第二码率大于第一码率;终端还接收了服务器发送的通知消息,该通知消息携带两个序号,其中一个序号该第一视频流的最后一个数据包的序号,另一个序号为该第二视频流的第一个数据包的序号;根据该通知消息播放其接收到的第二视频流。由于终端接收到第一视频流的最后一个数据包后,接收到第二视频流的第一个数据包,该最后一个数据包的序号与该第一个数据包的序号不连续,为避免终端误判成数据包丢失,停止播放第二数据流,服务器向终端发送通知消息,该通知消息中包含该最后一个数据包的序号以及该第一个数据包的序号。以便终端根据该通知消息确定该最后一个数据包和第一个数据包是连续的数据包,从而正常从该第一个数据包开始播放第二视频流。
[0015] 在第二方面的一种可能的实现方式中,终端接收到的服务器发送的通知消息为SCN报文,SCN报文包括旧序号字段和新序号字段,旧序号字段携带该终端从服务器接收到的第一视频流的最后一个数据包的序号,新序号字段携带该终端从服务器接收到的第二视频流的第一个数据包的序号。
[0016] 第三方面,提供了一种播放媒体流的装置,该装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面中任意一种可能的实现方式所提供的播放媒体流的方法。
[0017] 第四方面,提供了一种播放媒体流的装置,该装置包括至少一个单元,该至少一个单元用于实现上述第二方面或第二方面中任意一种可能的实现方式所提供的播放媒体流的方法。
[0018] 第五方面,提供了一种服务器,该服务器包括:处理器和网络端口,处理器被配置为通过执行指令来实现上述第一方面或第一方面中任意一种可能的实现方式所提供的播放媒体流的方法。
[0019] 第六方面,提供了一种终端,该终端包括:处理器和网络端口,处理器被配置为通过执行指令来实现上述第二方面或第二方面中任意一种可能的实现方式所提供的播放媒体流的方法。
[0020] 第七方面,提供了一种播放媒体流的系统,系统中包括如上述第三方面或第五方面所提供的服务器,以及,如上述第四方面或第六方面所提供的终端。
[0021] 第八方面,提供了一种计算机可读介质,该计算机可读介质存储用于实现第一方面或第一方面的任意一种可能的实现方式所提供的播放媒体流的指令,或者,该计算机可读介质存储用于实现第二方面或第二方面的任意一种可能的实现方式所提供的播放媒体流的指令。附图说明
[0022] 图1是本发明一个示例性实施例提供的IPTV系统的结构示意图;
[0023] 图2是本发明一个示例性实施例提供的视频流分片以及音频流分片示意图;
[0024] 图3是本发明一个示例性实施例提供的服务器的结构示意图;
[0025] 图4是本发明一个示例性实施例提供的终端的结构示意图;
[0026] 图5是本发明一个示例性实施例提供的播放媒体流的方法的流程图
[0027] 图6是本发明一个示例性实施例提供的RTCP包的结构示意图;
[0028] 图7是本发明一个示例性实施例提供的SCN报文的结构示意图;
[0029] 图8是本发明另一个示例性实施例提供的服务器的结构示意图;
[0030] 图9是本发明另一个示例性实施例提供的终端的结构示意图。

具体实施方式

[0031] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0032] 请参考图1,其示出了本发明一个示例性实施例提供的IPTV系统的结构示意图。该IPTV系统包括:源服务器110、编码服务器120、组播服务器130、FCC服务器140以及终端150。
[0033] 源服务器110可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个计算服务中心。源服务器110包括至少一个频道中的每个频道的媒体流,该媒体流包括第二视频流和该第二视频流对应的音频流等,还可以包括字幕流等。源服务器110通过有线网络或者无线网络与编码服务器120相连接,可以向编码服务器120发送每个频道的媒体流。其中,频道可以包括电视频道、直播频道以及轮播频道等等。
[0034] 通常来讲,源服务器110中的媒体流是技术人员事先制作并上传到源服务器110上的。技术人员在制作媒体流时,可以制作第二视频流和该第二视频流对应的至少一路音频流,并且设置每路音频流的描述信息,且制作的第二视频流中包括设置的每路音频流的描述信息。音频流的描述信息可以包括该路音频流对应的播放语言、流标识和码率等信息。举例来讲,技术人员在制作第二视频流A时,除了制作第二视频流A,还为第二视频流A制作了两路音频流,其中一路是播放语言为中文的音频流,另一路是播放语言为英文的音频流,且制作完的第二视频流A中包括该两路音频流的描述信息。
[0035] 其中,通常技术人员制作的第二视频流的码率较高,所以第二视频流的清晰度较高。为了便于说明,称第二视频流的码率为第二码率。
[0036] 编码服务器120接收源服务器110发送的每个频道的媒体流。对于每个频道的媒体流,编码服务器120利用自适应码率(Adaptive Bit Rate,ABR)编码技术对该频道的媒体流包括的第二视频流进行降码生成至少一路第一视频流,该至少一路第一视频流中的每路第一视频流的第一码率互不相同,且均小于第二视频流的第二码率。所以每个频道对应一路第二视频流、至少一路第一视频流和至少一路音频流等。由于每路第一视频流都是通过对第二视频流进行降码得到的,所以第一视频流的清晰度小于第二视频流的清晰度。
[0037] 可选的,编码服务器120中存储有至少一个预设的第一码率,可以根据存储的至少一个第一码率,对该第二视频流进行降码得到至少一路第一视频流。
[0038] 编码服务器120通过有线网络或者无线网络与组播服务器130相连接,编码服务器120向组播服务器130发送每个频道的媒体流,向组播服务器130发送的每个频道的媒体流包括其从源服务器110接收到的一路第二视频流和至少一路音频流等内容外,还包括对该一路第二视频流进行降码得到的至少一路第一视频流。
[0039] 组播服务器130可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。组播服务器130通过有线网络或者无线网络分别与FCC服务器140以及终端150相连接。
[0040] 组播服务器130接收编码服务器120发送的每个频道的媒体流,将接收到的每个频道的媒体流实时转发给FCC服务器140。组播服务器130还针对每个频道维护一个组播组,向位于该组播组内的终端150发送该频道的媒体流。
[0041] FCC服务器140可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。FCC服务器140通过有线网络或者无线网络与终端150相连接。
[0042] 终端150可以包括智能电视、机顶盒、智能手机、平板电脑、智能电视、膝上型便携计算机和台式计算机等等,在启动时或在切换频道时,向FCC服务器140发送携带有目标频道的频道标识的播放请求,请求FCC服务器140发送目标频道的媒体流。
[0043] FCC服务器140,用于在接收到终端150发送播放请求后,根据该播放请求携带的目标频道的频道标识,向终端150发送目标频道对应的一路第一视频流和第一视频流包括的视频流分片的分片标识;接收终端150发送的携带有该分片标识的获取请求;根据该分片标识获取第一视频流对应的音频流,向终端150发送该音频流。
[0044] 终端150,用于接收FCC服务器140发送的第一视频流和该分片标识,向FCC服务器140发送携带有该分片标识的获取请求,接收FCC服务器140发送第一视频流对应的音频流,播放该第一视频流和该音频流。由于第一视频流的第一码率较低,小于第二码率,所以终端
150能够快速播放第一视频流。
[0045] FCC服务器140在开始发送该音频流之后的某个时间,会向终端150发送目标频道对应的第二视频流。由于第二视频流的第二码率大于第一视频流的第一码率,所以可以提高终端150播放视频画面的质量。
[0046] 终端150,还用于接收FCC服务器140发送的目标频道的第二视频流并播放第二视频流,同时还申请加入组播服务器130中的该目标频道对应的组播组,并接收组播服务器130发送的目标频道的第二视频流;当播放FCC服务器140发送的第二视频流和组播服务器
130发送的第二视频流相同时,播放组播服务器130发送的第二视频流。
[0047] 需要说明的是:编码服务器120在接收源服务器110发送的某个频道的媒体流时,还可以对该媒体流包括的第二视频流进行分片,使该第二视频流包括多个视频流分片,为每个视频流分片生成分片标识。另外,编码服务器120对该第二视频流进行降码得到的每路第一视频流也是由视频流分片组成。
[0048] 在第二视频流中的每个视频流分片对应第一视频流中的一个视频流分片。对于第二视频流中的任一个视频流分片,以及该视频流分片在第一视频流中对应的一个视频流分片,该两个视频流分片的起始时间、视频内容和分片标识均相同,但该两个视频流分片的清晰度不同以及包括的数据包的数目不同,位于第二视频流的视频流分片包括的数据包的数目多于位于第一视频流的视频流分片包括的数据包的数目。位于第二视频流的每个视频流分片包括的第一为用于解码视频流的关键帧,以及位于第一视频流的每个视频流分片包括的第一帧也为用于解码视频流的关键帧。该数据包可以为RTP数据包。
[0049] 请参见图2,以第一视频流中连续的4个视频流分片S11、S12、S13以及S14来举例说明,视频流分片S11在第二视频流中对应的视频流分片为S21,S11与S21的分片标识均为“1”;视频流分片S12在第二视频流中对应的视频流分片为S22,S12与S22的分片标识均为“2”;视频流分片S13在第二视频流中对应的视频流分片为S23,S13与S23的分片标识均为“3”;,视频流分片S14在第二视频流中对应的视频流分片为S24,S14在S24的分片标识均为“4”。
[0050] 在第二视频流中的每个视频分片包括的数据包数目大于该视频分片在一视频流中对应的视频流分片包括的数据包数目。举例来讲,仍旧参见图2,第一视频流中视频流分片S11包括的数据包的数量为2,小于视频流分片S21包括的数据包的数量4。
[0051] 另外,编码服务器120还可以将该媒体流包括的音频流进行分片,使该音频流包括多个音频流分片,为该音频流分片生成分片标识。第一视频流和第二视频流中的每个视频流分片对应音频流中的音频流分片,视频流分片和其对应的音频流分片的起始时间相同。
[0052] 编码服务器120对该媒体流包括的第一视频流、第二视频流和音频流进行分片后,才向组播服务器130发送该媒体流。
[0053] 还需要说明的是:组播服务器130在接收到编码服务器120发送的某个频道的媒体流后,可以给该媒体流中包括的第一视频流中的每个视频流分片添加时间戳,第二视频流中的每个视频流分片添加时间戳以及音频流包括的每个音频流分片添加时间戳。对于第一视频流中的任一视频流分片,该视频流分片和该视频流分片在第二视频流中对应的视频流分片,该两个视频流分片的时间戳相同,该视频流分片的时间戳和该视频流分片在音频流中对应的音频流分片的时间戳也相同。
[0054] 仍旧参见图2,与视频流分片S11以及视频流分片S21对应的音频流分片为S31,S11、S21以及S31三者对应的时间戳相同,因此S11与S21的视频内容相同,S31中的音频内容与该视频内容相对应。
[0055] 组播服务器130对该媒体流包括的第一视频流中的每个视频流分片、第二视频流中的每个分片以及音频流中的每个音频流分片分别添加时间戳信息后,向FCC服务器140以及终端150发送该媒体流。
[0056] 请参考图3,其示出了本发明一个示例性实施例提供的服务器的结构示意图,该服务器可以为图1所示实施例中的FCC服务器140,该服务器包括:处理器31、网络接口32、高速缓存器33以及存储器34。
[0057] 处理器31包括一个或者一个以上处理核心,处理器31通过运行软件程序以及模,从而执行各种功能应用以及数据处理
[0058] 网络接口32可以为多个,其中一部分网络接口32用于与组播服务器130进行通信,其中一部分网络接口32用于与终端150进行通信。
[0059] 高速缓存器33与处理器31相连,用于缓存从组播服务器130接收到的至少一个频道的媒体流,可以通过总线与网络接口32相连。
[0060] 存储器34与处理器31相连,比如,存储器34可以通过总线与处理器31相连;存储器23可用于存储软件程序以及模块。
[0061] 存储器34可以存储至少一个功能所需的应用程序模块35,应用程序模块35可以包含发送模块351、处理模块352、接收模块353等。处理器31通过运行发送模块351、处理模块352和接收模块353以执行图5中FCC服务器执行的相应步骤,具体参见对图5的描述。
[0062] 存储器34可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文:static random access memory,SRAM),电可擦除可编程只读存储器(英文:electrically erasable programmable read-only memory,EEPROM),可擦除可编程只读存储器(英文:erasable programmable read only memory,EPROM),可编程只读存储器(英文:programmable read only memory,PROM),只读存储器(英文:read only memory image,ROM),磁存储器,快闪存储器,磁盘或光盘。
[0063] 本领域技术人员可以理解,图3中所示出的服务器的结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0064] 请参考图4,其示出了本发明一个示例性实施例提供的终端的结构示意图。该终端可以图1所示实施例中的终端150。该终端包括:处理器41、网络接口42和存储器43。
[0065] 处理器41包括一个或者一个以上处理核心,处理器41通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。
[0066] 网络接口42可以为多个,其中一部分网络接口42用于与组播服务器130进行通信,其中一部分网络接口42用于与FCC服务器140进行通信。
[0067] 存储器43与处理器41相连,比如,存储器43可以通过总线与处理器41相连;存储器43可用于存储软件程序以及模块。
[0068] 存储器43可以存储至少一个功能所需的应用程序模块44,应用程序模块44可以包含发送模块441、处理模块442、接收模块443等。处理器41通过运行发送模块441、处理模块442和接收模块443以执行图5中终端执行的相应步骤,具体参见对图5的描述。
[0069] 存储器43可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如static SRAM,EEPROM,EPROM),PROM,ROM,磁存储器,快闪存储器,磁盘或光盘。
[0070] 本领域技术人员可以理解,图4中所示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0071] 请参考图5,其示出了本发明一个示例性实施例提供的播放媒体流的方法,该播放媒体流的方法应用于如图1所示的IPTV系统中,该播放媒体流的方法可以包括:
[0072] 步骤501,终端向FCC服务器发送携带有目标频道的频道标识的播放请求。
[0073] 终端可以在如下情况向FCC服务器发送播放请求,包括:
[0074] 第一、终端需要从当前播放的原频道切换到目标频道时向FCC服务器发送播放请求。
[0075] 在终端当前正在播放原频道的媒体流时,用户可以选择需要切换的目标频道。当终端检测到被选择的目标频道时,获取目标频道的频道标识,向FCC服务器发送携带有目标频道的频道标识的播放请求。
[0076] 当终端在检测到被选择的目标频道时,终端还断开其与组播服务器之间连接,以停止接收组播服务器发送的原频道的媒体流。
[0077] 第二、终端在启动时将预设的频道作为目标频道,并向FCC服务器发送播放请求,以请求加入目标频道。
[0078] 预设的频道可以是终端在出厂时设置的默认频道,或者是终端在最近上一次关闭时播放的频道。所以终端在当前启动时可以获取默认频道的频道标识或最近上一次关闭时播放的频道的频道标识,将获取的频道标识作为目标频道的频道标识,向FCC服务器发送携带有目标频道的频道标识的播放请求。
[0079] 步骤502,FCC服务器接收终端发送的播放请求,根据该播放请求携带的目标频道的频道标识向终端发送目标频道的第一视频流和该第一视频流包括的一个视频流分片的分片标识。
[0080] FCC服务器实时接收并缓存组播服务器发送的每个频道的媒体流,每个频道的媒体流包括的第一视频流、第二视频流以及至少一路音频流等。
[0081] 本步骤可以为:FCC服务器接收终端发送的播放请求,根据该播放请求中携带的目标频道的频道标识,确定FCC服务器缓存的目标频道的第一视频流,从FCC服务器缓存的目标频道的第一视频流中获取时间位于当前时间之前的一个关键帧,再从FCC服务器缓存的目标频道的第一视频流中获取该关键帧对应的时间至当前时间的第一视频流,并向终端发送获取的第一视频流和播放响应,该播放响应携带获取的第一视频流包括的视频流分片的分片标识。
[0082] FCC服务器获取关键帧的方式有多种,例如,可以从FCC服务器缓存的目标频道的第一视频流中获取时间位于当前时间之前且离当前时间最近的一个关键帧,或者,随机获取一帧位于当前时间之前的关键帧。
[0083] FCC服务器在发送获取的第一视频流时,可以采用大于其接收目标频道的第一视频流的接收速率来发送获取的第一视频流。例如,在实现时,FCC服务器确定其当前接收组播服务器发送的目标频道的第一视频流的接收速率,根据预设的第一倍数和该接收速率计算出发送速率,按该发送速率向终端发送获取的第一视频流。第一倍数大于1,例如第一倍数可以为1.4、1.5、1.6等值,将该接收速率与第一倍数相乘得到该发送速率的大小。
[0084] FCC服务器发送获取的第一视频和发送播放响应的先后顺序,可以有如下几个种,一种是先发送播放响应,再发送获取的第一视频流;一种是同时向终端发送获取的第一视频流和播放响应。对于同时发送的情况,FCC服务器可以在开始发送获取的第一视频流的同时向终端发送该播放响应,或者在开始发送第一视频流之后的某个时刻向终端发送该播放响应。
[0085] 该播放响应中携带的分片标识为获取的第一视频流所包括的第n个视频流分片的分片标识,n为大于或等于1的正整数。通常情况下,n取值为1,也可以为2或3等值。
[0086] 该播放响应可以为一个RTCP包,参见图6,该RTCP包中包括默认/自适应码率(Fault Bitrate/Adaptive Bitrate)字段、当前单播同步信源的标识(SSRC of Current Unicast Burst)字段、用户网络协议地址(User Internet Protocol,User IP)字段、用户RTCP端口(User RTCPPort)字段、保留(Reserved)字段、标识字段(Representation ID)、带宽(Bandwidth)字段,以及还包括扩展的分片时间戳(Fragment Time Stamp)字段,该分片时间戳字段用于携带获取的第一视频流包括的一个视频流分片的分片标识。
[0087] 步骤503,终端接收FCC服务器发送的第一视频流和视频流分片的分片标识,向FCC服务器发送携带有该分片标识的获取请求。
[0088] 本步骤的实现可以为:终端接收FCC服务器发送的第一视频流和播放响应,从该播放响应中提取该第一视频流包括的视频分片的分片标识,向FCC服务器发送携带有该分片标识的获取请求。
[0089] 第一视频流中包括至少一路音频流的描述信息。终端可以根据自身的能力信息从该至少一路音频流的描述信息中选择一路音频流的描述信息,该获取请求还可以携带选择的该音频流的描述信息。
[0090] 终端的能力信息可以包括终端的带宽大小、终端解码能力和/或终端的硬件资源等。
[0091] 其中,如果第一视频流中包括一路音频流的描述信息或者终端选择的音频流为终端事先与FCC服务器默认的音频流,则该获取请求可以携带或不携带该一路音频流的描述信息,或该获取请求可以携带或不携带选择的默认音频流的描述信息。
[0092] 步骤504,FCC服务器接收终端发送的获取请求,根据该获取请求中的分片标识确定其已向终端发送的第一视频流的起始时间。
[0093] 本步骤可以为:FCC服务器接收终端发送的获取请求,提取该获取请求携带的分片标识,提取的分片标识为已向终端发送的第一视频流包括的第n个视频流分片的分片标识,根据提取的分片标识确定该第一视频流包括的第一个视频流分片的分片标识,根据该第一个视频流分片的分片标识获取该第一个视频流分片的时间戳,将第一个视频流分片的时间戳确定为已向终端发送的该第一视频流的起始时间。
[0094] 如果n=1,则可以将提取的分片标识作为第一个视频流分片的分片标识。如果n大于1,则根据提取的分片标识和数值n计算出第一个视频流分片的分片标识。
[0095] 通常情况下,该第一视频流中的视频流分片的分片标识是连续变化的,相邻两个视频流分片的分片标识的差值为数值1,所以对于上述计算分片标识的过程可以如下:若从获取请求中提取的分片标识为m,则该第一视频流中的第一个视频流分片的分片标识为m-n-1。
[0096] 步骤505,FCC服务器根据该起始时间获取该第一视频流对应的音频流,向终端发送该音频流。
[0097] 在FCC服务器接收的播放请求未携带音频流的描述信息时,表明存在两种情况,第一种为第一视频流只包括一路音频流的描述信息,即目标频道只对应一路音频流;第二种为终端选择了事先与FCC服务器约定的默认音频流的描述信息。
[0098] 此时本步骤可以为:当为上述第一种情况时,FCC服务器确定其缓存的目标频道对应的一路音频流,从其缓存该一路音频流中获取该起始时间至当前时间的音频流,向终端发送获取的音频流。当为上述第二种情况时,FCC服务器从其缓存的目标频道对应的至少一路音频流中,确定默认音频流的描述信息对应的默认音频流,从默认音频流中获取该起始时间至当前时间的音频流,向终端发送获取的音频流。
[0099] 在FCC服务器接收的播放请求中携带音频流的描述信息时,本步骤可以为:FCC服务器从其缓存的目标频道对应的至少一路音频流中确定该音频流的描述信息对应的一路音频流,从确定的一路音频流中获取该起始时间至当前时间的音频流,向终端发送获取的音频流。
[0100] FCC服务器在发送获取的音频流时,可以采用大于其接收该音频流的接收速率来发送该音频流。例如,在实现时,FCC服务器确定其当前接收组播服务器发送的该音频流的接收速率,根据预设的第二倍数和该接收速率计算出发送速率,按该发送速率向终端发送该音频流。第二倍数大于1,例如第一倍数可以为1.4、1.5、1.6等值,将该接收速率与第二倍数相乘得到该发送速率的大小。第二倍数可以等于或不等于第一倍数。
[0101] 步骤506,终端接收FCC服务器发送的音频流,将已接收到的视频流和音频流提供给该终端上的播放器进行播放。
[0102] 由于终端接收到的音频流与视频流的起始时间相同,终端同时开始播放音频流和视频流即可保证目标频道的声音与视频画面同步。
[0103] 步骤507,FCC服务器在停止向终端发送第一视频流且开始向终端发送目标频道的第二视频时向终端发送通知消息,该通知消息携带第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号。
[0104] 其中,FCC服务器在开始向终端发送目标频道的第一视频流后,会不断且连续地向终端发送该第一视频流,同时FCC服务器也接收组播服务器发送的该第一视频流。当FCC服务器当前向终端发送的该第一视频流包括的数据包和其当前接收组播服务器发送的该第一视频流包括的数据包相同时,FCC服务器确定当前向终端发送的数据包所属的视频流分片,并在确定的视频流分片发送完时停止向终端发送该第一视频流。同时FCC服务器向终端发送目标频道的第二视频流,且第二视频流包括的第一个视频流分片是确定的视频流分片的下一个视频流分片。
[0105] 例如,参见图2,假设FCC服务器当前向终端送的第一视频流的数据包是序号为4的数据包,又假设FCC服务器当前接收到的第一视频流的数据包也是序号为4的数据包,则FCC服务器确定序号为4的数据包所属于的视频流分片为S12,视频流分片S12的分片标识为2;FCC服务器在发送完视频流分片S12时,向终端发送第二视频流,第二视频流的第一个视频流分片是S23,视频流分片S23的分片标识是3,是视频流分片S12(分片标识是2)的下一个视频流分片。
[0106] 由于位于第一视频流中的视频流分片包括的数据包数目与位于第二视频流中的视频流分片包括的数据包数目不同,所以第一视频流包括的最后一个数据包的序号和第二视频流包括的第一个数据包的序号不连续,这样终端在播放第二视频流时会误认为发生丢包现象,为了解决此问题,FCC服务器在开始向终端发送目标频道的第二视频时向终端发送通知消息,通过该通知消息携带的第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号,告诉终端第一视频流的最后一个数据包和第二视频流的第一个数据包是连续的数据包。
[0107] 例如,仍旧参见图2,视频流分片S12的最后一个数据包的序号为4,FCC服务器在发送完该数据包时,向终端发送第二视频流,第二视频流的第一个视频流分片是S23,视频流分片S23中的第一个数据包的序号为9。因此,终端接收到序号为4的数据包后,接收到了序号为9的数据包。由于终端还接收到了携带有序号4和序号9的通知消息,可根据该消息确定出其接收到的序号为4的数据包与序号为9的数据包是连续的数据包,并未发生丢失。
[0108] FCC服务器在发送第二视频流时,可以采用小于其接收第二视频流的接收速率来发送第二视频流。例如,在实现时,FCC服务器确定其当前接收组播服务器发送的目标频道的第二视频流的接收速率,根据预设的第三倍数和该接收速率计算出发送速率,按该发送速率向终端发送获取的第二视频流。第三倍数小于1,例如第三倍数可以为0.6、0.7、0.8等值,将该接收速率与第三倍数相乘得到该发送速率的大小。
[0109] 可选的,该通知消息可以为SCN报文,参见图7,该SCN报文中包括最终自适应码率(Final Optimal Adaptive Bitrate)字段,以及扩展的旧序号(Last Sequence Number)字段和新序号(First Sequence Number)字段,旧序号字段用于携带该最后一个数据包的序号,该新序号字段用于携带该第一个数据包的序号。
[0110] 步骤508,终端接收FCC服务器发送的通知消息,根据该通知消息播放FCC发送的第二视频流以及加入目标频道的组播组,接收组播服务器发送的第二视频流以及音频流。
[0111] 终端接收FCC服务器发送的通知消息,同时还接收FCC服务器发送的第二视频流,获取该通知消息中携带的第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号。终端根据第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号,确定第一视频流的最后一个数据包和第二视频流的第一个数据包是连续的两个数据包,然后从第二视频流的第一个数据包开始播放第二视频流。
[0112] 终端在播放第二视频流时,还向组播服务器发送携带有目标频道的频道标识的加入请求。组播服务器接收该加入请求,根据该目标频道的频道标识,将终端加入该目标频道的组播组,然后向终端发送目标频道的第二视频流和音频流。终端在开始播放FCC发送的第二视频流之后接收组播服务器发送的第二视频流和音频流并缓存。
[0113] 步骤509,终端当前播放的第二视频流包括的数据包和组播服务器发送的第二视频流包括的第一数据包相同时,播放组播服务器发送的第二视频流和音频流。
[0114] 终端在播放组播服务器发送的第二视频流和音频流时,终端完成从原频道切换到目标频道或者终端完成启动后加入到目标频道。同时终端还可以断开与FCC服务器之间的连接,以停止接收FCC服务器发送目标频道的第二视频流和音频流。
[0115] 综上所述,本发明的一个实施例提供的播放媒体流的方法,终端通过向FCC服务器发送获取请求,该获取请求携带有其已接收到的FCC服务器发送的视频流中的视频流分片的分片标识;FCC服务器根据该分片标识确定其已发送给终端的视频流的起始时间,根据该起始时间获取该视频流对应的音频流,该音频流起始时间与该视频流起始时间相同,向终端发送该音频流;由于终端接收到了FCC服务器发送的起始时间相同的视频流以及音频流,因此终端同时播放该视频流和音频流时能够保证音视频同步,解决了相关技术中终端播放不出声音或者播放的声音与视频画面不一致的问题,保证终端播放的声音与视频画面一致。
[0116] 服务器向终端发送的视频流中包括至少一路音频流的描述信息,以便终端从中选择与自身能力相符的一路音频流的描述信息,向服务器发送的获取请求包括该一路音频流的描述信息。如此终端可以根据自身的能力获取与自身能力相符的音频流进行播放。
[0117] 服务器通过向终端发送RTCP包,该RTCP包的分片时间戳字段携带该分片标识,以便终端向该服务器发送携带有该分片标识的获取请求,从而从服务器获取该终端已接收到的视频流对应的音频流。
[0118] 服务器通过在停止向终端发送第一视频流并向该终端发送第二码率的第二视频流时,向终端发送通知消息,该通知消息携带第一视频流的最后一个数据包的序号和第二视频流的第一个数据包的序号,使得终端根据该通知消息确定该最后一个数据包和第一个数据包是连续的数据包,避免终端误判成数据包流失,从而正常从该第一个数据包开始播放第二视频流。
[0119] 请参考图8,其示出了本发明的另一个示例性实施例提供的服务器800,该服务器800可以为图1、图3和/或图5所示实施例中的FCC服务器,该服务器800包括:发送单元810、处理单元820以及接收单元830。
[0120] 发送单元810,用于上述步骤502、步骤505以及步骤507中至少一个步骤的功能。
[0121] 处理单元820,用于上述步骤504、步骤505中至少一个步骤的功能。
[0122] 接收单元830,用于上述步骤502、步骤504、中至少一个步骤的功能。
[0123] 相关细节可结合参考上述方法实施例。
[0124] 需要说明的是:上述实施例提供的服务器在向终端提供该终端请求播放的目标频道的媒体流时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务器与播放媒体流的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0125] 请参考图9,其示出了本发明的另一个示例性实施例提供的终端900,该终端900可以为图1、图4和/或图5所示实施例中的终端900,该终端包括:发送单元910、处理单元920以及接收单元930。
[0126] 发送单元910,用于上述步骤501、步骤503以及步骤508中至少一个步骤的功能。
[0127] 处理单元920,用于上述步骤506、步骤508以及步骤509中至少一个步骤的功能。
[0128] 接收单元930,用于上述步骤503、步骤506以及步骤508中至少一个步骤的功能。
[0129] 相关细节可结合参考上述方法实施例。
[0130] 需要说明的是:上述实施例提供的终端在播放媒体流时时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的终端与播放媒体流的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0131] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0132] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0133] 以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈