Java对接腾讯云直播示例

首先是官网的文档地址 云直播 新手指南

在这里插入图片描述

可以发现它这个主要是按流量和功能收费的 价格总览
流量这里还只收下行的费用,就是只收观看消耗的流量费
其它的收费就是一些增值业务费 (包括直播转码、直播录制、直播截图、直播审核、智能鉴黄、实时监播、移动直播连麦、直播时移、拉流转推、延时播放),这些不用就不收费

在这里插入图片描述

好了我们来看下怎么用
首先我们需要申请一个账号,有账号的直接登录没有的注册一个

在这里插入图片描述

登录成功后进控制台

在这里插入图片描述

直接搜云直播

在这里插入图片描述

选域名管理,注意这里需要两个域名,一般申请两个二级域名就可以了,比如拉流域名pull.test.com和推流域名push.test.com,大家自己申请,也可以申请试用域名(找客服帮你弄就可以了)
推流地址就是指录制视频的地址
拉流地址就是观看视频的地址

在这里插入图片描述

注意有任何不懂的看右下角有个客服头标,顾客是上帝,他们基本能解决你使用上的所有问题

在这里插入图片描述

域名配置好后点后面的管理

在这里插入图片描述
我这是拉流地址的配置,主要就是访问控制这一块,就是配置你视频观看地址安全的,你可以根据需要选择配置,这块都是免费的放心配没关系,特别是第一项Key鉴权,就是俗称的防盗链,为了防止有人恶意使用地址建议配置选上,记录下面那个key,后面会用到

在这里插入图片描述

这里也可以直接生成播放地址的

在这里插入图片描述

然后是推流地址配置,一样的我们把鉴权配置开启,也是为了防止有人盗用地址等问题

在这里插入图片描述
这里也可以直接生成推流地址的

在这里插入图片描述

注意:只要StreamName一样那么推流和拉流就是同一个视频,如果推流的时候两个流都往一个StreamName上推只会显示第一个流的视频

我们先测试一下刚才生成的地址,大家刚才没有保存没关系,重新生成一个就好了,地址生成没有使用不收费,因为没有产生流量
注意我们尽量用webrtc流,据文档写的这个速度快支持更大的并发

我们去常用工具测试推流地址(就是用刚才上面生成的推流地址放到3所示位置),点开始推流

在这里插入图片描述

我们再把刚才的拉流地址放到下面这个页面里点播放 (注意拉流地址的StreamName要和推流地址一样) 视频播放器

在这里插入图片描述

可以看到画面就说明刚才生成的推流地址和拉流地址可用
当然这是在控制台操作,我们需要把这个功能对接到系统里面才行,不过也很简单,就是简单的字符串拼接
直接上代码

import lombok.extern.log4j.Log4j2;
import lombok.extern.slf4j.Slf4j;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;@Slf4j
@Log4j2
public class TencentYunLiveUtil {//========================推流配置/*** 推流防盗链的key 控制台获取*/public static final String PUSH_KEY = "111111111111111111111111111111111";/*** 推流地址 控制台配置*/public static final String PUSH_URL = "webrtc://push.test.co";//========================拉流配置/*** 拉流防盗链的key 控制台获取*/public static final String PLAY_KEY = "1111111111111111111111";/*** 拉流地址 控制台配置* 可将rtmp切换为webrtc,这个更快支持高并发*/public static final String PLAY_URL = "webrtc://pull.test.co";/*** APP名称 自定义的,默认为live*/public static final String APP_NAME = "123";public static String getPushUrl(String streamName, Date time) {StringBuffer urlSB = new StringBuffer();urlSB.append(PUSH_URL);urlSB.append("/");urlSB.append(APP_NAME);urlSB.append("/");urlSB.append(streamName);urlSB.append("?");urlSB.append("txSecret=");urlSB.append(MD5Util.getMD5Str(PUSH_KEY + streamName + to16Hex(time)));urlSB.append("&");urlSB.append("txTime=");urlSB.append(to16Hex(time));return urlSB.toString();}public static String getPlayUrl(String streamName, Date time) {StringBuffer urlSB = new StringBuffer();urlSB.append(PLAY_URL);urlSB.append("/");urlSB.append(APP_NAME);urlSB.append("/");urlSB.append(streamName);urlSB.append("?");urlSB.append("txSecret=");urlSB.append(MD5Util.getMD5Str(PLAY_KEY + streamName + to16Hex(time)));urlSB.append("&");urlSB.append("txTime=");urlSB.append(to16Hex(time));return urlSB.toString();}/*** 将传入的时间转换为 16进制** @param date* @return*/public static String to16Hex(Date date) {Long aLong = date.getTime() / 1000;String hexString = Long.toHexString(aLong);return hexString.toUpperCase();}public static void main(String[] args) {// 将字符串日期转换成dateString str = "2024-03-09 12:00:00";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String pushUrl = null;try {pushUrl = getPushUrl("456", sdf.parse(str));} catch (ParseException e) {throw new RuntimeException(e);}System.out.println(pushUrl);String playUrl = null;try {playUrl = getPlayUrl("456", sdf.parse(str));} catch (ParseException e) {throw new RuntimeException(e);}System.out.println(playUrl);}}

运行一下
可以看到我们在生成的地址中加了个日期,这个日期就是当前这个链接的有效期,过了这个时间那么这个链接就会失效,但是要注意的是如果推流不结束是不会中断的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、阶梯式场景&am…

学习JAVA的第十四天(基础)

目录 Collection集合 迭代器遍历 增强for遍历 Lambda表达式遍历 List集合 遍历 数据结构 栈 队列 数组 链表 前言: 学习JAVA的第十三天 Collection集合 Collection的遍历方式: 迭代器(不依赖索引)遍…

爱普生宣布开发出独特的宽幅度LVDS输出 —可灵活选择与LSI

爱普生宣布开发出独特的宽幅度LVDS输出 —可灵活选择与LSI -相匹配的低噪声输出 精工爱普生公司(TSE: 6724,“爱普生”)开发了一种新的晶体振荡器差分输出方案。新方案,宽幅低压差分信号(WA-LVDS),可以灵活选择最适合LSI所需的幅值水平的输出…

浅谈碳化硅MOSFET TO-247封装单管引入开尔文管脚必要性

相较于传统的硅MOSFET和硅IGBT 产品,基于宽禁带碳化硅材料设计的碳化硅 MOSFET 具有耐压高、导通电阻低,开关损耗小的特点,可降低器件损耗、减小产品尺寸,从而提升系统效率。而在实际应用中,我们发现:带辅助…

外包干了一个月,技术退步明显。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 这次来聊一个大家可能也比较关心的问题,那就是就业城…

Sora的双重边缘:视频生成的革新与就业的再思考

随着科技的日新月异,人工智能(AI)和机器学习(ML)技术如潮水般涌入我们的日常生活,为各个领域带来了翻天覆地的变化。在这一浪潮中,Sora作为一款前沿的AI视频生成工具,凭借其高度逼真…

MindOpt优化器: 浅谈版本0.x和1.x之间API的差异

Mindopt 是一个优化求解器,如果它有两个主要版本——0.xx和1.x.x(最新版本1.1.1),它们代表着软件开发的两个不同阶段。版本1.0.0表示软件的一个大的里程碑,代表着软件第一个正式的“成熟”发布版本,而0.25是…

MySQL--优化(索引--索引失效场景)

MySQL–优化(索引–索引失效场景) 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 常见的索引失效场景 1、场景准备: 给 tb_user 表创建联合索引,字段为&#xff1…

消息队列-Kafka-消费方如何分区与分区重平衡

消费分区 资料来源于网络 消费者订阅的入口:KafkaConsumer#subscribe 消费者消费的入口:KafkaConsumer#poll 处理流程: 对元数据重平衡处理:KafkaConsumer#updateAssignmentMetadataIfNeeded 协调器的拉取处理:onsum…

linux下改变主机名,永久生效的方法

hostnamectl set-hostname test 例子 #支持大写必须就要这样写 hostnamectl set-hostname 名称 --static

缩放算法优化步骤详解

添加链接描述 背景 假设数据存放在在unsigned char* m_pData 里面,宽和高分别是:m_nDataWidth m_nDataHeight 给定缩放比例:fXZoom fYZoom,返回缩放后的unsigned char* dataZoom 这里采用最简单的缩放算法即: 根据比…

代理IP以及动态拨号VPS的关系是什么?

在数字时代,网络安全和隐私保护已成为全球关注的热点话题。代理IP和动态拨号VPS作为提升网络匿名性和安全的重要技术,它们在维护网络隐私中扮演着至关重要的角色。虽然这两种技术在表面上看似相似,实际上它们在功能、应用场景以及用户需求满足…

react + antdesign table组件合并行,展开子表格

假如你有这样的一个数据: [{"bigClass":"吃的","smallClass":"水果","item":"苹果"},{"bigClass":"吃的","smallClass":"水果","item":"香蕉…

这些养老难题,只能靠AI来解决了

3 月 5 日刚召开的两会,AI 这个话题妥妥站上了 C 位。不仅政府工作报告首次提出要开展“人工智能”行动,各路科技大佬和人大代表也是围绕着 AI 大模型的技术创新、应用落地和政策法规,展开了热烈积极的建言献策。甚至有互联网大佬建议将人工智…

创建RAID0,RAID5并管理,热备盘,模拟故障

目录 1. RAID介绍以及mdadm安装 1.1 安装mdadm工具 2. 创建raid0 2.1 环境准备 2.2 使用两个磁盘创建RAID0 2.3 查看RAID0信息 2.4 对创建的RAID0进行格式化并挂载 2.5 设置成开机挂载 2.6 删除RAID0 3. 创建raid5 3.1 环境准备 3.2 用3个磁盘来模拟R…

ERC20学习

ERC20简介 ERC20是一种代币标准,用于创建可替代的代币。 ERC20是在以太坊网络上实现的代币标准,它为数字资产或代币定义了一套规则和接口。这些符合ERC20标准的代币在性质上是完全相同的。即每一个代币都可以被另一个同类型的代币替代,这种属…

社区店选址评估的关键指标:确保商业成功的重要因素

对于想开实体店或创业的人来说,选址是决定商业成功的关键因素之一。作为一名开鲜奶吧5年的创业者,我在网上持续分享开店的干货和见解。 在这篇文章中,我将详细介绍社区店选址评估的关键指标,帮助你确保商业成功。 1、人流量&…

2.DOM-事件基础(注册事件、tab栏切换)(案例:注册、轮播图)

案例 注册事件 <!-- //disabled默认情况用户不能点击 --><input type"button" value"我已阅读用户协议(5)" disabled><script>// 分析&#xff1a;// 1.修改标签中的文字内容// 2.定时器// 3.修改标签的disabled属性// 4.清除定时器// …

如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools

文章目录 1. 使用Docker本地部署it-tools2. 本地访问it-tools3. 安装cpolar内网穿透4. 固定it-tools公网地址 本篇文章将介绍如何在Windows上使用Docker本地部署IT- Tools&#xff0c;并且同样可以结合cpolar实现公网访问。 在前一篇文章中我们讲解了如何在Linux中使用Docker搭…

设计模式(十):抽象工厂模式(创建型模式)

Abstract Factory&#xff0c;抽象工厂&#xff1a;提供一个创建一系列相关或相互依赖对 象的接口&#xff0c;而无须指定它们的具体类。 之前写过简单工厂和工厂方法模式(创建型模式)&#xff0c;这两种模式比较简单。 简单工厂模式其实不符合开闭原则&#xff0c;即对修改关闭…