java实现腾讯云直播

云直播官方文档:https://cloud.tencent.com/document/product/267
云直播在线生成api:https://console.cloud.tencent.com/api/explorer?Product=live&Version=2018-08-01&Action=UpdateLiveWatermark&SignVersion=

对云直播api调用的主要目的是用来对直播进行一些操作,大部分操作需要购买,后面有部分对接,这些其实都是官方能够生成的:
在这里插入图片描述
需要在域名管理处生成推流域名和播放域名:https://console.cloud.tencent.com/live/domainmanage

我这用的rtmp推流(可用腾讯视频云小程序->点击RTMP推流,进行测试),flv文件播放(flv在线播放:https://imgcache.qq.com/open/qcloud/video/player/demo/player.html)
封装的帮助类:

@Data
@Component
public class TencentLiveInfo {// 推流域名@Value("${live.push.pushDomain}")private String pushDomain;// 播放域名@Value("${live.play.playDomain}")private String playDomain;// 应用名称@Value("${live.push.appName}")private String appName;// key 推流域名那能看到@Value("${live.push.masterKey}")private String masterKey;// 访问腾讯api的secretId@Value("${live.secretId}")private String secretId;// 访问腾讯api的secretKey@Value("${live.secretKey}")private String secretKey;// 腾讯api访问域名@Value("${live.url}")private String url;
}

生成推流地址(可生成多种推流方式,具体见官方文档):

/*** 获取视频推送流地址* @param streamName 流名称* @param txTime 过期时间* @return*/public static String getPushUrl(String streamName, long txTime) {String input = new StringBuilder().append(tencentLiveInfo.getMasterKey()).append(streamName).append(Long.toHexString(txTime).toUpperCase()).toString();String txSecret = null;try {MessageDigest messageDigest = MessageDigest.getInstance("MD5");txSecret  = byteArrayToHexString(messageDigest.digest(input.getBytes("UTF-8")));} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}//视频推送urlString pushUrl = new StringBuilder().append("rtmp://").append(tencentLiveInfo.getPushDomain()).append("/").append(tencentLiveInfo.getAppName()).append("/").append(streamName).append("?txSecret=").append(txSecret).append("&txTime=").append(Long.toHexString(txTime).toUpperCase()).toString();return pushUrl;}/*** 转码-byte转hexString* @param data* @return*/private static String byteArrayToHexString(byte[] data) {char[] out = new char[data.length << 1];for (int i = 0, j = 0; i < data.length; i++) {out[j++] = DIGITS_LOWER[(0xF0 & data[i]) >>> 4];out[j++] = DIGITS_LOWER[0x0F & data[i]];}return new String(out);}

生成播放路径(可生成多种播放方式,具体见官方文档):

/*** 获取播放地址* @param streamName 流名称* @param txTime 过期时间* @return*/public static String getPlayUrl(String streamName,long txTime){String playUrl = new StringBuilder().append("http://").append(tencentLiveInfo.getPlayDomain()).append("/").append(tencentLiveInfo.getAppName()).append("/").append(streamName).append(".flv").toString();return playUrl;}

tips:两处的流名称必须一致

我这接了部分api:

    /*** 初始化腾讯文档api调用配置* @return*/private static LiveClient initTencent(){Credential cred = new Credential(tencentLiveInfo.getSecretId(), tencentLiveInfo.getSecretKey());HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint(tencentLiveInfo.getUrl());ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);LiveClient client = new LiveClient(cred, "", clientProfile);return client;}/*** 停止推流-暂停直播* @return*/public static String stopPush(String streamName){try{LiveClient client = initTencent();DropLiveStreamRequest req = new DropLiveStreamRequest();req.setStreamName(streamName);req.setDomainName(tencentLiveInfo.getPushDomain());req.setAppName(tencentLiveInfo.getAppName());DropLiveStreamResponse resp = client.DropLiveStream(req);return DropLiveStreamResponse.toJsonString(resp);} catch (TencentCloudSDKException e) {return e.toString();}}/*** 开始推流-重新直播* @param streamName* @return*/public static String startPush(String streamName){try{LiveClient client = initTencent();ResumeLiveStreamRequest req = new ResumeLiveStreamRequest();req.setAppName(tencentLiveInfo.getAppName());req.setDomainName(tencentLiveInfo.getPushDomain());req.setStreamName(streamName);ResumeLiveStreamResponse resp = client.ResumeLiveStream(req);return ResumeLiveStreamResponse.toJsonString(resp);} catch (TencentCloudSDKException e) {System.out.println(e.getMessage());return e.toString();}}

其他都差不多,都有生成的

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

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

相关文章

java对接腾讯云短信平台详细代码

在项目中集成一下短信功能。对比了几个服务商&#xff0c;最终选择了腾讯云&#xff0c;因为他每个月免费送100条。 一、申请API 1. 注册腾讯云实名认证后&#xff0c;开通短信服务。 2. 获取AppID和AppK待用。 3. 创建短信签名模板和短信正文模板。系统说半日内审核&#xff…

【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

前言 最近有幸参与了腾讯云举办的Finops Crane的集训营。在这个过程中&#xff0c;老师认真指导&#xff0c;让我受益非浅&#xff0c;也让我真正理解了这一产品所带来的意义。 在听了老师们的介绍和讲解后&#xff0c;我马不停蹄地开始了自己摸索。首先是跟着视频和官方教程…

腾讯云对象存储COS及CDN加速配置

文章目录 相关文章1. 登陆腾讯云官网&#xff0c;进入腾讯云对象存储COS控制台2. 创建存储空间3. 添加自定义CDN加速域名4. 购买腾讯云免费SSL证书5. 腾讯云 CDN 域名部署 SSL证书6. 测试自定义域名HTTPS访问COS中的文件7. 创建腾讯云子账户&#xff0c;授予对象存储权限&#…

SpringBoot整合腾讯云COS对象存储实现文件上传

企业级项目开发中都会有文件、图片、视频等文件上传并能够访问的场景&#xff0c;对于初学者Demo可能会直接存储在应用服务器上&#xff1b;对于传统项目可能会单独搭建FastDFS、MinIO等文件服务来实现存储&#xff0c;这种方案可能对于企业成本较小&#xff0c;但缺点也是很多…

腾讯云区块链使用心得

浅谈一下最近体验TBaaS的感想。 TBaaS 区块链服务平台集成开发、管理和运维等功能&#xff0c;支持客户在云上快速部署联盟区块链网络环境。基于 TBaaS 区块链服务平台&#xff0c;客户可以降低对区块链底层技术的获取成本&#xff0c;专注在区块链业务模式创新及业务应用的开发…

阿里云和腾讯云全方位对比

一、竞品分析目的 本文旨在人工智能行业通过对云服务平台代表性产品阿里云、腾讯云的产品定位、核心功能、发展战略等方面的研究&#xff0c;探讨人工智能云服务平台产品的在国内的发展趋势。为之后根据实际情况利用具有较多优势的云服务平台研发应用层人工智能产品提供决策辅…

与腾讯云物联网对接

与腾讯云物联网对接 第一步&#xff1a;移植Tencenttinyos的相关文件 net platform&#xff1a;串口驱动框架&#xff0c;只要HAL层 drivers&#xff1a; 第二步&#xff1a;添加头文件路径 第三步&#xff1a;添加esp8266例程 文件夹路径&#xff1a;TencentOS-tiny-master…

python调用腾讯云API语音识别

一、登录腾讯云、开通语音识别接口、获取密钥 登录 - 腾讯云 (tencent.com) 二、打开 API Explorer 语音识别 录音文件识别请求 - API 文档 - 文档中心 - 腾讯云 选择 录音文件请求 三、打开参数说明&#xff0c;按需求填入参数。 其中Data输入的的是音频文件经过base64编码后…

腾讯云TRTC服务实现Web视频会议

腾讯云TRTC服务实现Web视频会议 背景 近期公司承接了某高校智慧校园的项目建设工作&#xff0c;其中在家校协作的板块中需要进行视频教学&#xff0c;以及线上屏幕共享&#xff0c;为了完成这一需求&#xff0c;我在自研与第三方服务的选择之间选择了第三方&#xff0c;主要因…

腾讯云HiFlow场景连接器

文章目录 &#xff08;一&#xff09;腾讯云HiFlow场景连接器是什么&#xff1f;&#xff08;二&#xff09;腾讯云HiFlow场景连接器对于我的工作/生活能有什么好处呢&#xff1f;添加企业微信机器人 &#xff08;一&#xff09;腾讯云HiFlow场景连接器是什么&#xff1f; 腾讯…

监控、无人机摄像头RTSP协议对接腾讯云直播

监控、无人机摄像头RTSP协议对接腾讯云直播 1. 需求与目标 传统监控高清摄像机ip camera&#xff08;如: 海康,大华等&#xff09;遵循监控行业标准&#xff0c;一般只支持rtsp传输协议&#xff0c;互联网直播通用标准为rtmp协议&#xff0c;将这些摄像机视频流引入互联网直播…

【虚拟人快讯】超写实虚拟人青鸟发布,脑白金推出数字人形象

1、3月17日&#xff0c;作为广西文化符号的“刘三姐”穿越时空&#xff0c;以国内首个省级超写实文旅数字推广大使的身份在全网公开亮相&#xff0c;广西壮族自治区文化和旅游厅厅长欧余军在“元宇宙世界”&#xff0c;宣布授予“刘三姐数字人”“广西文化旅游数字推广大使”称…

Gmail邮箱怎么获取授权码?熟悉一下

打开谷歌邮箱https://mail.google.com/mail/u/0/#settings/fwdandpophttps://mail.google.com/mail/u/0/#settings/fwdandpop 进入“转发和 POP/IMAP”&#xff0c;启用 IMAP。 点击“右上角Logo” > “管理您的google账号” 在回到“管理您的google账号” 设置应用专用密码…

【reCAPTCHA 】添加Google验证码

在网站登陆注册时常常需要用到验证码&#xff0c;来防止站点被攻击。 大概这个样子&#xff1a; 现在框架是前后端分离的&#xff0c;angularwebapi弄个验证码感觉有点麻烦 然后就找到google的reCAPTCHA 还挺好使的&#xff0c;记录一下&#xff1a; 地址&#xff1a;https:…

Google验证码ReCaptcha V3

因为工作的原因需要使用Google验证码ReCaptcha v3&#xff0c;所以我就上网了解了一下&#xff0c;下面是我的一些学习分享。 大家应该都是用过google的验证码&#xff0c;如 这种情况的需要我们手动去选择&#xff0c;ReCaptcha V3则不需要了&#xff0c;不需要用户去手动的验…

使用Google reCAPTCHA进行人机验证

reCAPTCHA是Google公司推出的一项验证服务&#xff0c;使用十分方便快捷&#xff0c;在国外许多网站上均有使用。它与许多其他的人机验证方式不同&#xff0c;它极少需要用户进行各种识图验证。 它的使用方式如下如所示&#xff0c;只需勾选复选框即可通过人机验证。 虽然简单…

解决Google人机验证reCaptcha失效问题

安装Redirector插件 Firefox浏览器1. 下载Firefox浏览器&#xff0c;并安装插件2. 打开Redirector插件的界面3. 弹出如下界面4. 按照如下形式填写 Chrome浏览器 Firefox浏览器 1. 下载Firefox浏览器&#xff0c;并安装插件 2. 打开Redirector插件的界面 3. 弹出如下界面 4. 按…

.NET 使用 Google 验证码(Google reCAPTCHA)

一. 前言 前段时间&#xff0c;发现注册受到了恶意攻击&#xff0c;一天注册量10w&#xff0c;接口已从IP做了限制&#xff0c;但不管用&#xff0c;对方每一次发起的IP都不一样&#xff1b;紧急做了滑动验证码&#xff0c;虽然上线立马就阻止了恶意请求&#xff1b; 但好景不…

GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(转)

前言: 为了防止机器人攻击&#xff0c;国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好&#xff0c;但是…对于国内用户就不怎么友好了。究其原因&#xff0c;则是国内网络全线屏蔽 Google 服务&#xff0c;导致 reCaptcha 完全加载不出来。这…

注册Maltego显示ReCaptcha is not valid,解决Google验证码服务reCaptcha失效问题

注册Maltego显示ReCaptcha is not valid&#xff0c;解决Google验证码服务reCaptcha失效问题 Maltego注册地址&#xff1a; https://www.paterva.com/web7/community/community.php 1.打开火狐浏览器&#xff0c;点击右上角-打开菜单-添加附件-寻找更多附加组件&#xff0c;查询…