今天下载了一部电影,不过是m3u8格式,想要分享分享不了,就写了个小程序将m3u8转换为mp4

代码的使用方法

1.下载代码,链接如下

编译好的代码地址

2.将下载好的代码复制至m3u8文件夹

3.打开文件夹,在地址栏输入cmd,按回车(Enter键),见下图

4.在命令窗口输入java M3u8ToMP4,即可在当前文件夹下看到转换后的文件

如果不想下载,可以使用下面代码自己进行编译,源码如下


import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;/*** M3u8转MP4工具类* @author nzmzx*/
public class M3u8ToMP4 {public static void main(String[] args) throws IOException {String property = System.getProperty("user.dir");File file = new File(property);// 文件夹String runFilePath = property + "/new.bat";File runFile = new File(runFilePath);// 生成的可执行文件FileWriter fw = null;try {fw = new FileWriter(runFile);fw.append("copy /b ");fw.flush();if (file.exists()) {// 1.判断文件是否存在if (file.isDirectory()) {// 2.判断是否为文件夹File[] listFiles = file.listFiles();List<String> sortList = new ArrayList<String>();for (File file2 : listFiles) {String name = file2.getName();// 获取名字if(!(name.endsWith(".class")||name.endsWith(".bat"))) sortList.add(name);}//4.排序sortList.sort((o1,o2)->{String split1 = o1.split("\\.")[0];String split2 = o2.split("\\.")[0];int parseInt1;int parseInt2;try {parseInt1 = Integer.parseInt(split1);parseInt2 = Integer.parseInt(split2);} catch (NumberFormatException e) {//如果是非数字,按照原来的顺序return 0 ;}if(parseInt1>parseInt2) {return 1;}else {return -1;}});int size = sortList.size();for (int i = 0; i < size; i++) {System.out.println(sortList.get(i));if (i == size - 1) {fw.append(sortList.get(i));break;}fw.append(sortList.get(i) + "+");fw.flush();}fw.append(" new.mp4");fw.flush();fw.close();}}callCmd(runFilePath);} catch (Exception e) {e.printStackTrace();} finally {if (fw != null) {fw.close();}}}private static void callCmd(String locationCmd) {StringBuilder sb = new StringBuilder();InputStream in = null;BufferedReader bufferedReader = null;try {Process child = Runtime.getRuntime().exec(locationCmd);in = child.getInputStream();bufferedReader = new BufferedReader(new InputStreamReader(in));String line;while ((line = bufferedReader.readLine()) != null) {sb.append(line + "\n");}bufferedReader.close();in.close();try {child.waitFor();} catch (InterruptedException e) {System.out.println(e);}System.out.println("sb:" + sb.toString());System.out.println("callCmd execute finished");//执行完成后,将执行文件删除。File file=new File(locationCmd);file.delete();} catch (IOException e) {System.out.println(e);} finally {try {//将流关闭,从小往大关,防止流未关闭占用内存if (bufferedReader != null) {bufferedReader.close();}if (in != null) {in.close();}} catch (IOException e) {}}}}

注意:使用命令需要有java环境!

使用JAVA将m3u8转换为mp4格式相关推荐

  1. m3u8转换为mp4格式

    基础介绍 打开本地的m3u8相关文件,里面通常含有3种文件类型(m3u8.ts.key) 方式一.通用方式(推荐,适合批量操作) 以下方式需要下载一个60MB的软件,适合批量操作 01.先下载ffmp ...

  2. java 将avi视频转换为mp4格式并获取视频文件信息

    引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...

  3. 解决python 中使用ffmpy3.FFmpeg下载m3u8转换为mp4过程中,CPU占用过高的问题

    最近刚学习使用python爬取网页中m3u8视频,下载转换为mp4格式,发现使用ffmpy3模块调用FFmpeg挺方便的,具体代码如下: from ffmpy3 import FFmpegurl = ...

  4. 如何将qlv格式倚天屠龙记转换为MP4格式

    一提到金庸,那绝对是家喻户晓的名字,不仅是带给我们不少童年的欢乐和记忆,更是父辈们的偶像.他作品众多,比较熟知和经典大概有<书剑恩仇录>.<射雕英雄传>.<神雕侠侣> ...

  5. ogv格式怎么转换为MP4格式

    说的ogv格式,很多人可能不知道它是个什么格式,其实它是一种从网页上缓存下来的视频格式,是一种自由且开放的格式,可以纳入各式各样自由和开放原始码的编解码器,包含音效.视讯.文字(像字幕)的处理.那么, ...

  6. avi怎么转换为mp4格式?

    avi怎么转换为mp4格式?对于经常剪辑视频文件的小伙伴来说,在正式剪辑之前,通常都需要将一些另类的视频格式转换成常用的MP4后再进行使用,否则就非常容易出现不能打开视频文件的情况.当然也有很多小伙伴 ...

  7. 腾讯视频下载的qlv格式转换为MP4格式

    今天突然在腾讯视频上看到一个比较好的视频,下载下来想随时观看,无赖格式是qlv用其他播放器无法播放,只能用腾讯视频播放器,这样很不方便,然后就在万能百度上搜索了一下方法,确实可以将qlv转换为mp4格 ...

  8. 如何快速无损地把flv格式文件转换为mp4格式(可在iPhone上播放)

    众所周知,mp4格式文件是现在非常主流且高质的视频格式.flv格式相对于mp4格式的视频来说,适用范围比较窄,现在很多播放器也都不支持播放flv格式的视频.解决办法也简单,用MP4/RM转换专家把fl ...

  9. 腾讯视频QLV格式转换为MP4格式 1

    腾讯视频是比较热门的视频播放器,用腾讯下载过视频的用户应该都会发现它下载的视频格式默认为QLV格式,这算是一种专属象征.QLV格式视频只有腾讯视频才能播放,其他视频播放器是没法播放的,所以如果没有腾讯 ...

最新文章

  1. 一段神奇的c代码错误分析
  2. php dropdownlist,为何activitieDropdownlist的值始终无法获取到
  3. 模板 - 莫比乌斯反演(常用技巧)
  4. python 调用linux命令-Python 执行Linux系统命令的N种方法
  5. 获取height固定折叠元素真实高度方法
  6. 深度学习中Batch、Iteration、Epoch的概念与区别
  7. 【移动开发】EditText输入字数限制总结(包括中文输入内存溢出的解决方法)...
  8. CF-547E(Mike and Friends)后缀数组+线段树 AC自动机+DFS序+树状数组
  9. struts升级2.3.12到2.5.13
  10. centos图形化桌面的文件在哪_Windows 远程连接 CentOS 7 图形化桌面
  11. OCP Java 自测
  12. 分组卷积/群卷积(Group Convolution)
  13. 常见错误及细小知识点锦集
  14. 苹果Mac专业的 Go 开发集成环境:JetBrains GoLand
  15. 《OpenGL编程指南》 笔记一 OpenGL概述
  16. Redis 源码简洁剖析 - SDS 字符串
  17. PPT 不支持打开显示 webp 图片
  18. CSR、SSR、SPA是什么
  19. 河北源达靠谱吗?股市如战场,可靠的选股软件很关键
  20. android 画图

热门文章

  1. QT项目之键盘控制光标移动
  2. python 应用程序无法正常启动 000007b_“应用程序无法正常启动(oxc000007b)”解决方案...
  3. 汉与匈奴 —— 影响世界之战
  4. 【Java 数据结构】Map和Set
  5. python input获取多行文本
  6. 11种图像清晰度评价函数附MATLAB代码
  7. 2016团体程序设计天梯赛-决赛-部分题解
  8. 【树莓派】树莓派3B+搭建Ubuntu
  9. pip install pyinstaller安装报错
  10. 以字母Q为元素的创意logo设…