package com.core.common.utils;import com.alibaba.fastjson.JSONObject;import java.util.HashMap;
import java.util.Map;/*** @Author peng* @Description: 阿里云直播推拉流地址工具类*/
public class AliPlayAndPushUtils {/*** 推流域名 阿里云配置的推流域名*/private static final String pushDomain = "推流域名";/*** 拉流域名 阿里云配置的拉流域名*/private static final String pullDomain = "播流域名";/*** appName*/private static final String appName = "随便取一个app名字:比如说 penggelive";/*** 鉴权key: 阿里云创建了推流域名和播流域名过后,他给生成的,每个域名一个,推流用推流的key,播流用播流的key,我这里只有一个key,因为我自己定义的一个,然后去阿里云里面把他们两个的权鉴备用key都设置成我设置的了*/private static final String key = "xxxxxxx";/*** @param time       十位数的时间戳* @return 推流的地址*/public static String CreatePushUrl(String streamName, long time) {String strpush = "/" + appName + "/" + streamName + "-" + time + "-0-0-" + key;String pushUrl = "rtmp://" + pushDomain + "/" + appName + "/" + streamName + "?auth_key=" + time + "-0-0-" + MD5Utils.getMD5(strpush);
//        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>推流:   " + pushUrl);return pushUrl;}/*** @param time       十位数的时间戳
//     * @param rand       这是用来标识的 否则同一个时间戳 生成的地址总是相同的  随机数,建议使用UUID(不能包含中划线“-”,例如: 477b3bbc253f467b8def6711128c7bec 格式)* @return 播放流的地址 默认是flv  也可以更改此代码*/public static String GetPlayUrl(String streamName, long time) {String strviewrtmp1 = null;String strviewflv1 = null;String strviewm3u81 = null;String rtmpurl1 = null;String flvurl1 = null;String m3u8url1 = null;strviewrtmp1 = "/" + appName + "/" + streamName + "-" + time + "-0-0-" + key;strviewflv1 = "/" + appName + "/" + streamName + ".flv-" + time + "-0-0-" + key;strviewm3u81 = "/" + appName + "/" + streamName + ".m3u8-" + time + "-0-0-" + key;rtmpurl1 = "rtmp://" + pullDomain + "/" + appName + "/" + streamName + "?auth_key=" + time + "-0-0-" + MD5Utils.getMD5(strviewrtmp1);flvurl1 = "http://" + pullDomain + "/" + appName + "/" + streamName + ".flv?auth_key=" + time + "-0-0-" + MD5Utils.getMD5(strviewflv1);m3u8url1 = "http://" + pullDomain + "/" + appName + "/" + streamName + ".m3u8?auth_key=" + time + "-0-0-" + MD5Utils.getMD5(strviewm3u81);Map<String, String> resultMap = new HashMap<>(5);resultMap.put("rtm", rtmpurl1);resultMap.put("flv", flvurl1);resultMap.put("m3u8", m3u8url1);
//        System.out.println(">>>>>>>>>>>>>>>>>>拉流:  " + rtmpurl1);
//        System.out.println(">>>>>>>>>>>>>>>>>>拉流:    " + flvurl1);
//        System.out.println(">>>>>>>>>>>>>>>>>>拉流:    " + m3u8url1);return JSONObject.toJSONString(resultMap);}}
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.UUID;/*** @Author wp* @Description:*/
public class MD5Utils {public static String getMD5(String str) {try {// 生成一个MD5加密计算摘要MessageDigest md = MessageDigest.getInstance("MD5");// 计算md5函数md.update(str.getBytes());// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值String md5=new BigInteger(1, md.digest()).toString(16);//BigInteger会把0省略掉,需补全至32位return fillMD5(md5);} catch (Exception e) {throw new RuntimeException("MD5加密错误:"+e.getMessage(),e);}}private static String fillMD5(String md5){return md5.length()==32?md5:fillMD5("0"+md5);}public static String getUUID() {return UUID.randomUUID().toString().replaceAll("-", "");}
}

java阿里云直播推流拉流工具类相关推荐

  1. 阿里云视频点播-->>>阿里云媒资上传工具类及配置

    阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...

  2. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

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

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

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

    一.开通阿里云直播 首先进入阿里云直播产品主页:https://www.aliyun.com/product/live . 点击下方的"立即开通". 如果是还未注册的用户请按照页面 ...

  5. video 拉流卡顿_【video】视频直播推流拉流慢、卡顿解决方案

    一.摘要 视频直播类App当前已经普遍采用CDN来实现访问加速,但还是经常遇到推拉流慢.卡顿的问题,一般是由于调度不精准.域名劫持.终端手机接入网络动态切换等因素导致.结合使用CDN和HTTPDNS可 ...

  6. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  7. 直播推流拉流概念介绍

    先上图 推流,指的是把采集阶段封包好的内容传输到服务器的过程.介绍一下目前有主流的推送协议,以及各自的优缺点. RTMP RTMP是Real Time Messaging Protocol(实时消息传 ...

  8. upyun 又拍云直播推拉流

    SDK下载地址:https://github.com/upyun/ios-live-sdk 运行环境:iOS8以上,并只能在真机中运行,不然会报错 模拟器调试过滤: #if !TARGET_OS_SI ...

  9. 安卓 即构科技直播使用阿里云鉴权切换流地址

    即构科技集成直播后,需求中需要拉流端(观众)切换到阿里云的流地址,而不是用即构返回的即构流地址,原因是即构的流比较贵,阿里云的收费非常的便宜,差距大概是阿里云的四倍吧,所以考虑到用前端进行流地址的切换 ...

最新文章

  1. CentOS 7.3 安装配置RabbitMQ
  2. Gephi——使用map of countries和Geo Layout实现包含地理坐标的数据可视化
  3. Struts 2基础
  4. Oracle中过程/函数返回结果集
  5. asp.net mvc 实现文件管理参考资料
  6. nacos 启动_【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos
  7. python沙箱逃逸小结
  8. tag untag_交换机该怎么理解Hybird中Tag和Untag端口模式?
  9. 用R进行meta分析(metafor包)
  10. 关于EPCS系列芯片的说明
  11. 2021年中国原油产量、需求量及石油原油行业发展趋势分析[图]
  12. Python数据分析项目实例5: 分析某餐饮企业的订单详情表数据(基于matplotlib的python数据可视化分析)
  13. lisp 焊接符号标注_焊接符号标注及表示方法-详解aws焊接符号、钢结构焊接符号含义大全...
  14. Sitemesh小记
  15. swper插件:刷新页面,banner轮播图出不来
  16. html作业介绍家乡,dreamweaver网页大作业 我的家乡
  17. 一体化伺服电机一圈多少脉冲
  18. Project计算项目进度
  19. 上传artifacts到maven仓库
  20. 如何备份Chrome浏览器收藏夹

热门文章

  1. 2019软科中国【网络空间安全】专业大学排名
  2. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(4)
  3. 2022国际版多语言多商户智能机器人在线客服源码配置文档
  4. 2021-09-19OSPF接口网络类型实验
  5. 希捷BACKUP PLUS提供200G ONEDRIVE云存储
  6. 索尼爱立信W705评测:音乐+wifi无线上网
  7. 用红蓝3D眼镜在PC上观看3D影片效果并不好
  8. FFMPEG之 Ubuntu系统上配置MP3和AMR编解码工具
  9. 什么是MOS管的米勒效应
  10. 手把手Selenium安装使用及实战爬取前程无忧招聘网站(一)