新闻资讯

新闻资讯 产品更新

Java端获取阿里云视频直播推流和波流教程

编辑:006     时间:2020-03-04

近年来,随着网络的发达,直播行业也是混的风生水起,今天小编叫你如何借助阿里云的视频直播功能做一套直播和观看直播的完整流程,让小白也能搞直播!

第一步:首先开通阿里云的视频直播功能,在域名管理处,添加播流域名推流域名(注意:两域名的直播中心地址要一致!!!!!


第二步:在播流域名处,关联添加的推流域名,然后在两个域名开启URL鉴权,并记录相应的KEY值


注意:别忘了在播流域名配置跨域访问设置哦!!!


第三步:开始部署java代码:

①在本地项目中引入Jar包                                   

aliyun-java-sdk-live-3.8.0.jar

commons-codec-1.10.jar

hutool-core-4.4.0.jar

②在Java代码中放入自己的 域名,APPname,StreamName,和域名相应的鉴权

获取推流和播流地址:

public Map<String,Object> push(String appName,String streamName)
   { // 推流域名  String pushDomain = "******";    
 // 用名 String appName = "*********";   // 流名 String streamName = "*********";  // 推流key  String pushIdentKey = "********";  // url有效时间  //  Integer identUrlValidTime = aliyunLiveConfig.getAliyunLiveIdentUrlValidTime();  // 时间  String timestamp = String.valueOf(System.currentTimeMillis() / 1000);    // 合推流域名前//      rtmp://{pushDomain}/{appName}/{streamName}   String rtmpUrl = StrUtil.format("rtmp://{}/{}/{}", pushDomain, appName, streamName);  System.out.println(rtmpUrl);    // md5加密串 //    
  /{appName}/{streamName}-{timestamp}-0-0-{pushIdentKey}  String md5Url = StrUtil.format("/{}/{}-{}-0-0-{}", appName, streamName, timestamp, pushIdentKey);   // md5加密  String md5Str = DigestUtils.md5Hex(md5Url);  System.out.println(md5Url);  System.out.println(md5Str);    // 合最终鉴权过的推流域名 //      {rtmpUrl}?auth_key={timestamp}-0-0-{md5Str}
 String finallyPushUrl = StrUtil.format("{}?auth_key={}-0-0-{}", rtmpUrl, timestamp, md5Str);  System.out.println(finallyPushUrl);  return Util.result( 0, "操作成功", 1 , finallyPushUrl ); // 返回 }           获取播流地址: 
public Map<String,Object> pull(String appName,String streamName)
   { // 拉流域名  String pullDomain = "***************";  // 用名 String appName = "********";  // 流名 String streamName = "*******";  // 拉流key  String pullIdentKey = "**********";   // url有效时间  // Integer identUrlValidTime = aliyunLiveConfig.getAliyunLiveIdentUrlValidTime();  /
/ 时间  String timestamp = String.valueOf(System.currentTimeMillis() / 1000);   // 合通用域名 //      {pullDomain}/{appName}/{streamName}  String pullUrl = StrUtil.format("{}/{}/{}", pullDomain, appName, streamName);    // md5加密串 //      /{appName}/{streamName}-{timestamp}-0-0-{pullIdentKey}  String md5Url = StrUtil.format("/{}/{}-{}-0-0-{}", appName, streamName, timestamp, pullIdentKey);  String md5FlvUrl = StrUtil.format("/{}/{}.flv-{}-0-0-{}", appName, streamName, timestamp, pullIdentKey);  String md5M3u8Url = StrUtil.format("/{}/{}.m3u8-{}-0-0-{}", appName, streamName, timestamp, pullIdentKey);    // md5加密  String md5Str = DigestUtils.md5Hex(md5Url);  String md5FlvStr = DigestUtils.md5Hex(md5FlvUrl);   String md5M3u8Str = DigestUtils.md5Hex(md5M3u8Url);     // 合三拉流域名前//        rtmp://{pullUrl}?auth_key={timestamp}-0-0-{md5Str}   String rtmpUrl = StrUtil.format("rtmp://{}?auth_key={}-0-0-{}", pullUrl, timestamp, md5Str); //       
 http://{pullUrl}.flv?auth_key={timestamp}-0-0-{md5FlvStr}   String flvUrl = StrUtil.format("http://{}.flv?auth_key={}-0-0-{}", pullUrl, timestamp, md5FlvStr);
 //        http://{pullUrl}.m3u8?auth_key={timestamp}-0-0-{md5M3u8Str}  String m3u8Url = StrUtil.format("http://{}.m3u8?auth_key={}-0-0-{}", pullUrl, timestamp, md5M3u8Str);     Map<String, String> urlMap = new HashMap<String, String>();  urlMap.put("rtmpUrl", rtmpUrl);  urlMap.put("flvUrl", flvUrl);  urlMap.put("m3u8Url", m3u8Url);   return Util.result( 0, "操作成功", urlMap.size() , urlMap ); // 返回 }
到这里,访问我们相应的接口就可以获取推流和播流地址了

推流地址直接复制到 OBS 直播软件中就可以了

播流地址直接复制到阿里云播放器就可以播放了~~~~~




郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐