一、开通阿里云直播

  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

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

  1. java阿里云直播推流拉流工具类

    package com.core.common.utils;import com.alibaba.fastjson.JSONObject;import java.util.HashMap; impor ...

  2. PHP关于实现腾讯云直播的推流和拉流

    PHP关于实现腾讯云直播的推流和拉流 步骤如下 注册一个腾讯云账户,搜产品 :云直播,他们应该会送你20G的流量包,测试的时候足够用了: 设置推流域名和播放(拉流)域名: 推流域名腾讯会直接给你分配一 ...

  3. 浅析主流视频直播系统的推拉流架构、传输协议

    随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受.特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场.游戏类板块,更是作为电商的一种新模式得到迅速成长. ...

  4. 视频直播技术干货:一文读懂主流视频直播系统的推拉流架构、传输协议等

    1.引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受.特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场.游戏类板块,更是作为电商的一种新模式得到 ...

  5. 视频直播技术分享:一文读懂主流视频直播系统的推拉流架构、传输协议等

    本文由蘑菇街前端开发工程师"三体"分享,原题"蘑菇街云端直播探索--启航篇",有修订. 1.引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方 ...

  6. Java 实现阿里云直播

    阿里云播放器直接在线点播视频以及直播技术,此处记录直播实现过程 更多精彩 更多技术博客,请移步 IT人才终生实训与职业进阶平台 官网 阿里云直播-快速入门 准备步骤 创建 阿里云账号 根据 流程 完成 ...

  7. JAVA生成阿里云直播推流和拉流

    import cn.hutool.crypto.digest.DigestUtil; import org.apache.commons.lang.StringUtils;import java.ut ...

  8. 【Android】使用阿里云直播实现手机直播功能

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.阿里云视频直播流程 二.录制直播推流步骤 1. 集成说明 通过本地依赖方式集成SDK 通过Maven依赖方式集成S ...

  9. 详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写

    详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写 一.登录后台找到直播配置 依次在站点配置-直播配置 ​ 编辑切换为居中 添加图片注释,不超过 140 ...

最新文章

  1. 明星软件工程师的十种特质
  2. position:fixed和scroll实现div浮动【示例】
  3. c盘哪些文件可以删除_Win7下C盘哪些文件可以删除?
  4. el-drawer点击的时候为什么有边框_剪映教学之视频拍摄加剪辑【一】:出视频上下黑色边框模糊效果,视频广告配音...
  5. 树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
  6. 马斯克再次进行新冠病毒检测 预计今天出结果
  7. Vss2005局域网开发权限设置指南
  8. 第十二章: 部署Django
  9. 定了!百度运维工程师非法挖矿获利 10 万、被判 3 年,如何避免面向监狱编程?...
  10. 【COLING2020】面向方面级情感分类的注意力转移网络
  11. 阶段3 2.Spring_03.Spring的 IOC 和 DI_13 课程知识梳理
  12. SkinSharp函数文档
  13. Django新手入门(三)——使用PyCharm创建Django项目
  14. python核心技术与实战,Python核心技术与实战——十五|深入了解迭代器和生成器...
  15. win操作iOS UI自动化(tidevice+appium)
  16. HTML文件命名_没有删不掉的文件:强制终止、一键解锁,样样精通
  17. 推荐10个免费在线测试网页性能工具
  18. 利用Qt制作QQ的登录及主界面
  19. C语言课设中的问题(数据写入文件)
  20. Excel如何快速预览查看图片?

热门文章

  1. 搭建企业级微信公众号管理平台(二)----WxJava框架快速开发微信公众号
  2. 【Unity】通过Plane播放视频存在的颜色偏暗的问题
  3. Myeclipse报错:org.eclipse.swt.custom.StyledText.getScrollbarsMode()I (成功解决)
  4. Echarts 折线图对接后台数据
  5. 8张采用1280*1024计算机,一幅分辨率为1280*1024的8:8:8的RGB彩色图像,其容量大致为...
  6. 各类IT英文简写全称
  7. 星巴克中国啡快在支付宝、淘宝等多平台焕新上线
  8. 武林外传经典对话大全
  9. 算法数据结构(三十八)----DC3算法
  10. 音视频开发---ffmpeg rtmp推流