基于动态自适应码率传输协议hls流媒体的直播方法和服务器的制造方法_3

文档序号:9251244阅读:来源:国知局
情况酌情调整编码速率,本发明实施例对此不加以限制。
[0090]参照图3所示的本发明的一种初始编码速率的综合测算示意图,在本发明实施例中,可以结合获得的网络的性能数据,客户端的屏幕信息,流媒体的传输速率综合测算出流媒体的初始编码速率。在实际的流媒体的传输中,应当尽可能清晰和分辨率高的流媒体,因此在确定初始编码速率时,如果网络性能的数据优良,流媒体的传输速率稳定,则可以采用较高的编码速率,否则采用较低的编码速率,在保证流媒体质量以及传输连贯的前提下,采用尽可能高的编码速率,以减小直播时延。
[0091]步骤102,所述服务器接收客户端的直播服务请求;
[0092]步骤103,所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
[0093]步骤104,所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
[0094]本发明实施例中在流媒体(即音视频流)的切片过程中,使用预定义机制,提前生成切片配置文件,在切片过程中再根据切片配置文件生成切片文件,切片过程中,采用缓冲机制,边切片边发送切片文件,以尽可能减少直播延时。参照图4所示的本发明的一种流媒体切片缓存以及直播的示意图,具体的步骤可以包括:
[0095]A、客户端发送直播服务请求给服务器;
[0096]B、服务器接收到直播服务请求,开始直播服务,预生成切片配置文件,该切片配置文件的格式可以为.m3u8,其中包括有初始切片时长等数据;
[0097]C、服务器开始获取用于直播的音视频流;
[0098]D、服务器对音视频流按照初始切片时长进行编码切片,生成音视频段;
[0099]E、服务器对各个音视频段进行缓冲处理,其中各个音视频段的存储格式可以为TS格式;
[0100]F、客户端开始进行直播服务;
[0101]G、客户端从服务器中获取切片配置文件;
[0102]H、客户端按照初始编码速率循环从服务器中接收到缓冲后的音视频段;
[0103]1、客户端直播所获取的各个缓冲后的音视频段。
[0104]在本发明实施例的一种优选示例中,现有技术中服务器能提供多套节目源,而本发明实施例是可以基于搭建在电视或者机顶盒上的服务器(该服务器与智能终端通过HLS协议进行流媒体的传输)这样由于硬件的限制,可以只提供一套节目源,需要说明的是,HLS协议流媒体自适应传输是指客户端从服务器提供的多套节目源中选取一个,而与现有技术中HLS协议本身能自适应切换码率有区别,本发明实施例则是可以根据网络的性能数据、节目源的分辨率,客户端的屏幕分辨率等任意一个或多个数据确定初始编码速率,以提供尽可能高的分辨率,从而给带来用户较好的体验。
[0105]参照图5,示出了本发明的一种基于动态自适应码率传输协议HLS流媒体的直播方法实施例二的步骤流程图,具体可以包括如下步骤:
[0106]步骤201,服务器根据网络性能数据确定初始切片时长和初始编码速率;
[0107]步骤202,所述服务器接收客户端的直播服务请求;
[0108]步骤203,所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
[0109]步骤204,所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播;
[0110]步骤205,所述服务器在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
[0111]步骤206,采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
[0112]在本发明实施例中,考虑到现有技术中切片时长和编码速率常是固定的,不论网络环境是好是差,因此在本发明的一种优选的实施例方案是,在确定了初始切片时间长度后,在后续的流媒体的直播过程中,如果网络环境发生变化,仍然可以根据网络环境以及其他相关数据,再次设定流媒体的切片时长和编码速率等等。
[0113]在本发明的一种优选实施例中,所述步骤206可以包括如下子步骤:
[0114]子步骤S31,所述服务器判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间;则执行子步骤S32,若所述发送时间低于所述播放时间;则执行子步骤S33 ;
[0115]子步骤S32,所述服务器提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
[0116]子步骤S33,所述服务器降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
[0117]在本发明实施例中,在直播过程中统计每个切片文件的发送时间,在保证连贯的前提下,尽可能使用较短的切片时长,较高的编码速率,和/或较高的流媒体分辨率,以提供最好的用户体验。
[0118]具体来说,当流媒体的发送时间持续高于流媒体的播放时间,说明编码速率过高,切片时长过短,和/或流媒体分辨率较高,说明网络环境较差,切片文件的直播卡顿,这时可以选择提高切片时长,降低编码速率,和/或降低流媒体分辨率;当流媒体的发送时间持续远低于流媒体的播放时间,说明网络环境较好,降低切片时长,提高编码速率,和/或提高流媒体分辨率。
[0119]需要说明的是,在具体实现中可以根据网络环境对于编码速率,切片时长,流媒体分辨率中其中的一个或多个数据进行修改,本发明实施例对此不加以限制。
[0120]本发明实施例在客户端进行流媒体直播的过程中,可以根据切片文件的发送时间,以及在客户端的播放时间,对于流媒体的切片时长,和/或编码速率,和/或流媒体分辨率进行相应的调整,通过在网络环境的变化情况进行实时调整,可以进一步保护流媒体直播的连贯性,用户体验效果极佳。
[0121]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0122]参照图6,示出了本发明的一种服务器实施例的结构框图,具体可以包括如下模块:
[0123]确定模块301,用于根据网络属性信息确定初始切片时长和初始编码速率;
[0124]在本发明的一种优选实施例中,所述流媒体可以具有对应的流媒体分辨率,所述确定模块301可以包括如下子模块:
[0125]第一获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
[0126]第二获取子模块,用于获取所述流媒体的传输速率;
[0127]切片时长确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长。
[0128]在本发明的一种优选实施例中,所述确定模块301可以包括如下子模块:
[0129]第三获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
[0130]第四获取子模块,用于获取所述流媒体的传输速率;
[0131]初始编码速率确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
[0132]接收模块302,用于接收客户端的直播服务请求;
[0133]切片模块303,用于依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
[0134]直播模块304,用于按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
[0135]在本发明的一种优选实施例中,所述的服务器还可以包括如下模块:
[0136]统计模块,用于在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
[0137]调整模块,用于采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
[0138]在本发明的一种优选实施例中,所述调整模块可以包括如下子模块:
[0139]判断子模块,用于判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间,则调用第一调整子模块;若所述发送时间低于所述播放时间,则调用第二调整子模块;
[0140]第一调整子模块,用于提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
[0141]第二调整子模块,用于降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1