对视频进行分块,断点续传

 分块测试

    //分块测试@Testpublic void testChunk() throws IOException {//源路径File sourceFile = new File("D:\\BaiduNetdiskDownload\\Day1-00.项目导学.mp4");//分块文件存储路径String chunkFilePath = "D:\\develop\\chunk\\";//分块文件大小int chunkSize = 1024*1024*1;//分块文件个数int chunkNum = (int) Math.ceil(sourceFile.length()*1.0/chunkSize);//使用流从源文件读数据,向分块文件中读数据RandomAccessFile raf_r = new RandomAccessFile(sourceFile,"r");byte[] bytes = new byte[1024];for (int i = 0; i < chunkNum; i++) {//创建分块文件夹File chunkFile = new File(chunkFilePath + i);//创建分块文件写入流RandomAccessFile raf_rw = new RandomAccessFile(chunkFile, "rw");int len = -1;//将数据读到缓冲区中while((len=raf_r.read(bytes))!=-1){//将数据从缓冲区读出后写入文件中raf_rw.write(bytes,0,len);if(chunkFile.length()>=chunkSize){break;}}raf_rw.close();}raf_r.close();}

将视频分块成1mb一份的文件 

将分块的视频重新合并

//将分块进行合并@Testpublic void testMerge() throws IOException {//块文件目录File chunkFolder = new File("D:\\develop\\chunk\\");//源文件File sourceFile = new File("D:\\BaiduNetdiskDownload\\Day1-00.项目导学.mp4");//合并后的文件File mergeFile = new File("D:\\develop\\Day1-00.项目导学2.mp4");//取出所有分块文件File[] files = chunkFolder.listFiles();List<File> filesList = Arrays.asList(files);//排序Collections.sort(filesList, new Comparator<File>() {@Overridepublic int compare(File o1, File o2) {return Integer.parseInt(o1.getName())-Integer.parseInt(o2.getName());}});//写入流RandomAccessFile raf_rw = new RandomAccessFile(mergeFile,"rw");//缓冲区byte[] bytes = new byte[1024];for (File file : filesList) {int len = -1;//读分块的流RandomAccessFile raf_r = new RandomAccessFile(file,"r");while ((len=raf_r.read(bytes))!=-1){raf_rw.write(bytes,0,len);}raf_r.close();}raf_rw.close();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁跨境电商新纪元:大数据驱动下的精准营销攻略

随着全球互联网的快速发展&#xff0c;跨境电商已经成为企业拓展国际市场的重要途径。在这个竞争激烈的环境中&#xff0c;如何有效地进行精准营销成为企业成功的关键之一。大数据技术的兴起为跨境电商提供了丰富的信息和洞察&#xff0c;为精准营销提供了坚实的基础。本文Nox聚…

【八股文】面向对象基础

【八股文】面向对象基础 面向对象和面向过程的区别 面向过程把解决问题的过程拆成一个个方法&#xff0c;通过一个个方法的执行解决问题。面向对象会先抽象出对象&#xff0c;然后用对象执行方法的方式解决问题。 创建一个对象用什么运算符?对象实体与对象引用有何不同? …

rust gui fltk

FLTK 图形用户界面库的 Rust 绑定。 fltk crate 是一个跨平台的轻量级 GUI 库&#xff0c;可以静态链接以生成小型、独立且快速的 GUI 应用程序。 doc https://www.rust-lang.org/zh-CN/learn/get-started https://docs.rs/fltk/latest/fltk/ install $ curl --proto http…

安达发|APS排产软件的机台产线任务甘特图功能详解

在现代制造业中&#xff0c;高级计划与排产是制造业运营的关键环节。为了提高生产效率、降低成本并确保产品质量&#xff0c;企业需要对生产过程进行精细化管理。APS&#xff08;高级计划与排产&#xff09;系统作为一种先进的生产计划和调度工具&#xff0c;可以帮助企业实现这…

过了30岁了,一定要专注一件事情?视频号值得尝试!

经常说视频号下载助手&#xff0c; 但发现大多数的大佬都只是先专注一件事情。 小编初6就回来了&#xff0c;和一个大佬吃饭&#xff0c;虽然人家规模并不大&#xff0c;但日引客户上千也是基本的。 这里给大家揭秘一下&#xff0c;他的做法&#xff01;&#xff01;&#x…

Nginx返回502错误提示问题原因常用解决方法

Nginx返回502错误提示问题原因和常用解决方法 1. 因网站的访问量大&#xff0c;而php-cgi的进程数偏少&#xff0c;导致nginx 返回502错误 解决方法&#xff1a;针对这种情况的502错误&#xff0c;需增加php-cgi的进程数。 一般一个php-cgi进程占20M内存&#xff0c;你可以自…

3ds Max视频怎么渲染 3ds Max云渲染操作

在3ds Max软件中制作视频动画本质上是逐帧生成画面&#xff0c;并将这些连续帧串联起来创造出动态连贯的视觉效果。常见的视频帧率包括25 FPS(每秒帧数)、60 FPS、以及120 FPS等&#xff0c;帧率的提升可以使视频动画更加流畅。在实质上&#xff0c;视频渲染就是动画渲染&#…

力扣:45. 跳跃游戏 II

动态规划&#xff1a; 1.声明一个dp数组来表示到下标i时要跳转的最小次数&#xff0c;同时要个每个dp数组的值赋值为最大。之后初始化dp【0】0&#xff0c;用for循环来进行遍历下标i和遍历下标i之前的值&#xff0c;判断条件为如果i之前的某个下标跳转的距离>i时要根新dp【…

MakerPlace by Michaels:与Etsy一争高下的手工艺品新平台

Michaels是北美规模很大的专业艺术与手工艺品零售商&#xff0c;在加拿大和美国有1290家店。作为一个新的手工艺品在线交易平台——MakerPlace by Michaels 充满无限机遇&#xff01;所以各位跨境人们也不要错过这个平台&#xff0c;跟着我一起来了解一下吧&#xff01; MakerP…

平台+低代码:中小企业数字化转型普惠之路

随着数字化转型的深入推进&#xff0c;中小企业面临着数字化转型的压力和挑战。如何在有限的资源和条件下&#xff0c;实现高效、便捷的数字化转型&#xff0c;成为中小企业亟待解决的问题。本文将以“平台低代码”为主题&#xff0c;探讨中小企业数字化转型的新模式&#xff0…

武汉灰京文化展望未来游戏产业,科技创新引领全面升级的游戏体验

随着科技的迅速发展&#xff0c;未来游戏产业的发展将迎来一个全新的纪元。科技创新将引领游戏体验的全面升级&#xff0c;让玩家不再仅仅是通过屏幕与游戏互动&#xff0c;而是能够亲身感受到游戏世界的存在。这种全新的游戏体验将推动游戏产业不断突破创新&#xff0c;吸引更…

探究二维码技术:连接现实与数字世界的桥梁

title: 探究二维码技术&#xff1a;连接现实与数字世界的桥梁 date: 2024/2/19 13:15:36 updated: 2024/2/19 13:15:36 tags: 二维码技术数据编码纠错算法图像处理商业应用安全验证实时交互 引言&#xff1a; 二维码已经成为现代社会中广泛应用的一种技术工具。它不仅在商业领…

牛客网 OR141 密码检查

答案&#xff1a; #include <stdio.h> #include <string.h> #include <ctype.h> int main() {int n 0;int count1 0, count2 0, count3 0;scanf("%d", &n);while (n--){char ch[100];scanf("%s", ch);int len strlen(ch);if (…

图形化编程:启蒙儿童的创意之窗

传统的编程语言对于初学者&#xff0c;尤其是儿童来说&#xff0c;可能会显得复杂和难以理解。为了解决这个问题&#xff0c;图形化编程应运而生。图形化编程是一种通过拖拽图形块来编写程序的方法&#xff0c;它让编程变得简单、直观和有趣&#xff0c;为儿童提供了一个启蒙创…

【Python笔记-设计模式】惰性评价模式

一、说明 将某些对象的创建或计算延迟到真正需要它们的时候&#xff0c;以减少不必要的资源消耗和提高性能。 惰性评价在Python中实现也成为生成器&#xff0c;一般通过yield关键字实现。 (一) 解决问题 在处理大量数据时&#xff0c;使用惰性加载可以避免一次性加载所有数…

spark为什么比mapreduce快?

spark为什么比mapreduce快&#xff1f; 首先澄清几个误区&#xff1a; 1&#xff1a;两者都是基于内存计算的&#xff0c;任何计算框架都肯定是基于内存的&#xff0c;所以网上说的spark是基于内存计算所以快&#xff0c;显然是错误的 2;DAG计算模型减少的是磁盘I/O次数&…

linux部署File Browser文件管理系统

File Browser是go语言编写的软件&#xff0c;可以通过浏览器对服务器上的文件进行管理 创建部署目录 /data/filebrowser mkdir -p /data/filebrowser && cd /data/filebrowser下载File Browser软件包 wget https://github.com/filebrowser/filebrowser/releases/do…

基于SSM的在线教学质量评价系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的在线教学质量评价系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…

远程办公利器,有哪些远程办公利器好用

远程办公利器&#xff0c;有哪些远程办公利器好用 有的时候需要紧急办公位&#xff0c;但是你的电脑、公司、办公室、酒店、网吧、家里的电脑等极为不方便&#xff0c;这时有远程办公利器就好了。在网上查了下&#xff0c;发下个好用的工具&#xff0c;这里分享下。 1、…

C++项目开发编译踩坑记录

git工具配置了autocrlfinput下载的代码换行符默认从CRLF转换为LF&#xff0c;导致在windows桌面开发时&#xff0c;编译C代码全文报语法错误 问题现象&#xff1a;使用git clone命令从库上下载下来的代码&#xff0c;使用VS 2022编译&#xff0c;全文报语法错误&#xff0c;但…