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

相关文章:
Java对接腾讯云直播示例
首先是官网的文档地址 云直播 新手指南 可以发现它这个主要是按流量和功能收费的 价格总览 流量这里还只收下行的费用,就是只收观看消耗的流量费 其它的收费就是一些增值业务费 (包括直播转码、直播录制、直播截图、直播审核、智能鉴黄、实时监播、移动直…...
free pascal 调用 C#程序读 Freeplane.mm文件,生成测试用例.csv文件
C# 请参阅:C# 用 System.Xml 读 Freeplane.mm文件,生成测试用例.csv文件 Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能&#x…...
在Blender中清理由Instant-NGP等几何学习技术生成的网格
使用布尔运算: 创建一个大的立方体或其他简单几何体包裹住全部网格。使用布尔修改器对两个网格进行“差集”运算。这将移除超出包裹体之外的多余网格部分。 手动选择并删除: 进入编辑模式(按Tab键)。按A键取消选择所有顶点。按B键并拖动以选择您想要删除…...
【重要公告】BSV区块链上线TypeScript SDK,未来将支持更多开发语言
发表时间:2024年2月21日 BSV区块链协会宣布上线JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,以便利开发者在BSV区块链上开发能够任意扩容的应用程序。新上线的SDK替…...
【工具使用-VScode】VScode如何设置空格和tab键显示
一,简介 在提交代码的时候,行末尾的tab和空格不符合规范,但是如果在vscode中不显示tab和空格的话,不能及时的查看到并改正,导致提交代码之后还需要再次进行修改,效率比较低。 代码编辑界面如图所示&#…...
【原理图PCB专题】Cadence 17.4版本原理图及PCB Mudule复用
在我们设计复杂板卡的时候,往往会遇到一部分电路被反复使用的情况。虽然使用复制黏贴我们很快的做出相同的设计,但由于不同工程师能力水平不同,有时可能存在部分电路被漏掉导致重大异常。尤其对于大规模复杂设计,如果设计者浪费时间制作相同模块上,这无疑是对于工程师精力…...
llama-index调用qwen大模型实现RAG
背景 llama-index在实现RAG方案的时候多是用的llama等英文大模型,对于国内的诸多模型案例较少,本次将使用qwen大模型实现llama-index的RAG方案。 环境配置 (1)pip包 llamaindex需要预装很多包,这里先把我成功的案例…...
基于springboot的医院信息管理系统(程序+代码+文档)
** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…...
【环境配置】Linux MySQL8 忘记密码解决措施
本片博客介绍 Linux 操作系统 Ubuntu 下,MySQL8 忘记密码怎么重新设置,笔者亲测有效,分享给大家。 查看 MySQL 版本 $ mysql --version停止 MySQL 服务器,并查看状态是否变更为 Server shutdown complete # 等价命令sudo syste…...
MySQL-锁:共享锁(读)、排他锁(写)、表锁、行锁、意向锁、间隙锁,锁升级
MySQL-锁:共享锁(读)、排他锁(写)、表锁、行锁、意向锁、间隙锁 共享锁(读锁)、排他锁表锁行锁意向锁间隙锁锁升级 MySQL数据库中的锁是控制并发访问的重要机制,它们确保数据的一致性…...
docker 使用官方镜像搭建 PHP 环境
一、所需环境: 1、PHP:7.4.33-fpm 的版本 2、Nginx:1.25.1 的版本 3、MySQL: 5.7 的版本 4、Redis:7.0 的版本 1.1、拉取官方的镜像 docker pull php:7.4.33-fpm docker pull nginx:1.25.1 docker pull mysql:5.7 do…...
STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置
STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置前言第1章 设置字体颜色第2章 设置字体大小第3章 设置代码区背景颜色总结 前言 编程软件环境最好就设置一个自己喜欢的界面进行显示,这样看起来会比较舒服些…...
【《高性能 MySQL》笔记】性能优化
学习知识最快最好的方式就是问对问题。 本文将通过“问正确的问题”的方式循序渐进地深入总结性能优化相关知识。 性能优化基础 Q1:什么是“性能”? 即响应时间(RT,Response Time),完成某个任务所需要的时间度量。 Q2:什么是“性能优化”? 性能优化为在一定工作负…...
Spring AOP底层原理
目录 代理模式 静态代理 动态代理 1. JDK动态代理 创建⼀个代理对象并使用 2. CGLIB动态代理 SpringAOP底层原理面试 代理模式 Spring AOP是基于动态代理模式来实现的 代理模式:静态代理模式动态代理模式 代理模式, 也叫委托模式。 定义:为其…...
proteus8.9 示波器放大
proteus8.9 示波器放大** 1. 打开放大:Windows徽标键 加号 2. 取消放大:Windows徽标键 ESC...
代码随想录训练营第41天 | 动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、LeetCode 416.分割等和子集
动态规划:01背包理论基础 文章讲解:代码随想录(programmercarl.com) 视频讲解:带你学透0-1背包问题!_哔哩哔哩_bilibili 动态规划:01背包理论基础(滚动数组) 文章讲解:代码随想录(…...
1908_Arm Cortex-M3的实现
1908_Arm Cortex-M3的实现 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 这是第一次看一份这样的手册,之前的MCU编程基本上就是专注于软件接口方面。而OS等方面的一些功能基本上都是用了现成的解决方案,因此也就没有过多的关注…...
编程笔记 html5cssjs 005 小学数学四则运算练习
编程笔记 html5&css&js 005 小学数学四则运算练习 一、代码二、解释 这段代码定义了一个页面,用于小学数学四则运算的练习。这可能有点难,实际如果需要可以通过更改代码来达到要求。 一、代码 <!DOCTYPE html> <html lang"zh&quo…...
【大厂AI课学习笔记NO.71】AI算力芯片GPU/TPU等
AI算力芯片的发展历程 人工智能(AI)算力芯片的发展历程紧密地跟随着AI技术的发展脚步。从早期的基于传统中央处理器(CPU)的计算,到图形处理器(GPU)的广泛应用,再到专门为AI设计的处…...
浅谈Redis和分布式系统
浅谈Redis Redis用于存储数据,且在内存当中进行存储。 但是在日常编写代码中,定义一个变量也就属于在内存当中存储一个数据。 Redis主要会在分布式系统当中发挥重要作用,如果只是单机程序,直接通过变量存储数据的方式会比使用Re…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
