阿里播放器直播/点播使用与多分辨率与OBS推流使用|8月更文挑战

1,207 阅读2分钟

背景

网络环境比较复杂、网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率

一,直播选择-Source模式

source的方式指定多个清晰度的地址,这个模式在直播场景下使用的比较多,阿里云直播服务可以提供多码率的播放流地址,详细请参考:视频直播转码。Aliplayer提供了下面清晰度的对应关系:

播放器的使用代码为:

     

点播选择-Source模式

二,点播-videoId模式

播放点播服务的视频时,采用videoId的模式, Aliplayer会获取用户在点播服务转码生成的多分辨率的视频地址,生成多清晰度选择列表,详细参考点播转码

如果用户转码生成多种视频格式文件,Aliplayer将会按照mp4->m3u8->flv的顺序优先选择播放,如果有加密视频和普通视频一起,点播服务将只会返回加密视频的播放地址。Aliplayer提供了其他一些属性可以做精确的获取点播视频的播放地址:

播放器的使用代码为:

var player = new Aliplayer({
    id: "player-con",
    width: "100%",
    height: "500px",
    autoplay: true,
    language: "en-us",
    vid : '1e067a2831b641db9dmgla3mpp43240',
    playauth:'ddddfdfdf'
    format:'m3u8',
    mediaType:'video',
    qualitySort:'desc',
    definition:'FD,LD',
    defaultDefinition:'LD'
  }, function (player) {
    console.log("播放器创建成功");
})


HLS的多码率

HLS HTTP Live Streaming是Apple提出的基于http的流媒体传输协议,支持不同带宽的多码率地址,基本格式如下:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-STREAM-INF:BANDWIDTH=454521,AVERAGE-BANDWIDTH=432061,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=340x192,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_340.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=691401,AVERAGE-BANDWIDTH=644868,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=384x216,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_384.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=926476,AVERAGE-BANDWIDTH=850169,CODECS="avc1.42c01f,mp4a.40.5",RESOLUTION=512x288,FRAME-RATE=25.000
#EXT-X-STREAM-INF:BANDWIDTH=7011961,AVERAGE-BANDWIDTH=6374698,CODECS="avc1.640028,mp4a.40.5",RESOLUTION=1920x1080,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_1920.m3u8


EXT-X-STREAM-INF:BANDWIDTH里的指定带宽,下面为此带宽使用对应分辨率的视频地址,Aliplayer解析上面的master m3u8内容,展示清晰度列表,并且会根据网络情况选择合适的清晰度播放:

推流方式

用OBS推流

直播-清晰度如何验证

切换清晰度里,比如是m3u8,请求的Url 是不变的 在阿里云官方示例中

参考

  1. 阿里直播场景多source配置 player.alicdn.com/aliplayer/p…
  2. OBS推流APP使用