zoukankan      html  css  js  c++  java
  • 阿里云 Aliplayer高级功能介绍(七):多分辨率

    基本介绍

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

    66ccc596257a5db1d0f106b57454e14da6a8f61e

    Source模式

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

    CodeText
    OD 原画
    FD 流畅
    LD 标清
    SD 高清
    HD 超清
    2K 2K
    4K 4K

    source如何支持多清晰度,参考下面的代码:

    var player = new Aliplayer({
        id: "player-con", 
        isLive:true,
         source:'{"HD":"https://livecdn.com/appname/testhd.flv",
                  "SD":"https://livecdn.com/appname/testsd.flv",
                  "FD":"https://livecdn.com/appname/testfd.flv",
                  "LD":"https://livecdn.com/appname/testld.flv"
                 }',
        width: "100%",
        height: "500px",
        autoplay: true
      }, function (player) {
        console.log("播放器创建成功");
      });
    

    videoId模式

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

    33.png

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

    属性名称类型说明
    format String 指定播放地址格式可选值为mp4、m3u8、flv、mp3,默认为空
    mediaType String 指定返回音频还是视频,可选值为video和audio,默认为video,audio主要是针对只包含音频的视频格式
    qualitySort String 指定排序方式,desc表示按倒序排序(即:从大到小排序),asc表示按正序排序(即:从小到大排序)默认值:‘asc’
    definition String 显示视频清晰度,多个用逗号分隔,比如:’FD,LD’,此值是vid对应流清晰度的一个子集,取值范围:FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K)
    defaultDefinition String 默认播放视频清晰度,取值范围:FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K),默认是上次播放时选择的清晰度

    播放器的使用代码为:

    var player = new Aliplayer({
        id: "player-con",
        width: "100%",
        height: "500px",
        autoplay: true,
        language: "en-us",
        vid : '1e067a2831b641db90d570b6480fbc40',
        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内容,展示清晰度列表,并且会根据网络情况选择合适的清晰度播放:

    56623276aeca6b63206e6c63817ceb4a44908d1f

    阿里云的媒体处理服务支持多分变率的打包, 详细参考:如何进行HLS打包

     

    原文链接
    更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

  • 相关阅读:
    Linux异常现场--pt_regs浅析
    内核调试--确认结构体的size和结构体成员的偏移
    Linux内核中root_domain的建立与初始化
    solr学习笔记-全量更新与增量更新,去除html标签
    oracle 替换clob里面的某个特定的字符串
    oracle重置序列从1开始
    oracle提取汉字拼音首字母
    layer.open的yes函数中获取弹出层(子集iframe)中的元素或参数
    java.util.Date日期时间工具类
    js操作将数字转换成 , 逗号分割的字符串并追加‘万’字
  • 原文地址:https://www.cnblogs.com/zhaowei121/p/10330277.html
Copyright © 2011-2022 走看看