推流地址 java_Java实现腾讯云直播生成推流地址和播放地址
最近在做小程序直播,用到了騰訊云直播,下面為相關文檔和程序
URL規則:https://cloud.tencent.com/document/product/267/13457
防盜鏈計算:https://cloud.tencent.com/document/product/267/13458
小程序源碼調試(推流):https://cloud.tencent.com/document/product/454/12554
觀看直播:在下面程序生成的三個視頻直播URL中任選一個,使用播放器播放
代碼如下:
package com.zhaoyl.emall.bkstage.web.data;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* 直播獲取url
* @author zhiming.liang
* @date 2018-06-26 17:09.
*/
public class LiveTest {
public static void main(String[] args) {
printUrls();
}
/**
* 輸出Url
*/
public static void printUrls(){
//過期時間
String expirationTime = "2018-06-26 23:59:59";
//Unix時間戳
Long unixTime = getUnixTime(expirationTime);
//bizid
String bizId = "88888";
//隨機碼 隨機碼自己隨意填寫
String randomStr = "549b399e00";
//推流防盜鏈
String key = "9999cb04c2398c576895898031be0000";
String streamId = bizId+"_"+randomStr;
//時間戳16進制
String txTime = Integer.toHexString(unixTime.intValue()).toUpperCase();
//獲取md5 txSecret
String txSecret = getMd5(key+streamId+txTime);
//視頻推送url
String pushUrl = "rtmp://"+bizId+".livepush.myqcloud.com/live/"+streamId+"?bizid="+bizId+"&txSecret="+txSecret+"&txTime="+txTime;
//視頻播放url rtmp
String playUrlRtmp = "rtmp://"+bizId+".liveplay.myqcloud.com/live/"+streamId;
//視頻播放url flv
String playUrlFlv = "http://"+bizId+".liveplay.myqcloud.com/live/"+streamId+".flv";
//視頻播放url hls
String playUrlHls = "http://"+bizId+".liveplay.myqcloud.com/live/"+streamId+".m3u8";
System.out.println("pushUrl="+pushUrl);
System.out.println("playUrlRtmp="+playUrlRtmp);
System.out.println("playUrlFlv="+playUrlFlv);
System.out.println("playUrlHls="+playUrlHls);
}
/**
* 獲取unix時間戳
* @return
* @throws Exception
*/
public static Long getUnixTime (String dateStr) {
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long epoch = df.parse(dateStr).getTime();
return epoch/1000;
} catch (ParseException e) {
e.printStackTrace();
}
return 0L;
}
/**
* 獲取md5字符串
* @param str
* @return
*/
public static String getMd5(String str) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte[] bs = md5.digest(str.getBytes());
StringBuilder sb = new StringBuilder(40);
for(byte x:bs) {
if((x & 0xff)>>4 == 0) {
sb.append("0").append(Integer.toHexString(x & 0xff));
} else {
sb.append(Integer.toHexString(x & 0xff));
}
}
return sb.toString();
}
}
總結
以上是生活随笔為你收集整理的推流地址 java_Java实现腾讯云直播生成推流地址和播放地址的全部內容,希望文章能夠幫你解決所遇到的問題。