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字段就可以观看直播了