阿里云直播播放地址获取方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36535245/article/details/82152241

1.首先在阿里云直播控制台域名管理选择要直播的域名>点击管理>基本信息有基本配置信息,在转码管理里面新建一个转码模板,将转码模板的appName和基本配置信息一起保存在后台

2.生成推流地址

  int time = (int) DateTime.Now.Subtract(DateTime.Parse("1970-1-1")).TotalSeconds+1800;
            string key = "你的鉴权";
            string strpush = "/" + AppName + "/" + StreamName + "-" + time + "-0-0-" + key;
            string pushurl = "rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=播放地址域名&auth_key=" + time + "-0-0-" + md5(strpush);

3.将推流地址写入你要发起直播的设置里面

4.生成播放地址

    /// <summary>
    /// 将多个清晰度地址组合成json
    /// </summary>
    /// <returns></returns>
    public string GetDefinitionUrl(string StreamName)
    {
        Dictionary<string, string> urlList = new Dictionary<string, string>();
        string flvUrlLld = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "lld")[2].Url;
        string flvUrlLsd = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "lsd")[2].Url;
        string flvUrlLhd = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "lhd")[2].Url;
        string Urlsd = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "sd")[2].Url;
        string Urlld = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "ld")[2].Url;
        string Url = new AliyunOSSUntility.LiveHandler().GetZhuanMaUrl("你的appName", StreamName, "")[2].Url;
        urlList.Add("原画", Url);
        urlList.Add("流畅", flvUrlLld);
        urlList.Add("标清", flvUrlLsd);
        urlList.Add("高清", flvUrlLhd);
        urlList.Add("窄带高清-流畅", Urlld);
        urlList.Add("窄带高清-标清", Urlsd);
        return JsonConvert.SerializeObject(urlList);
    }

        /// <summary>
        /// 直播转码url
        /// </summary>
        /// <param name="AppName"></param>
        /// <param name="StreamName"></param>
        /// <param name="startTime"></param>
        /// <param name="TemplateId"></param>
        /// <returns></returns>
        public List<ViewListModel> GetZhuanMaUrl(string AppName, string StreamName, string TemplateId = "")
        {
            int time = (int)DateTime.Now.Subtract(DateTime.Parse("1970-1-1")).TotalSeconds + 1800;
            string strviewrtmp1 = null;
            string strviewflv1 = null;
            string strviewm3u81 = null;
            string rtmpurl1 = null;
            string flvurl1 = null;
            string m3u8url1 = null;
            if (string.IsNullOrWhiteSpace(TemplateId))
            {
                strviewrtmp1 = "/" + AppName + "/" + StreamName  + "-" + time + "-0-0-" + liveKey;
                strviewflv1 = "/" + AppName + "/" + StreamName + ".flv-" + time + "-0-0-" + liveKey;
                strviewm3u81 = "/" + AppName + "/" + StreamName + ".m3u8-" + time + "-0-0-" + liveKey;
                rtmpurl1 = "rtmp://" + liveDomain + "/" + AppName + "/" + StreamName + "?auth_key=" + time + "-0-0-" + md5(strviewrtmp1);
                flvurl1 = "http://" + liveDomain + "/" + AppName + "/" + StreamName  + ".flv?auth_key=" + time + "-0-0-" + md5(strviewflv1);
                m3u8url1 = "http://" + liveDomain + "/" + AppName + "/" + StreamName  + ".m3u8?auth_key=" + time + "-0-0-" + md5(strviewm3u81);
            }
            else
            {
                strviewrtmp1 = "/" + AppName + "/" + StreamName + "_" + TemplateId + "-" + time + "-0-0-" + liveKey;
                strviewflv1 = "/" + AppName + "/" + StreamName + "_" + TemplateId + ".flv-" + time + "-0-0-" + liveKey;
                strviewm3u81 = "/" + AppName + "/" + StreamName + "_" + TemplateId + ".m3u8-" + time + "-0-0-" + liveKey;
                rtmpurl1 = "rtmp://" + liveDomain + "/" + AppName + "/" + StreamName + "_" + TemplateId + "?auth_key=" + time + "-0-0-" + md5(strviewrtmp1);
                flvurl1 = "http://" + liveDomain + "/" + AppName + "/" + StreamName + "_" + TemplateId + ".flv?auth_key=" + time + "-0-0-" + md5(strviewflv1);
                m3u8url1 = "http://" + liveDomain + "/" + AppName + "/" + StreamName + "_" + TemplateId + ".m3u8?auth_key=" + time + "-0-0-" + md5(strviewm3u81);
            }
            List<ViewListModel> listModel = new List<ViewListModel>();
            listModel.Add(new ViewListModel()
            {
                LeiXing = UrlType.RTMP,
                Url = rtmpurl1
            });
            listModel.Add(new ViewListModel()
            {
                LeiXing = UrlType.FLV,
                Url = flvurl1
            });
            listModel.Add(new ViewListModel()
            {
                LeiXing = UrlType.HLS,
                Url = m3u8url1
            });

            return listModel;
        }

最后给播放地址放入阿里云的视频播放器 source字段就可以观看直播了

猜你喜欢

转载自blog.csdn.net/qq_36535245/article/details/82152241