原理很简单就是把多个视频文件的内容按顺序写到一个视频文件中

代码如下:

public static void CombineFile(String path,String tar) throws Exception {

try {

File dirFile = new File(path);

FileInputStream fis;

FileOutputStream fos = new FileOutputStream(tar);

byte buffer[] = new byte[1024 * 1024 * 2];//一次读取2M数据,将读取到的数据保存到byte字节数组中

int len;

if(dirFile.isDirectory()) { //判断file是否为目录

String[] fileNames = dirFile.list();

Arrays.sort(fileNames, new StringComparator());//实现目录自定义排序

for (int i = 0;i

System.out.println("D:\\tempfile\\"+fileNames[i]);

fis = new FileInputStream("D:\\tempfile\\"+fileNames[i]);

len = 0;

while ((len = fis.read(buffer)) != -1) {

fos.write(buffer, 0, len);//buffer从指定字节数组写入。buffer:数据中的起始偏移量,len:写入的字数。

}

fis.close();

}

}

fos.flush();

fos.close();

}catch (IOException e){

e.printStackTrace();

} finally {

System.out.println("合并完成!");

}

}

在读取要合并的文件时,需要按拆分后的顺序读取文件,这是就需要文件自定义目录排序

用Java列出某个文件目录的文件列表是很容易实现的,只用调用File类中的list()方法即可。

代码如下:

/此类实现Comparable接口

static class StringComparator implements Comparator {

@Override

public int compare(String s1, String s2) {

if (returnDouble(s1) < returnDouble(s2))

return -1;

else if (returnDouble(s1) > returnDouble(s2))

return 1;

else

return 0;

}

}

public static double returnDouble(String str){

StringBuffer sb = new StringBuffer();

for(int i=0;i

if(Character.isDigit(str.charAt(i)))

sb.append(str.charAt(i));

else if(str.charAt(i)=='.'&&i

sb.append(str.charAt(i));

else break;

}

if(sb.toString().isEmpty())

return 0;

else

return Double.parseDouble(sb.toString());

}

由类StringComparator实现Comparator接口就可以改变String类型的默认排序方式,其中compare是需要复写的方法,类似于Comparable接口中的compareTo方法。

returnDouble是写的一个静态方法,用来返回某个文件名字符串前面的数字编号,如"1.1.txt"返回的就是"1.1",写的时候老是出现越界异常,后来终于改成功了,可能写得有点复杂了。

这样再调用Arrays类中的sort(T[] a, Comparator super T> c) 方法就可以对文件名排序了。

java 视频合并_java 实现分段视频合并相关推荐

  1. java 合并流_Java Stream 流实现合并操作示例

    本文实例讲述了Java Stream 流实现合并操作.分享给大家供大家参考,具体如下: 1. 前言 Java Stream Api提供了很多有用的 Api 让我们很方便将集合或者多个同类型的元素转换为 ...

  2. java excel相同的合并_Java使用Apache POI合并Excel连续相同内容的单元格

    环境: Apache POI 3.17: HSSFSheet: 目的: 对Excel表格中同一列,如果连续的两个或两个以上单元格的内容相同,则对这些单元格进行合并. 实现代码: /** * 合并指定E ...

  3. java ffmpeg视频截图_Java实现对视频进行截图的方法【附ffmpeg下载】

    本文实例讲述了Java实现对视频进行截图的方法.分享给大家供大家参考,具体如下: 之前介绍过Java使用ffmpeg进行视频转换,这里演示一下ffmpeg进行视频截图的方法. 具体代码如下: impo ...

  4. java web 视频开发_Java web video 视频开发

    播放器 \flowplayer 1.下载Flowplayer播放器, 2.下载安装包解压后可以找到以下几个主要文件: flowplayer-3.2.11.swf:用于播放器主体的flash文件 flo ...

  5. java给视频添加水印_java如何给视频添加水印logo

    1.下载ffmpeg集成(静态)版本,解压后无需安装 链接:https://pan.baidu.com/s/1-a4lDqqJDRdX99500L6lIw 密码:qp8c CmdExecuter pa ...

  6. 计算机应用如何分段和合并段落,word分段与合并段落的办法

    word段落的操作,通常就是段落的区分与合并的问题,虽然简单,但是很多新手却觉得无从下手,下面本站在此为您解答该问题. 一.段落的合并 如下图一样,假如word里面就有如下的四个段落的内容,下面我们要 ...

  7. java 合并视频_Java 合并多个MP4视频文件

    局限性 只支持MP4文件 经过尝试对于一些MP4文件分割不了 依赖 com.googlecode.mp4parser isoparser 1.1.22 工具类 package com.example. ...

  8. java 视频 合并成一个_Java 合并多个MP4视频文件

    局限性 只支持MP4文件 经过尝试对于一些MP4文件分割不了 依赖 com.googlecode.mp4parser isoparser 1.1.22 工具类 package com.example. ...

  9. java mp4分割_Java 合并多个MP4视频文件

    局限性 只支持mp4文件 经过尝试对于一些mp4文件分割不了 依赖 com.googlecode.mp4parser isoparser 1.1.22 工具类 package com.example. ...

  10. Java使用ffmpeg进行视频格式转换、音视频合并、播放、截图

    封装类: ffplay.ffmpeg.ffprobe是安装的ffmpeg路径. import java.io.BufferedReader; import java.io.File; import j ...

最新文章

  1. 2016.5.57—— Remove Duplicates from Sorted List
  2. Python快速教程博客园地址
  3. CodeForces - 475B Strongly Connected City(最短路+判断强联通图/思维)
  4. jq修改导航栏样式(选中、使用两张图片替代的是否选中效果)
  5. 一些实用但不为人知的Unix命令
  6. paip.python语法C++语法对比
  7. Python 筛法求素数
  8. 【C语言经典100例】-- 11 不死神兔问题
  9. 专题·快速沃尔什变换(FWT)【including FWT,洛谷P4717【模板】快速沃尔什变换
  10. one algorithm a day keeps the doctor away -- BubbleSort
  11. 计算机名词解释显存,显卡名词解释之显存类型
  12. 【免费】如何轻松的从音乐网站下载自己喜欢的mp3音乐?
  13. 不可不知的安卓屏幕知识
  14. 使用京东FaceX-Zoo sdk生成戴口罩数据集
  15. Apache Dubbo(概念篇)
  16. 【MW】Drop Materialized View Hangs with 'Enq: JI - Contention'
  17. Vue + Vuetify使用感受以及部分自定义组件
  18. Flink任务链Operator Chains
  19. 抗战电影中出场率很高的边三轮为什么能在软件界能混的风生水起
  20. 如何下载台湾省卫星地图高清版大图

热门文章

  1. Xv6 编写用户程序
  2. 算法学习系列(MCMC):MCMC采样
  3. Android 反编译方法
  4. RSLogix 5000 含序列号 20.03版本,带授权
  5. 如何将Eclipse设置为中文版
  6. H5页面在自己APP中图标显示正常,接入钉钉请求.woff图标字体报错
  7. 软件系统现场服务单(模板)
  8. win10 安装MASM32 遇到的问题DELETE operation of EXE file has failed
  9. 基于SSM框架开发的社区疫情管理系统 附带详细运行指导视频
  10. 探究:数字孪生是如何赋能智慧能源信息化领域系统发展的?