裁剪视频主要是要安装 ffmpeg 然后使用Java代码控制它对视频进行裁剪

核心代码:

//finalPath就是你的视频位置加视频名称
//outPath就是你视频的输出位置
//fileName就是你视频输出后的名称
//crop=1920:960:0:0   里面的前两个参数为你要裁剪后的视频大小,后两个参数为裁剪起始的xy分辨率
//crop=a:b:c:d    a为裁剪后的长度,b为裁剪后的宽度,c为开始裁剪的那个点的x坐标,d为开始裁剪的那个点的y坐标
ffmpeg -i finalPath -vf crop=1920:960:0:0 outPath\fileName -y;

ffmpeg安装包和环境配置

链接:https://pan.baidu.com/s/16mxXgqIRoh6Ssh8uT2eHEg
提取码:znjl


下载下来之后找个位置将它解压就能直接用了,懂不?直接用,不用安装,选的位置不要太随意。
环境直接写到bin层就行了。
环境配置完了,windows+R,cmd,回车,输入ffmpeg -version,显示相关信息就成了。

使用Java控制cmd操作ffmpeg进行视频裁剪

核心代码都在这里了,但是不是完整代码,你们自己拾到拾到就能用了。

package sample;import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.PrintStream;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;public class Controller
{@FXMLprivate TextField But1Text1;@FXMLprivate TextField bth2text2;File filepatelist;String getfilepath;String[] flashname;String[] finalpath;File[] flashpath;File[] flashpath2;File[] flashpath3;File[] flashpath4;File[] flashpath5;File[] flashpath6;//自定义String getfilepatelist;String zidingyiCanShu="1920:960";public void getFilePathDemo()throws Exception{System.out.println(this.flashpath6);DirectoryChooser directoryChooser = new DirectoryChooser();//默认打开的路径directoryChooser.setInitialDirectory(new File("C:\\"));Stage stage = new Stage();//页面传入的路径this.getfilepath = directoryChooser.showDialog(stage).toString();File file = new File(this.getfilepath);//获取路径中的文件和文件夹路径(返回数组)this.flashpath = file.listFiles();System.out.println(this.flashpath);//循环数组中的路径(第二层)for (int i = 0; i < this.flashpath.length; i++) {//判断是否为文件夹if (this.flashpath[i].isDirectory()){//获取路径中的文件和文件夹路径(返回数组)this.flashpath2 = this.flashpath[i].listFiles();//循环数组中的路径(第三层)for (int j = 0; j < this.flashpath2.length; j++) {//判断是否为文件夹if (this.flashpath2[j].isDirectory()){//获取路径中的文件和文件夹路径(返回数组)this.flashpath3 = this.flashpath2[j].listFiles();for (int k = 0; k < this.flashpath3.length; k++) {if (this.flashpath2[j].isDirectory()) {if (this.flashpath3[k].getName().equals("aaa")) {//获取路径中的文件和文件夹路径(返回数组)this.flashpath4 = this.flashpath3[k].listFiles();}else if(this.flashpath3[k].getName().equals("bbb")){//获取路径中的文件和文件夹路径(返回数组)this.flashpath5 = this.flashpath3[k].listFiles();}else if(this.flashpath3[k].getName().equals("自定义")){//获取路径中的文件和文件夹路径(返回数组)this.flashpath6 = this.flashpath3[k].listFiles();}else{System.out.println(this.flashpath3[k]+"不是 aaa 、 bbb 或 自定义 文件夹");}}}if(this.flashpath4!=null){//                            循环可见光文件夹for (int x = 0; x < this.flashpath4.length; x++){String filePath = this.flashpath2[j].getPath() + "\\剪切aaa\\";File outFileDirec = new File(filePath);if (!outFileDirec.exists()) {outFileDirec.mkdir();}splitVideo(this.flashpath4[x].getPath(), filePath, this.flashpath4[x].getName(),"aaa");}}if(this.flashpath5!=null){//                            循环红外文件夹for (int x = 0; x < this.flashpath5.length; x++){String filePath = this.flashpath2[j].getPath() + "\\剪切bbb\\";File outFileDirec = new File(filePath);if (!outFileDirec.exists()) {outFileDirec.mkdir();}splitVideo(this.flashpath5[x].getPath(), filePath, this.flashpath5[x].getName(),"bbb");}}if(this.flashpath6!=null){//                            循环自定义文件夹for (int x = 0; x < this.flashpath6.length; x++){String filePath = this.flashpath2[j].getPath() + "\\剪切自定义\\";File outFileDirec = new File(filePath);if (!outFileDirec.exists()) {outFileDirec.mkdir();}splitVideo(this.flashpath6[x].getPath(), filePath, this.flashpath6[x].getName(),"zidingyi");}}}}}}
//        this.But1Text1.setText(this.getfilepatelist);System.out.println("程序结束,请查看结果");}public void getUpdateFliePathDemo(){DirectoryChooser directoryChooser = new DirectoryChooser();directoryChooser.setInitialDirectory(new File("C:\\"));Stage stage = new Stage();this.getfilepatelist = directoryChooser.showDialog(stage).toString();this.filepatelist = new File(this.getfilepatelist);this.bth2text2.setText(this.getfilepatelist);}public void splitVideo(String finalPath, String outPath, String fileName,String type)throws Exception{System.out.println(finalPath+"  裁剪开始");System.out.println("正在裁剪,请勿操作或中断");String cmd = "";if(type == "aaa"){cmd = "ffmpeg -i " + finalPath + " -vf crop=1920:960:0:0 " + outPath + "\\" + fileName + " -y";}else if(type == "bbb"){cmd = "ffmpeg -i " + finalPath + " -vf crop=720:520:0:0 " + outPath + "\\" + fileName + " -y";}else if(type == "zidingyi"){cmd = "ffmpeg -i " + finalPath + " -vf crop="+zidingyiCanShu+":0:0 " + outPath + "\\" + fileName + " -y";}Process process = Runtime.getRuntime().exec(cmd);BufferedReader br = new BufferedReader(new InputStreamReader(process.getErrorStream()));String line;while ((line = br.readLine()) != null) {//            System.out.println(line);}boolean btnSet = true;process.waitFor();System.out.println(finalPath+"  裁剪结束");System.out.println();}
}

对视频的分辨率大小进行裁剪相关推荐

  1. 视频质量和大小-分辨率200*200、码率kb/s、帧率FPS,带宽 / 码流 / 人数

    几个对视频的质量和大小影响最大的参数:帧率.码率和分辨率. public static final int DEFAULT_VIDEO_WIDTH = 640; public static final ...

  2. 视频质量和大小、分辨率200*200、码率kb/s、帧率FPS、带宽、码流、人数

    几个对视频的质量和大小影响最大的参数:帧率.码率和分辨率. public static final int DEFAULT_VIDEO_WIDTH = 640; public static final ...

  3. 视频自动播放以及视频过大按比例裁剪为页面大小

    自动播放 设置:加入muted 属性即可, loop:循环播放, autoplay:自动播放 <videomutedloopautoplaysrc="../img/video/come ...

  4. 格式工厂为保持输出视频质量与大小,自动裁剪视频长度

    格式工厂为保持输出视频质量与大小,自动裁剪视频长度 记录一下,当天老大叫我顺便输出一个嵌入式产品培训视频,原pr输出为500M左右的MP4,老大要求能在微信上发给客户,100M以内的要求,于是用格式工 ...

  5. 【CVPR2020视频超分辨率】Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution 阅读笔记

    paper:Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution code:Zooming-Sl ...

  6. [翻译]2020年综述:基于深度学习的视频超分辨率

    综述:基于深度学习的视频超分辨率 Video Super Resolution Based on Deep Learning: A Comprehensive Survey 论文链接:https:// ...

  7. ETH联合Meta和鲁汶大学 提出视频恢复算法VRT,在视频超分辨率、去模糊和去噪性能达到SOTA...

    关注公众号,发现CV技术之美 ✎ 编 者 言  该论文为将Swin Transformer应用于单图超分中的SwinIR的视频扩展版本,在视频复原的各领域中都有很大的提升,本文将从视频超分方向来解读V ...

  8. 综述丨视频超分辨率研究方法

    看点 近年来,深度学习在很多领域取得了进展,其中包括视频超分辨率任务.本文是第一个也是唯一一个视频超分方向的综述,主要看点如下: 1)回顾了基于深度学习的视频超分技术的研究进展: 2)提出了一种基于深 ...

  9. html视频怎么改大小,视频画面尺寸重置-视频画面大小调整的方法哪个好,视频尺寸怎么修改...

    深圳的天气就像女生的心情,说变就变,前几天还是20多度的天,今天就下降到10度左右,忽冷忽热的.小编再怎么提防也是不小心感冒了呢,小伙伴们可要注意保暖啊,多多运动.言归正传,现在很多下载好的高清电影分 ...

最新文章

  1. PC-lint使用说明
  2. android.content.ActivityNotFoundException: No Activity found to handle Intent 的错误
  3. IOS学习笔记——Objective-c基础(一)
  4. Eclipse对Java(TM)8的官方支持
  5. 为什么雷军指责“华为不懂研发”?
  6. html email输入框,html5给文本框实现email域名自动完成效果
  7. for循环与each的区别
  8. ICRA2021会议-----SLAM方向汇总
  9. 数字通信原理_推荐 | 从飞鸽传书到数字信号,你不得不懂的通信原理
  10. 学习写了一个新年倒计时->jQuery+CSS+Html
  11. python手机端抢票大麦网_大麦网抢票攻略1.0
  12. UE4材质(六):不透明度Opacity——玻璃
  13. java编程中常见的拼写错误
  14. linux sticky权限,Linux基础入门篇之文件高级权限suid,sgid,sticky
  15. 认识中药(4)--陈皮
  16. ATFX:美国服务业持续收缩,科技股前景如何?
  17. 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
  18. 不知道如何入门编程?最全在线教程网站汇总来了,还不赶快收藏
  19. ISO26262 功能安全各个阶段测试要求
  20. python取对数及作对数差在绘制散点图中的作用

热门文章

  1. c语言游泳是怎么钓鱼的,不会游泳的钓友进来看 自制饵料钓鲤鱼
  2. C#调用cplex出现引发类型为“ILOG.Concert.Exception”的异常
  3. 2022新版Python+大数据学习路线图,附视频教程
  4. MySQL组件和数据结构
  5. 诗鬼李贺:只活27岁,让我们争吵千年
  6. 宝塔 linux面板,宝塔Linux面板安装使用入门教程_Linux系统云服务器/云服务器/独立服务器建站面板安装入门教程...
  7. 编译原理实验二 自上而下的语法分析器(算术表达式)
  8. 网易云--手机QQ的换肤是怎么做到的,你对换肤有了解吗?看过换肤的原理没?
  9. 计算机寸出,电脑显示器长31cm宽23cm是多少寸?
  10. 用Python写了一个上课点名系统(附源码)