mp4 转 m3u8 java_java下载m3u8转ts合成mp4

java 基础不太行,就当练习,有能力的话可以写个浏览器获取视频m3u8

合并ts时内存占用高,有待优化成逐个合成

package com.huasejj.j;

import org.apache.commons.io.FileUtils;

import org.junit.Test;

import java.io.BufferedReader;

import java.io.File;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLConnection;

public class huasejj {

@Test

public void huasejj() throws Exception {

String OS = System.getProperty("os.name");

String pwd = System.getProperty("user.dir");

String from = "";

if (OS.contains("indows")) {

from = pwd.substring(0, pwd.lastIndexOf('\\') + 1) + "ts\\";

} else {

}

try {

String strUrl = "https://hot22.yyhdyl.com/20191230/6f814eaa13dd20a38ef4a6101db323bf/hls/hls-720p.m3u8?t=1577699284&sign=8fb71188cfae706a1697ebc91d3b91c4";

URL url = new URL(strUrl);

int index1 = strUrl.indexOf("//") + 2;

int index2 = strUrl.indexOf("/", index1);

String domainHttp = strUrl.substring(0, index2);

String domain = strUrl.substring(index1, index2);

URLConnection URLconnection = url.openConnection();

HttpURLConnection httpConnection = (HttpURLConnection) URLconnection;

int responseCode = httpConnection.getResponseCode();

if (responseCode == HttpURLConnection.HTTP_OK) {

// System.err.println("成功");

InputStream in = httpConnection.getInputStream();

InputStreamReader isr = new InputStreamReader(in);

BufferedReader bufr = new BufferedReader(isr);

String str;

int indexTS = 0;

//download

while ((str = bufr.readLine()) != null) {

if (str.contains(".jpg")) {

String pathname = from + domain + "/" + String.format("%4d", indexTS++).replace(" ", "0") + ".ts";

System.out.println(domainHttp + str);

System.out.println(pathname);

FileUtils.copyURLToFile(new URL(domainHttp + str), new File(pathname));

//break;

}

}

if (OS.contains("indows")) {

Runtime rt = Runtime.getRuntime();

Process pr = rt.exec("cmd /c copy /b " + from + domain + "\\*.ts " + from + domain + ".mp4");

BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream(), "GBK"));

String line = null;

while ((line = input.readLine()) != null) {

System.out.println(line);

}

System.out.println();

}

bufr.close();

System.out.println("succ");

} else {

System.err.println("失败");

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值