云直播官方文档: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();}}

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

java实现腾讯云直播相关推荐

  1. 腾讯直播与 JAVA整合_JAVA对接腾讯云直播如何实现 JAVA对接腾讯云直播实现代码...

    JAVA对接腾讯云直播如何实现?本篇文章小编给大家分享一下JAVA对接腾讯云直播实现代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 签名授权 public static ...

  2. Java实现腾讯云直播生成推流地址和播放地址

    最近在做小程序直播,用到了腾讯云直播,下面为相关文档和程序 URL规则:https://cloud.tencent.com/document/product/267/13457 防盗链计算:https ...

  3. java 采用腾讯云直播实现多方视频录制并每路画面添加相应的水印

    这是我第一篇文章,本人也是菜鸟,如果有什么不对,也请大神多多指点 话不多说,进入正题. 首先录制视频的前提是推流和拉流同时是连接上才能进行录制工作.否则腾讯云不会给你返回录制的视频地址. 如果你不知道 ...

  4. 腾讯云直播代码 java_JAVA 对接腾讯云直播的实现

    签名授权 public static T TecentDoPostJsonV3(String url,String key,String secretId, TecentPublicParams he ...

  5. 推流地址 java_Java实现腾讯云直播生成推流地址和播放地址

    最近在做小程序直播,用到了腾讯云直播,下面为相关文档和程序 URL规则:https://cloud.tencent.com/document/product/267/13457 防盗链计算:https ...

  6. 友盟多渠道打包+混淆+腾讯云直播的推/拉流

    一. 友盟多渠道打包 各种下载应用的软件网址,叫渠道分发商,如腾讯应用宝,百度,Google Play,多渠道打包通过了解下载量,有针对性的打广告 多渠道打包意义: 可以用这个APK,放上一段业务逻辑 ...

  7. 腾讯云直播答题方案解析

    2019独角兽企业重金招聘Python工程师标准>>> 欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:  腾讯视频云 进入2018年最火的新鲜事物无疑就是" ...

  8. 一文带你深度解析腾讯云直播答题方案

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯视频云 进入2018年最火的新鲜事物无疑就是"直播答题"了,动辄上百万的奖金更是吸引了大量用户的参与.一场直播动辄 ...

  9. 腾讯云直播-开启互动直播

    项目背景:基于腾讯云直播开发项目,直播交友平台1+6模式 ps : 记录自己的日常 一.申请腾讯视频权限(官方链接) 首先在流管理添加一个域名 类型为播放域名域名地址为 推流域名的域名前缀+你的域名生 ...

最新文章

  1. 如何给“物联网小白”讲清楚什么是无线通信模块?很简单,会打电话就行~
  2. vmware-tools安装说明
  3. springframework包下的RequestContextHolder类和ServletRequestAttributes类的源码和使用
  4. 计划任务中allow和deny的优先级
  5. SAP Fiori和Vue的结合会给企业级应用软件的UI开发带来什么?
  6. 计算机网络层实验路由表苏州科技,苏州科技大学计算机网络实验报告课案.docx...
  7. Web Service security UserNameToken 使用
  8. Can‘t start server : Bind on unix socket: Address already in use
  9. 简单理解盘索引地址的表示原理
  10. Apollo添加新的can通信接口的GPS设备
  11. IT成长中的龟兔赛跑
  12. 四轴飞行器基本组成及其飞行原理详解
  13. 通过高阶DMD对地铁的实时短时OD预测
  14. hp linux 禁用u盘启动不了,u盘启动禁用旧版启动模式并启用UEFI
  15. 边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
  16. JAVA架构演变过程
  17. Win11电脑一边耳机没声音怎么解决
  18. UE4换装系统(合并骨骼模型)
  19. 辞职两年:自由的代价
  20. w ndows11如何设置电源选项,2018年度巨献(4):11款650W全模组80Plus金牌+电源横评

热门文章

  1. 音视频处理工具ffmpeg基本使用
  2. edge浏览器整理收藏夹 找不到收藏夹
  3. 如何搭建EOS主网节点?
  4. 嵌入式驱动方面,这篇文章讲绝了!
  5. 第13课:实战之用 Python 写一个抢票软件
  6. 554_使用iotop查看存储的读写速度
  7. 群晖DS918+硬盘选择和阵列选择
  8. idea mysql可视化_IntelliJ IDEA 内置数据库管理工具实战
  9. 自动(智能)驾驶系列| 插播 深挖自动驾驶数据集
  10. 服务器安装与维护,服务器安装与维护 PPT课件