北京协会网站建设,wordpress桌面应用,微博搜索引擎优化,pc端网站开发技术一、开通阿里云直播
首先进入阿里云直播产品主页#xff1a;https://www.aliyun.com/product/live 。 点击下方的“立即开通”。 如果是还未注册的用户请按照页面提示进行完成注册并实名认证。 2、首次进入会提示开通服务#xff0c;点击“开通服务”#xff0c;然后选择计…一、开通阿里云直播
首先进入阿里云直播产品主页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_keyLong.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_keyLong.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_keyLong.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_keyLong.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?spm5176.13499635.help.dexternal.6b482699KJQJLs