一种实现自适应带宽播放流媒体的系统及其方法

文档序号:7723255阅读:124来源:国知局
专利名称:一种实现自适应带宽播放流媒体的系统及其方法
技术领域
本发明涉及播放流媒体的方法,尤其涉及一种实现自适应带宽播放流媒体的方法。
背景技术
在现有的流媒体播放技术中,一般都是由用户选择一个固定的媒体码率或者由服 务器设置的固定码率,然后向用户进行流媒体播放,在播放过程中码率基本保持不变。这 种技术的缺点在于,由于现有的网络状况并不能在播放的过程中保证稳定的带宽,特别是 在移动网络的背景下,那么当网络带宽变小的时候,特别是不能满足流媒体播放的带宽的 时候,那么客户端就会发生缓冲的现象,严重影响到用户体验,使用户不能流畅的观看流媒 体。微软的smooth streaming对上述现有技术作了一些改进,实现了根据用户的带宽
变化动态的调整流媒体的码率,以保证用户观看视频的流畅度。通过对原始视频源编码成
为可单独获取片段的MP4文件,并且使用各种码率都分别存放一份,当客户端链接的时候,
通过客户端和服务器统计的带宽结果,根据带宽选择最适合用户码率的MP4文件片段,通
过HTTP方式传送给用户,这样就实现了在不同带宽下面播放不同码率的视频。 苹果的live streaming则通过扩展M3U格式的播放列表,在服务器端和客户端都
保存一份扩展后的播放列表,并且在播放过程中通过动态改变该播放列表来实现动态改变
客户端和服务器端的视频播放,从而实现动态改变传送给客户端的视频质量,达到保证流
畅度的效果。该方案主要通过服务器端和客户端之间播放列表的同步来根据客户端的带宽
情况来改变播放视频的码率,从而与带宽相适应,保证视频播放的流畅度。 而Adobe的Dynamic streaming技术是通过在客户端做带宽检测并根据带宽检测
结果向服务器端发送命令要求切换到和真实码率相当的视频片段,从而实现流畅的播放效果。 但,微软的smooth streaming技术适用于现有的视频文件,需要事先对现有的视 频文件进行转码封装成不同码率的MP4文件,不适用于实时产生的视频流。苹果的技术虽 然适用于实时产生的视频流,但是需要客户端实时的与服务器端进行播放列表的同步,并 且需要针对于现有的M3U格式的播放列表进行相应的扩展,增加了客户端的复杂度以及网 络消耗。Adobe的Dynamic Streaming可以用于视频文件以及实时视频源,但同样需要客户 端和服务器端配合联动。

发明内容
本发明的目的在于克服上述现有技术之不足,提供一种实现自适应带宽播放流媒 体的系统及其方法,该系统及方法可以实现针对于本地视频文件以及实时视频流的动态码 流适配功能,客户端只需要使用一般的网络播放器就可以实现,不需要使用特定播放器,不 需要对现有的播放列表进行扩展,减少了用户操作的复杂度,增强了用户体验。上述目的通过下述技术方案予以解决 实现自适应带宽播放流媒体的系统包括媒体源服务器和客户端,还包括转码服务
器,该转码服务器通过网络连接媒体源服务器获得原始媒体流,该原始媒体流由转码服务
器转码成与客户端实时带宽相适应的目标码率的媒体流并通过网络发送到客户端。 上述系统的进一步方案是,转码服务器提供一个虚拟的媒体链接给客户端。
实现自适应带宽播放流媒体的方法包括如下步骤 A.客户端连接转码服务器时,转码服务器对客户端进行带宽检测; B.客户端向转码服务器发送播放流媒体的请求; C.转码服务器根据上述请求向媒体源服务器获得原始媒体源; D.转码服务器实时监测客户端与服务器端之间的带宽情况,并根据检测得到的带
宽,将原始媒体源转换为与所述带宽的码率相适应的媒体流; E.转码服务器将转换后的媒体流发送给客户端,由客户端进行播放。 上述方法进一步的方案是,宽带检测的结果将作为确定初始的转换目标码率的依
据,并且根据所述带宽检测的结果所处的区间来确定初始媒体转换的目标码率。 上述方法进一步的方案是,转码服务器还可以将所述的转换后的媒体流存储在转
码服务器中作为缓存。 上述方法更进一步的方案是,缓存中的媒体流的码率大于或者等于所需要转换的 目标媒体流的码率时,转码服务器可从所述缓存中获取原始媒体的媒体流,并将该媒体流 转换为需要的目标码率的媒体流或者直接将该媒体流发送给客户端,否则转码服务需要从 媒体源服务器获得原始媒体流。 上述方法更进一步的方案是,转码服务器可从所述缓存中获取离当前时间最近的 视频关键帧之后的视频来进行媒体直播。 上述方法更进一步的方案是,在视频直播情况下,所述转码服务器根据客户端请
求向媒体源服务器获得原始媒体源后,将该原始视频源存在转码服务器中作为缓存;后续
建立新的转码通道可以直接从转码服务器的缓存中获取原始媒体源进行转码。 上述方法更进一步的方案是,在媒体直播情况下,客户端服务器根据连接客户端
的带宽情况建立相应的转码通道,如果客户端所需要的转码码率已经在已有的转码通道
中,则转码服务器直接将该通道的媒体流发送给客户端;如果不在,则转码服务器需要重新
建立该目标码流的通道进行转码。 上述方法更进一步的方案是,缓存中的媒体流还可以是媒体中某个时间段的片 段。 上述方法更进一步的方案是,在带宽发生变化的情况下,码率切换的时机是根据 码率变化时间和媒体关键帧的位置来确定。 本发明系统,可以根据用户实时的带宽情况来实时改变传送到用户客户端的视频 质量,从而保证用户观看视频的流畅性。 本发明方法,可以实现针对本地流媒体文件以及实时媒体流的动态码流适配功 能,客户端只需要使用一般的网络播放器就可以实现,不需要使用特定播放器,不需要对现 有的播放列表进行扩展,减少了用户操作的复杂度,增强了用户体验。 本发明通过在转换服务器端提供一个虚拟的视频链接给客户端,客户端不用动态
4的更新所播放的媒体源,只需要服务端动态改变媒体源转换的目标参数即可。客户端在播 放过程中不用产生任何改变,只需要服务器对带宽的变化做出相应的改变,不需要客户端 做实时的更新,提高服务器的工作效率,同时提高了客户端播放媒体的流畅度,极大的改善 了用户体验。


图1是本发明系统中未设缓存区时动态实时媒体流转码流程示意图。
图2是本发明系统中设置缓存区时动态实时媒体流转码流程示意图。
图3是转码服务器进行转码后缓存过程的示意图。 图4是在向多用户直播情况下通过缓存进行动态实时媒体流转码流程示意图。
具体实施例方式
下面结合附图及实施例对本发明及其优点作进一步说明。 本发明系统主要由转码服务器、媒体源服务器和客户端组成,该转码服务器通过 网络连接媒体源服务器获得原始媒体流,该原始媒体流由转码服务器转码成与客户端实时 带宽相适应的目标码率的媒体流并通过网络发送到客户端。这一过程中,包括了客户端与 转码服务器之间的持续的带宽检测,服务器根据检测到的客户端的带宽推送相应码率(质 量)的媒体流到客户端,这样不管用户的带宽如何变化,都能够保证客户端视频播放的流 畅度。 实施例一 本实施例的媒体源是视频源,视频源服务器和转码服务器是单独部署的,并且是
以没有缓存情况下的动态实时视频流转码过程为例来进行说明,请参见图1。 步骤一,客户端连接转码服务器时,服务器对客户端进行带宽检测。该步骤的带宽
检测的结果将作为确定初始的转换目标码率的依据,根据带宽结果所处的区间来确定转换
的目标码率,例如带宽为85Kbps,处于设定的80-90Kbps区间内,则目标码率为该区间设定
的目标码率80Kbps。 步骤二,客户端向转码服务器发送播放媒体的请求。 步骤三,转码服务器根据上述步骤一的带宽检测所作出客户带宽判断结果确定转 码的初始目标视频码率。 步骤四,转码服务器根据步骤二的播放媒体请求从视频源获取原始视频流。
步骤五,转码服务器根据步骤三确定的初始目标视频码率进行视频转换,将原始 视频流转换成适合目标带宽的视频流。 步骤六,转码服务器将转换之后的目标码流实时的转发到客户端,客户端可以实 时播放接收到的转换后的码流。在发送转换后的媒体流的过程中,转码服务器和客户端之 间有持续不断的带宽检测,一旦转码服务器发现带宽变动很大,就会修改转码的目标码率, 使客户端始终可以接收到与当前带宽情况相适应的码流的视频。码率切换点不是任意时间 点,而是同一片段在不同码率下的时间上严格同步的可以随机访问的关键帧的位置(比如 H263中的Intra帧和H264中的IDR帧等)。 上述的与带宽相适应的码率是指一个设定的带宽区间,例如带宽为80-90Kbps时,转换目标码率为85Kbps。具体的区间设置由具体实施时根据用户需要设置。
上述技术方案还使客户端在播放过程中不会产生任何改变,只需要服务器对带宽 的变化做出相应的改变。这是对现有技术的重要改进。其关键在于,服务器端提供一个虚 拟的视频链接给客户端,上述步骤二所述的客户端发出的播放请求实际上是一个虚拟的视 频源,这个视频源是在服务器端动态生成的,也就是上述步骤中描述的转码服务器转码后 的视频流。实现了此技术之后,客户端不用动态的更新所播放的视频源,只需要服务端动态 改变视频转换的目标参数即可,从而提高客户端的播放质量。
实施例二 本实施例的媒体源可以是音频、视频的多媒体,并且是在实施例一的基础上在转 码服务器上增加了缓存功能,其流程请参见图2。 步骤一 ,客户端连接转码服务器时,服务器对客户端进行带宽检测。
步骤二,客户端向转码服务器发送播放媒体的请求。 步骤三,转码服务器根据上述步骤一的带宽检测所作出客户带宽判断结果确定转 码的初始目标视频码率。 步骤四,转码服务器根据步骤二的播放媒体请求由视频源获取原始视频流。
步骤五,转码服务器根据步骤三确定的初始目标视频码率进行视频转换,并将转 化后的视频流保存在转码服务器中,作为缓存,这样后续有客户端请求相同的视频并且是 要求相同的转换码流,则转码服务器不需要进行重复的转码,只需要将缓存中的视频流发 给客户端。由于带宽的波动,一个完整的视频流会在码率切换点切割成不同码率的片段,这 样在一次完整的媒体播放过程之后,会在不同的码率上留下一些并不是连续完整的片段, 会有一些片段并不存在,需要等待后续的媒体播放请求中的在相应时间段的相同目标码率 的转码之后对空白进行填补,直至在所有的码率段的空白都被填补完整之后,那么转码服 务器就不需要再去媒体源进行媒体获取,只需要从缓存中进行获取即可,既提高了服务器 的效率,有提高了客户端的播放质量。 请参见图3,在一次媒体播放的过程中,转码服务器分别在100Kbps,80Kbps, 60Kbps的码率上进行转码,转码之后转码服务器缓存了 100Kbps的0-10秒,45秒到65秒的 片段,80Kbps上的10-35秒,65-75秒的片段以及60Kbps上的35-45秒的片段(图中实线 表示已缓存片段,虚线表示缓存中缺失的片段)。那么在下次对相同媒体的播放请求时,如 果需要用到上述时间段内的上述码率上的视频片段,转码服务器可以直接去缓存中获取, 而不需要去媒体源服务器获取;如果需要的视频不是上述时间段内的上述码率上的视频, 则转码服务器需要去媒体服务器获取原始的视频,并进行相应码率的转码,并将转码后的 视频片段保存在缓存中,填补上图中的缺失的片段,等到在各种不同码率上的缺失片段都 消失之后,转码服务器后续就可以完全从缓存中获取视频片段了。 步骤六,转码服务器将转换之后的目标码流实时的转发到客户端l,客户端1可以 实时播放接收到的转换后的码流。 在该步骤中,转码服务器和客户端1之间有持续不断的带宽检测过程,一旦转码 服务器发现带宽变动很大,就会修改转码的目标码率,使客户端l始终可以接收到与当前 带宽情况相适应的相应码流的视频。 由于上述视频是第一次转码,转码服务器中没有相应的缓存,只能从视频源中进行完全的转码。但是当有其他对于该视频的访问请求的时候,转码服务器可以从缓存中直 接读取。当后续有客户端2请求播放相同的视频时,由于之前已经转换过该视频,所以缓存 中已经有了转码后的该视频的视频流,转码服务器可以利用缓存中的视频流进行转码或者 直接进行发送。但是前提条件是缓存中的媒体流的码率大于或者等于所需要转换的目标媒 体流的码率时,转码服务器可从所述缓存中获取原始媒体的媒体流,并将该媒体流转换为 需要的目标码率的媒体流或者直接将该媒体流发送给客户端。否则转码服务器需要重新去 视频源获得原始视频流,过程与实施例一类似,因为视频无法从低码率转成高码率。
所以接下来,客户端2将通过下列流程进行转码并实时播放接收到的转换后的码 流 1)客户端2连接转码服务器时,转码服务器对客户端进行带宽检测。
2)客户端2向转码服务器发送播放媒体的请求 3)转码服务器根据上述步骤一所述的带宽检测的结果确定转码的初始目标视频 码率。 4)查找服务器中的缓存,是否有该视频的缓存,如果缓存符合要求(要求 如上文所述),则直接读取缓存,如步骤5所述,本实施例假定该视频缓存符合要求。 5)如果转换的初始目标视频码率小于缓存中设定的视频码率,则转码服务器根据
上述步骤三确定的初始目标视频码率将缓存中的视频流进行视频转换,并将转化后的视频
流保存在服务器中,作为缓存,如果转换的初始目标视频码率等于缓存中的视频码率,则转
码服务器不需要进行重复的转码,只需要将缓存中的视频流发给客户端。 6)转码服务器将转换之后的目标码流实时的转发到客户端2,客户端2可以实时
播放接收到的转换后的码流。 在上述转码服务器将转换之后的目标码流转发到客户端2的过程中,转码服务 器和客户端2之间有持续不断的带宽检测过程, 一旦转码服务器发现带宽变动很大,就会 修改转码的目标码率,使客户端2始终可以接收到与当前带宽情况相适应的相应码流的视 频。 实施例三 本实施例的媒体源可以是音频、视频的多媒体,并且是在实施例二的基础上在转
码服务器上增加了向多用户进行视频直播功能,其流程请参见图4 。 步骤一 ,客户端连接转码服务器时,服务器对客户端进行带宽检测。 步骤二,客户端向转码服务器发送播放媒体的请求。 步骤三,转码服务器根据上述步骤一的带宽检测所作出客户带宽判断结果确定转 码的初始目标视频码率。 步骤四,转码服务器根据步骤二的播放媒体请求从视频源获取原始视频流。转码 服务器可以将这里从视频源获取的原始视频流存在缓存中,这样后续步骤中进行转码时可 以直接从缓存中获取,不需要再去视频源获取原始视频。由于是直播,所以只需要获取缓 存中视频的离当前时间最近的视频关键帧之后的视频,以保证尽量让用户体验到直播的效 果。 步骤五,转码服务器根据步骤三确定的初始目标视频码率进行视频转换,并将转化后的视频流保存在转码服务器中,作为缓存,这样后续有客户端请求相同的视频并且是 要求相同的转换码流,则转码服务器不需要进行重复的转码,只需要将缓存中的视频流发 给客户端。 步骤六,如果后续的客户端请求的视频码率与现有的转换码率不相同,则转码服 务器需要新建一条转码通道将原始视频流转成客户端需要的码率,也就是说,新建立的目 标码流的转码通道是从转码服务器的缓存中获取原始媒体源的。如果后续的客户端请求 的视频码率与现有的转换码率相同,则转码服务器直接从转码服务器中的缓存区中直接获 取相应目标码流的已缓存的视频流,并且视频开始的位置是从离当前时间最近的关键帧位 置。最后,转码服务器会将一个直播源转码成A, B, C, D……等个目标码流,转码服务器根据 客户端的带宽将客户端链接到相应的码率流出口。当客户端与转码服务器之间的带宽发生 变化时,转码服务器可以动态的将用户从原来的转码通道切换到带宽变化后与当前带宽相 适应的转码通道。
权利要求
一种实现自适应带宽播放流媒体的系统,包括媒体源服务器和客户端,其特征在于还包括转码服务器,该转码服务器通过网络连接媒体源服务器获得原始媒体流,该原始媒体流由转码服务器转码成与客户端实时带宽相适应的目标码率的媒体流并通过网络发送到客户端。
2. 根据权利要求1所述的一种实现自适应带宽播放流媒体的系统,其特征在于所述转 码服务器提供一个虚拟的媒体链接给客户端。
3. —种实现自适应带宽播放流媒体的方法,其特征在于包括如下步骤A. 客户端连接转码服务器时,转码服务器对客户端进行带宽检测;B. 客户端向转码服务器发送播放流媒体的请求;C. 转码服务器根据上述请求向媒体源服务器获得原始媒体源;D. 转码服务器实时监测客户端与服务器端之间的带宽情况,并根据检测得到的带宽, 将原始媒体源转换为与所述带宽的码率相适应的媒体流;E. 转码服务器将转换后的媒体流发送给客户端,由客户端进行播放。
4. 根据权利要求3所述的一种实现自适应带宽播放流媒体的方法,其特征在于所述带 宽检测的结果将作为确定初始的转换目标码率的依据,并且根据所述带宽检测的结果所处 的区间来确定初始媒体转换的目标码率。
5. 根据权利要求3所述的一种实现自适应带宽播放流媒体的方法,其特征在于所述转 码服务器还可以将所述的转换后的媒体流存储在转码服务器中作为缓存。
6. 根据权利要求5所述的一种实现自适应带宽播放流媒体的方法,其特征在于所述缓 存中的媒体流的码率大于或者等于所需要转换的目标媒体流的码率时,转码服务器可从所 述缓存中获取原始媒体的媒体流,并将该媒体流转换为需要的目标码率的媒体流或者直接 将该媒体流发送给客户端,否则转码服务需要从媒体源服务器获得原始媒体流。
7. 根据权利要求6所述的一种实现自适应带宽播放流媒体的方法,其特征在于转码服 务器可从所述缓存中获取离当前时间最近的视频关键帧之后的视频来进行媒体直播。
8. 根据权利要求7所述的一种实现自适应带宽播放流媒体的方法,其特征在于在视频 直播情况下,所述转码服务器根据客户端请求向媒体源服务器获得原始媒体源后,将该原 始视频源存在转码服务器中作为缓存;后续建立新的转码通道可以直接从转码服务器的缓 存中获取原始媒体源进行转码。
9. 根据权利要求8所述的一种实现自适应带宽播放流媒体的方法,其特征在于在媒体 直播情况下,客户端服务器根据连接客户端的带宽情况建立相应的转码通道,如果客户端 所需要的转码码率已经在已有的转码通道中,则转码服务器直接将该通道的媒体流发送给 客户端;如果不在,则转码服务器需要重新建立该目标码流的通道进行转码。
10. 根据权利要求5或8所述的一种实现自适应带宽播放流媒体的方法,其特征在于缓 存中的媒体流还可以是媒体中某个时间段的片段。
11. 根据权利要求3或9中所述的一种实现自适应带宽播放流媒体的方法,其特征在于 在带宽发生变化的情况下,码率切换的时机是根据码率变化时间和媒体关键帧的位置来确 定。
全文摘要
本发明涉及一种实现自适应带宽播放流媒体的系统及其方法。所述系统包括媒体源服务器和客户端,还包括转码服务器,该转码服务器通过网络连接媒体源服务器获得原始媒体流,该原始媒体流由转码服务器转码成与客户端实时带宽相适应的目标码率的媒体流并通过网络发送到客户端。所述方法包括转码服务器对客户端进行带宽检测;客户端向转码服务器发送播放流媒体的请求;根据上述请求向媒体源服务器获得原始媒体源;实时监测客户端与服务器端之间的带宽情况,将原始媒体源转换为与带宽的码率相适应的媒体流;转码服务器将转换后的媒体流发送给客户端,由客户端进行播放。优点是提高了客户端播放媒体的流畅度,极大的改善了用户体验。
文档编号H04L29/06GK101778104SQ20091026402
公开日2010年7月14日 申请日期2009年12月29日 优先权日2009年12月29日
发明者包渊, 李 杰 申请人:常州中流电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1