一、背景
最近公司用到推拉流,经过一番比较后决定使用腾讯云。但是腾讯云的文档确实有点一言难尽,去网上搜索一下例子,结果就是把腾讯云的demo粘贴过去,还必须得是会员才能看,坑啊!!所以把自己做的小demo贴出来.

二、代码实现
public static void main(String[] args) {
       //时间戳有效期默认到未来的24小时
       long nows = (System.currentTimeMillis() + 86400000) /1000;
       System.out.println(nows);
       //获得鉴权key
       String apiKey = "ef7b9ea9ef7b9ea9ef7b9ea9ef7b9ea9"; // 这个是推流网址中生成的apikey
       String txrtmp = getSafeUrl(apiKey , "test", nows);
       System.out.println(txrtmp);
       //生成推流地址
       String pushUrl = "push.tencent.com"; // 推流的网址,需要在腾讯云直播进行配置
       initPush(pushUrl, "live", "test", txrtmp);
       //生成播流地址
        String pullUrl = "pull.tencent.com"; // 播流的网址,需要在腾讯云直播进行配置
       initPull(pullUrl, "live", "test");
   }

/**
    * 生成推流地址
    * @param domain 推流地址
    * @param AppName 应用名称 默认为live
    * @param StreamName 流标识 同一推流地址中的唯一标识
    * @param key 鉴权key
    */
   public static void initPush(String domain, String AppName, String StreamName, String key){
       //获取推流地址
       System.out.println("===================获取推流地址====================");
       String obsPush = "rtmp://"+domain+"/"+AppName+"/";
       System.out.println("obs推流地址:"+obsPush);
       String obsPushName = StreamName+"?"+key;
       System.out.println("obs推流名称:"+obsPushName);
       String rtmpPush = obsPush + obsPushName;
       System.out.println("推流地址:"+rtmpPush);

}

/**
    * 生成播流地址
    * @param domain 播流地址
    * @param AppName 应用名称 默认为live
    * @param StreamName 流标识 同一播流地址中的唯一标识
    */
   public static void initPull(String domain, String AppName, String StreamName){
       //获取播流地址
       System.out.println("====================获取播流地址===================");
       //rtmp协议播流地址
       String rtmpPull = "rtmp://"+domain+"/"+AppName+"/"+StreamName;
       System.out.println(rtmpPull);
       String hlsPull = "http://"+domain+"/"+AppName+"/"+StreamName+".m3u8";
       System.out.println(hlsPull);
       String flvPull = "http://"+domain+"/"+AppName+"/"+StreamName+".flv";
       System.out.println(flvPull);

}

/**
   *下面是腾讯云直播自己的demo,研究发现主要用户生成鉴权key
   */
   private static final char[] DIGITS_LOWER =
           {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
   /*
    * KEY+ streamName + txTime
    */
   private static String getSafeUrl(String key, String streamName, long txTime) {
       String input = new StringBuilder().
               append(key).
               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();
       }
       return txSecret == null ? "" :
               new StringBuilder().
                       append("txSecret=").
                       append(txSecret).
                       append("&").
                       append("txTime=").
                       append(Long.toHexString(txTime).toUpperCase()).
                       toString();
   }
   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);
   }

腾讯云直播、生成腾讯推拉流相关推荐

  1. 不止直播:腾讯云直播MLVB 插件除了推流/拉流还有哪些亮眼功能

    在之前几篇的文章中,我们介绍了腾讯云移动直播插件MLVB的一些基础概念()以及移动直播控件可以拓展的直播场景(),今天就来分享MLVB插件除了直播的基础推拉流功能以外还有哪些功能来帮助直播APP和小程 ...

  2. Vue实现腾讯云_音视频通话的推拉流

    目标:单对单通信 大部分异步使用 async await 进行同步,try catch 捕获错误处理 先放一个流程图,解决80%的问题 安装 TRTC Web SDK 安装 npm install t ...

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

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

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

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

  5. 腾讯云直播-调用腾讯云RoomService

    LiveRoom 如果您只需要做一个简单的直播方案,也就是:主播推流 + 观众观看 + 文字互动,参考单场次直播,或者 自由开播 就可以解决问题. 但是如果您要上连麦功能,单纯依靠 TXLivePus ...

  6. 基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能

    由于5g网络的光速推广,视频业务又被推上了风口浪尖,在2019年初我们还在谈论照片,短视频等关键字,而进入2020年,我们津津乐道的就只有视频,视频,还是视频,普通人拿起手机做直播早已不是奢望,去年我 ...

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

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

  8. uniapp nvue使用live-pusher组件以及腾讯云实现直播推拉流

    目录 前言 效果预览 一.推流使用live-pusher组件 二.拉流使用video组件 三.前端推流核心代码 四.推流完整示例(包含美颜/相机切换/结束直播反馈效果) 五. 拉流完整示例(包含回放暂 ...

  9. 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息

    █ [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 █ 相关文章: ● [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 ● [安卓学习之互动直播] 腾讯云直播 2 ...

最新文章

  1. 【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗?
  2. socket sock inet_sock 等关系
  3. 监控mysql的shell脚本_监控MySQL主从状态的shell脚本
  4. linux下的定时任务 每天0点重置 tp5
  5. 打破“单点防护”缺陷,山石网科发布“云网端”XDR解决方案
  6. pythonstdin_python 笔试输入:sys.stdin.readline和input
  7. SLAM大神总结(转载)
  8. p20怎么用android auto,奔驰23P/P20驾驶辅助系统到底有哪些功能,怎么使用?
  9. HTML学习笔记:设置文本字体
  10. swift瀑布流实现_蘑菇街PC首页瀑布流实践
  11. Ajax与jQuery异步加载数据
  12. msfconsole的简单使用
  13. 【修订总结】【五万字深度洞察】毒舌阿朱最看好的企业服务商
  14. ios微信多开 服务器,iOS微信双开(多开)
  15. 关于大一c语言期中考试总结
  16. axios 的简化写法
  17. MACD与OBV结合,用OBV进行改进MACD指标公式
  18. 哪些开源协议可以商用
  19. CentOS7出现网络不可达情况
  20. SCAPE: shape completion and animation of people

热门文章

  1. asp.net线上宠物商店系统
  2. 12306从上海到湖南境内的终点站车次或从湖南境内始发到上海的车次
  3. 港科夜闻|香港科大(广州)系统枢纽署理院长李世玮教授成为首位获电子封装领域最重要荣誉大奖的中国科学家...
  4. 专题·置换【including 置换,置换快速幂,洛谷·[HNOI2001]洗牌机
  5. lr中的lr_output_message,Lr_debug_message,Lr_error_message,Lrd_stmt,Lrd_fetch函数
  6. 如何用python代码发送邮件
  7. 微信图片怎样在pc 端打开查看并导出
  8. 基于焦散线方法的自加速光束设计
  9. 利用Python进行数据分析的学习笔记——chap9
  10. 你不知道的雍正八年版《连平州志》