java 阿里云直播配置及推拉流地址获取

news/2025/1/1 8:12:15/

一、开通阿里云直播

  1. 首先进入阿里云直播产品主页:https://www.aliyun.com/product/live 。 点击下方的“立即开通”。 如果是还未注册的用户请按照页面提示进行完成注册并实名认证。

在这里插入图片描述

2、首次进入会提示开通服务,点击“开通服务”,然后选择计费方式,同意服务协议,然后立即开通。

  • 按使用流量计费适合用于观看直播人数较少的情况,
  • 宽带峰值计费适合用于观看人数较多的时候,如果不确定就按使用流量计费。
    在这里插入图片描述
    前期用量不太多,选择按“流量计费”
    在这里插入图片描述
    服务开通以后,按照官网流程,下一步就是 直播的基础配置:域名管理

在这里插入图片描述

二、接入推流域名

1、由于阿里云直播没有提供推流域名,所以我们要接入自己的推流域名。点击左侧“加速服务~添加域名”

在这里插入图片描述
2、按下图示例,根据自己的实际填写,然后提交。
在这里插入图片描述

3、返回“域名管理”,会看到刚才添加的推流域名,把域名右侧的“CNAME”值复制出来,到您的域名服务商处做解析。

在这里插入图片描述

在这里插入图片描述
4、配置完上一个步骤后,返回域名管理,稍等几分钟解析生效后会看到域名状态已经是“正常运行”。点击域名右侧的“域名配置”进入配置页面。

在这里插入图片描述

注意:建议先配置推流 。 因为后面在配置播流时要去关联推流,所以先配置

5、点击左侧的“访问控制”,然后修改URL鉴权配置,按下图示例填写,然后提交。
在这里插入图片描述
弹窗,修改配置
在这里插入图片描述

三、接入播流域名

前四步与接入推流域名的过程类似,就不再赘述

五、关联推流域名。 点击“基本配置~推流信息”

在这里插入图片描述

#######################分割线#######################

在这里插入图片描述
#######################分割线#######################
在这里插入图片描述

点“确定”。 确定完成之后,基本上我们的推流域名与播流域名就配置完成了 。

四、测试工具

完成了推流域名与播流域名的配置后, 可以通过阿里提供的工具来进行推/播流的生成了
点击左侧的 “工具箱~地址生成器”
在这里插入图片描述
#######################分割线#######################
在这里插入图片描述

五、 java代码生成推拉流地址

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang3.*;
public class Create_Live_Url { /*** 计算md5* @param param* @return*/public static String md5(String param) {if(param == null || param.length() == 0) {return null;}try {MessageDigest md5 = MessageDigest.getInstance("MD5");md5.update(param.getBytes());byte[] byteArray = md5.digest();BigInteger bigInt = new BigInteger(1, byteArray);// 参数16表示16进制String result = bigInt.toString(16);// 不足32位高位补零while(result.length() < 32) {result = "0" + result;}return result;} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}/**
* 生成推流地址
* @param pushDomain 推流域名
* @param pushKey 推流域名配置的鉴权Key
* @param appName 推流AppName
* @param streamName 推流StreamName
* @param expireTime 过期时间(单位是秒)
*/public static void generate_push_url(String pushDomain,String pushKey,String appName,String streamName,long expireTime) {String pushUrl = "";//推流域名未开启鉴权功能的情况下if(pushKey=="") {pushUrl = "rtmp://"+pushDomain+"/"+appName+"/"+streamName;}else {long timeStamp = System.currentTimeMillis()/1000L + expireTime;String stringToMd5 = "/"+appName+"/"+streamName+"-"+Long.toString(timeStamp)+"-0-0-"+pushKey;String authKey = md5(stringToMd5);pushUrl = "rtmp://"+pushDomain+"/"+appName+"/"+streamName+"?auth_key="+Long.toString(timeStamp)+"-0-0-"+authKey;}System.out.println("推流地址是: "+pushUrl);}/**
* 生成播放地址
* @param pullDomain 播放域名
* @param pullKey 播放鉴权Key
* @param appName 播放appName(同推流appName)
* @param streamName 播放streamName 同推流streamName)
* @param expireTime 过期时间(单位是秒
*/ public static void general_pull_url(String pullDomain,String pullKey,String appName,String streamName,long expireTime) {String rtmpUrl = ""; //rtmp的拉流地址String hlsUrl = "";  //m3u8的拉流地址String flvUrl = "";  //flv的拉流地址//播放域名未配置鉴权Key的情况下if(pullKey == "") {rtmpUrl = "rtmp://"+pullDomain+"/"+appName+"/"+streamName;hlsUrl = "http://"+pullDomain+"/"+appName+"/"+streamName+".m3u8";flvUrl = "http://"+pullDomain+"/"+appName+"/"+streamName+".flv";}else {long timeStamp = System.currentTimeMillis()/1000L + expireTime;String rtmpToMd5 = "/"+appName+"/"+streamName+"-"+Long.toString(timeStamp)+"-0-0-"+pullKey;String rtmpAuthKey = md5(rtmpToMd5);rtmpUrl = "rtmp://"+pullDomain+"/"+appName+"/"+streamName+"?auth_key="+Long.toString(timeStamp)+"-0-0-"+rtmpAuthKey;String hlsToMd5 = "/"+appName+"/"+streamName+".m3u8-"+Long.toString(timeStamp)+"-0-0-"+pullKey;String hlsAuthKey = md5(hlsToMd5);hlsUrl = "http://"+pullDomain+"/"+appName+"/"+streamName+".m3u8"+"?auth_key="+Long.toString(timeStamp)+"-0-0-"+hlsAuthKey;String flvToMd5 = "/"+appName+"/"+streamName+".flv-"+Long.toString(timeStamp)+"-0-0-"+pullKey;String flvAuthKey = md5(flvToMd5);flvUrl = "http://"+pullDomain+"/"+appName+"/"+streamName+".flv"+"?auth_key="+Long.toString(timeStamp)+"-0-0-"+flvAuthKey;}System.out.println("RTMP播放地址为: "+rtmpUrl);System.out.println("m3u8播放地址为: "+hlsUrl);System.out.println("flv播放地址为: "+flvUrl);
}public static void main(String[] args) {// TODO Auto-generated method stub//生成长度为5的随机字符串作为appName和streamName(字母和数字组合)String appName = RandomStringUtils.randomAlphanumeric(5);;String streamName = RandomStringUtils.randomAlphanumeric(5);;long expireTime = 3600L;String pullDomain = "mxl-pull.pier39.cn";String pullKey = "querty1234";String pushDomain = "mxl-push.pier39.cn";String pushKey = "querty123";Create_Live_Url.general_pull_url(pullDomain, pullKey, appName, streamName, expireTime);Create_Live_Url.generate_push_url(pushDomain, pushKey, appName, streamName, expireTime);
}} //end class

参考:https://help.aliyun.com/document_detail/456848.htm?spm=5176.13499635.help.dexternal.6b482699KJQJLs


http://www.ppmy.cn/news/785602.html

相关文章

ui设计范畴有什么麓言信息

ui设计包括很多类型的设计&#xff0c;主要包括&#xff1a;平面设计、网页设计、电子商务设计、APP界面设计等。下面是ui设计范畴有什么的内容&#xff0c;一起来看看。   ui设计范畴有什么   1.平面设计   我们通常理解的平面设计大多是线下的实体设计&#xff0…

游戏专题类,web网页模板分享,前端期末作业,静态页面,带轮播图,登录页

index.html <html lang"zh" data-hairline"true" data-theme"light"><head><meta charset"utf-8"><title data-react-helmet"true">发现</title><meta name"viewport" conten…

无事生非,继续折腾

1、Alienware TactX 鼠标的左键微动故障了&#xff0c;DELL过保了&#xff0c;不受理&#xff0c;不修。搞笑的是&#xff1a;如果当初是随笔记本送的则随机器保3年&#xff0c;如你花钱买的600大洋&#xff0c;则只保一年。该我倒霉&#xff0c;自购cherry 的DM10微动&#xf…

初识3D Game——战地3,使命召唤8:现代战争3,Crysis 2:孤岛危机2

战地3的画面效果及人物渲染没有使命召唤8好。但是战地3的故事情节很不错&#xff0c;而使命召唤的故事情节设计是在基于几个人物进行的设计&#xff0c;情节很紧凑。 孤岛危机故事情节不好&#xff0c;而且我也不喜欢外星人题材&#xff0c;该故事中发生的城市是一个孤岛&#…

薇娅和李佳琦带货百亿奇迹背后是这些技术团队的努力

伴随11月11日的零点&#xff0c;2020年的双11热浪高潮终于汹涌而来&#xff0c;天猫双11全球狂欢季实时成交额突破3723亿。 此次淘宝直播数据显示&#xff0c;商家自播GMV占比超六成&#xff0c;直播商家覆盖数增长220%。 可想&#xff0c;薇娅与李佳琦的淘宝直播间大概是这场…

web开发技术培训学校,CSS标准文档流与脱离文档流

字体样式 font-weight: 文字粗细 normal: 默认值&#xff0c;标准粗细bold&#xff1a;粗体bolder&#xff1a;更粗lighter&#xff1a;更细100~900&#xff1a;设置具体粗细&#xff0c;400等同于normal&#xff0c;而700等同于boldinherit&#xff1a;继承父元素字体的粗细…

看门狗性能软件测试,运行问题确实存在 《看门狗》PC版游戏性能分析

《看门狗》发售已经有几天了&#xff0c;今天我们要看看这款开放世界游戏在中低档配置上的性能。在过去几个月内我们看到了大量关于这款游戏的报道&#xff0c;所以已经没有必要探讨游戏是否被降级。是的&#xff0c;游戏确实被降级了&#xff0c;而且还有不同的运行问题。 我们…

元宇宙,小荷才露尖尖角

从闻所未闻到骤然爆火&#xff0c;脱胎于科幻小说的元宇宙&#xff0c;在过去的一年时间里迎来了集中爆发。尽管各路玩家对元宇宙进行了诸多着墨&#xff0c;但时至今日其从概念向实处进发仍然存在现实差距。 放眼行业&#xff0c;虽然元宇宙游戏、直播、社交等应用也曾风行一…