前言

最近有个项目,因为预算有限所以我们开发了一套软件视频矩阵系统去实现硬件视频矩阵的功能…
结果验收的时候客户说不会切片子…无奈搞了一套视频切割工具…(服了!)

观摩一下

说点正事吧,众所周知FFMPEG是个神奇的库,它能对媒体文件进行转码/分割/调速/序列合并分割甚至是抠像等操作.


先搞一段代码观摩一下

@echo off
title 斯幽柏雷科技 - 视频切割工具[4x1] (%~1)
if "%~1"=="" (echo 无法定位原视频文件!,请将视频文件拖拽到快捷方式上重试! &pause&exit)
set OutPath=%~sdp1[4x1]%~n1&&set OutName=%~n1
md "%OutPath%" 1>nul 2>nul
"%~dp0\ffmpeg.exe" -y -i "%~1" ^
-vf crop=iw/4:ih:0:0 -threads 5 -preset ultrafast -strict -2 "%OutPath%\[4x1].mp4" ^
-vf crop=iw/4:ih:1*iw/4:0 -threads 5 -preset ultrafast -strict -2 "%OutPath%\[4x2].mp4" ^
-vf crop=iw/4:ih:2*iw/4:0 -threads 5 -preset ultrafast -strict -2 "%OutPath%\[4x3].mp4" ^
-vf crop=iw/4:ih:3*iw/4:0 -threads 5 -preset ultrafast -strict -2 "%OutPath%\[4x4].mp4" ^

上面是将视频画面一分为四的操作,可以拿来直接用.

如何使用

  • 首先你需要FFMpeg.exe一个,没有的话戳下面链接下载;
  • 将上面的代码复制下来,在FFMpeg同级目录下新建文本文档;
  • 将新建的文本文档改名为SplitVideo(4x1).bat;
  • 如果你无法更改文件后缀请戳这里查看修改方式.
  • 保存文件(注意编码格式为ANSI,UTF8的话会出现中文等字符乱码!);
  • 将视频文件拖拽到这个bat上;
  • 等待处理完成后,原视频目录下会创建一个文件夹,切割后的视频都在里面了;

FFmpeg视频裁切工具.zip
压缩包里提供了相关批处理,开箱即用,猛戳下载!

参数解释

为了辅助下一个大神的诞生,接下来我将详细的为你解释上面各种参数都干啥用的.以便你可以自由的修改它为自己想要的方式…


ffmpeg裁切参数解释

代码:
ffmpeg -vf crop=iw/4:ih:0:0 -threads 5 -preset ultrafast -strict -2 "OutPath.mp4""-vf crop解释"
添加一个crop滤镜(裁切滤镜),ffmpeg库包含了上百种滤镜!有兴趣可以去查一下."crop=iw/4:ih:2*iw/4:0解释"
上面代码定义出了要裁切的起始坐标及宽度高度信息
看上去很难理解,其实很简单。
它的格式crop=width:height:left:top帮你用代码捋一下逻辑:
left=2*iw/4 //获取视频四等份的第二等份起始位置
top=0
width=iw/4 //获取原视频的宽度÷4。
height=ih"iw"是inputWidth的缩写,它可以获取原视频的像素宽度.
"ih"是inputHeight的缩写,同理是获取原视频的高度."-threads 5 解释"
多线程等级 这个我也没搞懂什么逻辑 一般不占太多性能给2,猛一点个给5
具体参考https://www.cnblogs.com/yuanloo/p/4366194.html"-preset ultrafast 解释"
转码质量,指定编码速度,速度越慢,画质越好,cpu占用越高,可取值:
ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
具体参考:https://blog.csdn.net/u010168781/article/details/107497953
"-strict -2 解释"
使用aac音频编码
具体参考:https://blog.csdn.net/jeffasd/article/details/71194263

如果你好奇%~dp0这类的参数,请继续往下看:

代码:
if "%~1"==""
---------------------------------------------------------------
判断有没有拖放进来文件用的,这里%~1的情况就是获取拖拽到bat上的视频文件."%~1解释"
我们知道命令行是类似以"cmd /c echo 123"这样的方式执行的.
在"%~1"中,数字1为命令行以空格分割的第几个参数,也就是/c.
如果为"%~0"则是获取当前程序名cmd.以此类推.
---------------------------------------------------------------
代码:
set OutPath=%~sdp1[4x1]%~n1&&set OutName=%~n1
"set解释"
这个指令就不用多说了,设置变量用的.调用的时候需要在变量名两侧包裹上%号,例如echo %OutPath%"%~sdp1解释"
这个稍微复杂,它是三个指令的集合,其中s/d/p三个字母代表不同的涵义.%~s1:取文件全路径缩写%~d1:取驱动器盘符%~p1:取文件路径将他们三个组合起来就是获取视频文件所在路径当然还有其他的指令,详情看下这篇帖子:https://blog.csdn.net/weixin_30292745/article/details/95183527"%~n1解释"
这个是获取文件名(不带路径和后缀),%~nx1是获取带后缀的文件名.---------------------------------------------------------------
代码:
"%~dp0\ffmpeg.exe" -y -i "%~1" ^"%~dp0解释"
获取当前批处理文件所在的目录.
注意上面包含了双引号,它可以将路径中包含空格的文本视为一整个参数." ^ 解释"
批处理中的关键字符转义操作,一些关键字符例如| % >是无法直接echo出来的,
但是你将它前面加一个^则代表转义下一个字符为字符本身,无特殊功能.
例如想要输出%的话,直接 echo % 你会发现报错,你需要写成 echo ^%
在上面代码情况下,将^符号加到行尾则代表要注释换行符,
这样就实现了一行代码太长写不下,转行继续写的操作.

下面给了个截图帮助理解参数含义

最后

原创不易,点点关注。大吉大利,今晚不吃鸡!

批处理bat FFMpeg 视频裁切(画面一分多)相关推荐

  1. JavaCV进阶opencv图像检测识别:ffmpeg视频图像画面人脸检测

    JavaCV免费教程目录: JavaCV入门教程(免费JavaCV教程) javacv实战专栏目录(2016年更新至今): JavaCV实战专栏文章目录(2016年更新至今) 2022年最新JavaC ...

  2. python视频格式转换命令_python怎么实现文件格式的转换 批处理使用ffmpeg为mp4批量加入字幕...

    ffmpeg怎么批量处理任意类型的视频文件 如何用python实现视频关键帧提取并保存为图片?我想要和你一直在一起.一直到世界的终结.可以看到花开的微笑. import cv2vc = cv2.Vid ...

  3. ffmpeg php 水平翻转,FFmpeg 视频画面旋转的命令详解及旋转失败的解决方法

    这两天在处理一段用 iPhone 拍摄的视频,在手机上看正常,导出到电脑上发现视频是倒的,或者说反的.没办法,剪辑之前必须先将它"转正".于是打算将它在 iPhone 里进行处理, ...

  4. 视频剪辑教程,教你自定义裁切多个视频的画面

    在剪辑视频的时候,如何对多个视频的画面进行自定义裁切呢?下面请随小编一起来试试吧. 需要哪些工具? 视频素材若干 怎么快速裁切? 运行[视频剪辑高手],在"剪辑视频"中,导入视频素 ...

  5. 图片、视频修复并超分 - Real-ESRGAN项目使用(一) | 机器学习

    目录 前言 下载执行文件 测试使用 图片测试修复超分 视频测试修复超分 总结 前言 前段时间一直在弄golang,很少关注一些开源项目.正巧碰到一个,可以将模糊的照片或者视频修复清晰,且可以超分处理的 ...

  6. FFmpeg视频录制(WIN)

    FFmpeg视频录制(WIN) 命令 查看当前平台可用的设备 ffmpeg -devices// 结果如下: Devices:D. = Demuxing supported.E = Muxing su ...

  7. 6、FFmpeg 视频处理

    1.剪切获取指定时间段的视频 # 剪切获取从视频的第 50s 开始(-ss 50)往后的 20s 的视频 # 将获取的视频存入 output.mp4,且不进行重编码 ffmpeg -i input.m ...

  8. Android FFmpeg视频转码并保存到本地

    本文讲述在Android中, 如何将FFmpeg视频转码为YUV格式并保存到本地. 首先,我们基于上一篇文章 基于Android Studio3.2实现ffmpeg最简单的例子 来进行配置. 配置好之 ...

  9. FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK-殷汶杰-专题视频课程

    FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK-41668人已学习 课程介绍         FFMpeg是当今为的面向音视频开发的开源工程,广泛应用于多种音视频的客户端.播放器和流媒 ...

最新文章

  1. oracle Ratio_to_report的用法
  2. sklearn 相关性分析_人工智能和大数据的骨架支点—— 机器学习之相关性分析
  3. pythonurllib模块-Python中的urllib模块使用详解
  4. Ext JS 4.1.1 RC2发布
  5. java string转jsonobject_超赞!终于有网友用Java实现了第三方qq账号登录
  6. c语言指针怎样代替二维数组,c语言 指针和二维数组
  7. nts包如何下周 php_【Composer】PHP开发者必须了解!(life)
  8. iOS -- SKPhysicsJointSpring类
  9. 数据字典中的数据类型与ABAP中的中数据类型对应关系
  10. 思维导图的使用场合有哪些?怎么画思维导图
  11. Unity 获取GPS经纬度
  12. maven 命令下载依赖包
  13. vue3.0引入element插件报错解决
  14. Exception in thread main java.lang.UnsatisfiedLinkError: com.mzlr.jni.Calculater.Sum(II)I at com.
  15. 详解显式intent和隐式intent
  16. Fortran NINT函数意思
  17. 基于SPSS Moderler和R语言的数据挖掘宽表处理
  18. 张宏江官宣:2021北京智源大会,定档6月1日!开放注册中
  19. 12种文本数据采集方法
  20. html ol圆点,HTML ol 标签 type属性

热门文章

  1. git diff odt文件
  2. 微信打开X5调试,使微信页面可以在谷歌浏览器调试
  3. 含文档+PPT+源码等]精品基于PHP实现的商城电商网站[包运行成功]购物商城计算机毕设项目源码
  4. 预充电电路工作原理_变频器预充电电路作用
  5. 牛客网在线编程专题《剑指offer-面试题28》字符串的排列
  6. 协同管理平台中的NO.1——金和C6/P
  7. 墨墨背单词--通过安装包提取它的所有离线单词
  8. 511遇见易语言API模块线程创建许可证(InitializeCriticalSection)
  9. 愁没项目?来看看这些人是怎么赚钱的
  10. ADAMS 机构优化