自适应码率(ABR)直播流(必须使用HDS或HLS方式播放,rtmp://方式无法播放。)

三种方式实现

1、编码器推多路同源不同码率的视频,然后通过smil文件汇集成一个组来播放。

2、配置了wowza转码后,wowza根据模板生成多个流,默认在模板下方可以汇集多个流使用ngrp:aa_all这样的方式来实现。

3、使用wowza转码后,在模板中没有汇集,使用smil的方式来实现。



编码器推多路流,通过smil播放

用flash live media encoder 推2路(或)流到wowza服务器如:aa1、aa2


aa1:360k码率

aa2:160k码率


在wowza [install-dir]/content目录下新建一个文件bb.smil(.smil不可改变;bb可随意变)文件内容如下:



   
   
   
       
           

   


使用Adobe Flash player(Flash HTTP)播放:

http://[wowza-ip-address]:1935/live/smil:bb.smil/manifest.f4m


使用Apple iOS设备播放:

http://[wowza-address]:1935/live/smil:bb.smil/playlist.m3u8





Wowza转出多路流通过ngrp播放

如果配置了wowza转码,在转码模板下方有一个ngrp的汇聚流,播放时使用ngrp:aa_all也可以实现自适应播放。

模拟场景:编码器推一路流(aa)到wowza服务器,通过转码模板wowza转码生成多路不同码率的流,如aa_360p,aa_160p,默认模板下方还会有一个聚合流${SourceStreamName}_all 如:aa_all。那么使用如下地址播放可以实现自适应流播放:

flash HTTP:


http://[wowza-ip-address]:1935/live/ngrp:aa_all/manifest.f4m


Appale iOS设备:


http://[wowza-ip-address]:1935/live/ngrp:aa_all/playlist.m3u8



Wowza转码出多路流,通过smil播放

把Wowza转码出来流如:aa_360p aa_160p汇聚到smil文件中(参考第一种方法),通过smil的方式播放。