腾讯云直播生成 推流地址 拉流地址
/***
* 腾讯云 直播
*
*
*/
public class TencentYunVedioUtil {
public static final String bizid = "54852";
//推流防盗链的key
public static final String push_key = "cbdaq2bbfqewrb6a446213ba5db84786e";
//拉流防盗链的key
public static final String play_key = "u36VZisasfD1THL21C232LIxT997m9x2e";
//推流地址 例子 bizid:8888 直播码:8888_test_123 防盗链签名 txSecret 过期时间 txTime
public static final String pushUrl ="rtmp://54852.livepush.myqcloud.com/live/";
//拉流地址 例子 rtmp 只需要将push 改成play即可
public static final String playUrl_rmpt ="rtmp://live.test.xx.cn/live/";
public static final String playUrl_flv ="rtmp://live.test.xx.cn/live/";
public static final String playUrl_hls ="rtmp://live.test.xx.cn/live/";
/**
* 生成防盗链签名
* @param key :防盗链key
* @param stream_id :直播码(或称作流ID)
* @param txTime :过期时间 16进制的unix时间戳
* @return
*/
public static String genSign(String key,String stream_id,String txTime) {
return MD5Encode.getMD5Str(key+stream_id+txTime);
}
/**
* 生成直播码
* 直播码 也叫房间号,推荐用随机数字或者用户ID,注意一个合法的直播码需要拼接 BIZID 前缀。
* @param bizid
* @param userId 用户id
* @return
*/
public static String genLiveCode(String bizid,String userId) {
return bizid+"_"+userId;
}
/**
* 将传入的时间转换为 16进制
* @param date
* @return
*/
public static String to16Hex(Date date) {
Long ab = date.getTime()/1000;
String a = Long.toHexString(ab);
return a.toUpperCase();
}
/**
* 将当前时间加1天
*/
public static Date addOneDay() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);
Date date = cal.getTime();
return date;
}
/**
* 校验是否在线
* @param urls 拉流地址
* @return
*/
public static boolean isPush(String urls) {
try {
URL url = new URL(urls);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000);
conn.setRequestMethod("GET");
conn.connect();
return conn.getResponseCode() == 200;
} catch (Exception e) {
}
return false;
}
/**
* 生成推流全路径地址
* @param pushUrl 推流地址 头部
* @param stream_id 直播码 调用该方法genLiveCode() 生成
* @param push_key 推流鉴权
* @return
*/
public static String createPushUrl(String pushUrlHead,String stream_id,String push_key) {
//过期时间 16进制的unix时间戳
String txTime = to16Hex(addOneDay());
StringBuffer sb = new StringBuffer();
sb.append(pushUrlHead)
.append(stream_id)
.append("?")
.append("txSecret=")
.append(genSign(push_key, stream_id,txTime))
.append("&")
.append("txTime=")
.append(txTime);
return sb.toString();
}
/**
* 生成拉流全路径地址
* @param playUrlHead 拉流的头地址
* @param stream_id 直播码 调用该方法genLiveCode() 生成
* @param play_key 拉流鉴权
* @param end 如 .flv结尾
* @return
*/
public static String createPlayUrl(String playUrlHead,String stream_id
,String play_key,String end) {
//过期时间 16进制的unix时间戳
String txTime = to16Hex(addOneDay());
StringBuffer sb = new StringBuffer();
sb.append(playUrlHead)
.append(stream_id)
.append("?")
.append("txSecret=")
.append(genSign(play_key, stream_id,txTime))
.append("&")
.append("txTime=")
.append(txTime)
.append(end);
return sb.toString();
}
public static void main(String[] args) {
//生成推流地址
System.out.println(createPushUrl(pushUrl,"test",push_key));
//生成拉流地址
System.out.println(createPlayUrl(playUrl_rmpt,"test",play_key,""));
}
}
public class MD5Encode {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
public static String getMD5Str(String str) {
String resStr = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
resStr = byteArrayToHexString(md.digest(str.getBytes()));
} catch (Exception ex) {
ex.printStackTrace();
}
return resStr;
}
/**
* 转换字节数组为16进制字串
*
* @param b
* 字节数组
* @return 16进制字串
*/
private static String byteArrayToHexString(byte[] b) {
StringBuffer resSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resSb.append(byteToHexString(b[i]));
}
return resSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
}
腾讯云直播生成 推流地址 拉流地址相关推荐
- PHP关于实现腾讯云直播的推流和拉流
PHP关于实现腾讯云直播的推流和拉流 步骤如下 注册一个腾讯云账户,搜产品 :云直播,他们应该会送你20G的流量包,测试的时候足够用了: 设置推流域名和播放(拉流)域名: 推流域名腾讯会直接给你分配一 ...
- 推流地址 java_Java实现腾讯云直播生成推流地址和播放地址
最近在做小程序直播,用到了腾讯云直播,下面为相关文档和程序 URL规则:https://cloud.tencent.com/document/product/267/13457 防盗链计算:https ...
- Java实现腾讯云直播生成推流地址和播放地址
最近在做小程序直播,用到了腾讯云直播,下面为相关文档和程序 URL规则:https://cloud.tencent.com/document/product/267/13457 防盗链计算:https ...
- java 阿里云直播配置及推拉流地址获取
一.开通阿里云直播 首先进入阿里云直播产品主页:https://www.aliyun.com/product/live . 点击下方的"立即开通". 如果是还未注册的用户请按照页面 ...
- 腾讯云 直播 OBS 在线推流
步骤一:设置推流地址 打开 OBS,您可通过底部工具栏的[控件]>[设置]按钮进入设置界面. 2.单击[推流]进入流设置页签,选择服务类型为自定义流媒体服务器. 下载obs直播软件 3.将获取所 ...
- 直播推流 ffmpeg 拉流二次转发 记录
因 前两天老大给我发了个任务,说让我做一个flask 服务器接口,接收请求,在请求参数中获取 直播拉流地址和 推流地址,然后调用 ffmpeg 到拉流地址上进行拉流 将拉到的流媒体数据推到另一个直播服 ...
- 推流和拉流的概念以及RTMP和HLS协议
https://www.bbsmax.com/A/x9J2wZM56o/ 推流为将直播内容推送至服务器的过程:拉流为服务器已有直播内容,用指定地址进行拉取的过程. rtmp rtmp是Real Tim ...
- 腾讯云直播、生成腾讯推拉流
一.背景 最近公司用到推拉流,经过一番比较后决定使用腾讯云.但是腾讯云的文档确实有点一言难尽,去网上搜索一下例子,结果就是把腾讯云的demo粘贴过去,还必须得是会员才能看,坑啊!!所以把自己做的小de ...
- JAVA生成阿里云直播推流和拉流
import cn.hutool.crypto.digest.DigestUtil; import org.apache.commons.lang.StringUtils;import java.ut ...
- 不止直播:腾讯云直播MLVB 插件除了推流/拉流还有哪些亮眼功能
在之前几篇的文章中,我们介绍了腾讯云移动直播插件MLVB的一些基础概念()以及移动直播控件可以拓展的直播场景(),今天就来分享MLVB插件除了直播的基础推拉流功能以外还有哪些功能来帮助直播APP和小程 ...
最新文章
- 猪心移植人体背后竟有个川妹子!36岁哈佛女学霸敲除猪致病基因,获赞「基因剪刀手」...
- 低调的苹果罕见发表论文,揭开自动驾驶汽车技术的冰山一角
- CF Educational Round 23 F.MEX Queries
- java常见的异常类型_Java几种常见的异常类型
- python列表list的基本性质
- (转载)python多行注释
- 【转载】这次拆库 应是微服务化的拆分方式
- 曼昆经济学原理(微经部分)笔记整理
- python多元线性回归实例_关于多元线性回归分析——PythonSPSS
- udp聊天?使用udp+python实现多人聊天室
- 文件流操作,报“because it is being used by another process. ”错误解决
- 阿里云云计算 31在线实验--弹性伸缩(AS)初体验
- ubuntu16.04便捷使用(常用工具、常用快捷键、常用使用教程)
- 基于JAVAEE公共自行车租赁系统
- Windows 2008 R2 终端服务器授权安装配置
- 应付模块的R12 TRACE 和 FND Debug 文件 / FND 日志 调试
- 数据中台,我还能爱你吗(文末送书)
- layui复选框,设置部分可选
- 根据json 动态生成页面——问卷页面
- 今天是2012年9月20日
热门文章
- NetVLAD: CNN architecture for weakly supervised place recognition 翻译
- 2060显卡驱动最新版本_如何更新你的显卡驱动程序
- windows 内网域电脑无法ntp时间同步
- 我国5G现状:今年底或发放5G牌照
- 25匹马,5个跑道,不用外界工具怎样选出最快的5匹,要次数最短
- waves效果器_waves效果器:《我不是药神》配乐炼成记—Waves访时俊峰黄超
- PanGu-Coder:函数级的代码生成模型
- 计算机原理 · 全加器
- Java一个汉字占几个字节(详解与原理)(转载)
- VBox下频繁出现0x00000000指令引用的0x00000000内存,该内存不能为written:解决方案(附文件)