ffmpeg 批处理截取片头片尾

news/2024/11/19 1:20:07/

比如其中一个视频文件总时长为
00:55:09.095

含有片头2分 13秒150毫秒
00:02:13.150
含有片尾3分 13秒030毫秒
00:03:13.030
获得了视频时间,计算和分割不知道怎么弄了

@CD /D "%~dp0"
@echo off&title ffmpeg获取视频时间
for %%a in (*.avi *.mkv *.mp4 *.flv) do (
ffmpeg -i "%%a" 2>&1 | grep -oP "(?<=from ')%%a(?=')|(?<=DURATION        : )[^\.]+\.\d{3}(?=0+)" | sed.exe "3,$d"
)>> 视频时间长度.txtpause

想00:55:09.095减去片尾时间00:03:13;030,从片头00:02:13;150到00:51:56.065处保存为新视频文件。

某文件夹内很多个视频,视频总长时间不等,所有视频片头片尾时间一致,如何获取视频总长时间后去掉片头片尾,直接截取中间部分放入目录下的“已切割”文件夹?

问题解决:
片头:s1=00:00:45.240
片尾:s2=00:01:30.090

@echo off & setlocal enabledelayedexpansion
set "s1=00:00:45.240"
set "s2=00:01:30.090"
for /f "tokens=1-4delims=:." %%a in ("%s2%") do (set /a "t2=(1%%a %% 100 *3600 + 1%%b %% 100 * 60 + 1%%c %% 100) * 1000 + 1%%d %% 1000"
)md NEW 2>nul
for %%i in (*.avi *.mkv *.mp4 *.flv) do (for /f "tokens=2-5delims=:., " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (set /a "t=(1%%a%%100*3600+1%%b%%100*60+1%%c%%100)*1000+1%%d0%%1000,t-=t2,ms=t%%1000,t/=1000"set /a h=t/3600,m=t%%3600/60,s=t%%60,h+=100,m+=100,s+=100,ms+=1000set "t=!h:~1!:!m:~1!:!s:~1!.!ms:~1!"ffmpeg -i "%%i" -ss !s1! -to !t! -vcodec copy -acodec copy "NEW\%%i" -y)
)
pause

http://www.bathome.net/thread-54211-1-3.html


http://www.ppmy.cn/news/18844.html

相关文章

Windows 服务器刷题(2)(带答案)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.刷题 前言 本章将会讲解Windows服务器刷题(2) 一.刷题 1.[多选题]以下哪些级别是Windows Server 2016日志事件包…

Linux下的进程信号

目录 信号背景&#xff1a; 信号产生前 Core Dump 信号产生中 信号产生后 其他概念 不可重入函数 volatile关键字 SIGCHLD 17号信号 信号背景&#xff1a; 在生活中处处都存在的信号&#xff0c;比如信号灯&#xff0c;要想处理信号&#xff0c;我们就必须具备两种…

2022年终总结——从打工到创业的转折

目录一、机会的创造和紧抓二、时间线的诉说1.1-4月份&#xff0c;在外面工作的过程中也在考虑这个事情&#xff1b;是在一个自己刚熟悉的金融行业学习提升&#xff1f;还是回归到自己铺垫了很久的教育行业深耕&#xff1f;2.5月份&#xff0c;孤身一人奔赴创业之路&#xff1b;…

c#定制操作Excel--com组件(共3种方法)

一、借助第三方插件 1、新建项目并引用》com组件》excel libary 或者时使用第三方开源freespire.xls Workbook book new Workbook();Worksheet sheet book.Worksheets[0];sheet.Name "First Page";sheet.Range[1, 1].Text "我的销售额 2019";sheet…

【手把手教你学51单片机】中断的优先级

注&#xff1a;本文章转载自《手把手教你学习51单片机》&#xff01;因转载需要原文链接&#xff0c;故无法选择转载&#xff01; 如若侵权&#xff0c;请联系我进行删除&#xff01;上传至网络博客目的为了记录自己学习的过程的同时&#xff0c;同时能够帮助其他一同学习的小伙…

一期每日一GO群分享-flag、viper、协程池、异常处理

1.11 flag库 今天介绍一个库flag&#xff0c;命令行程序常用&#xff0c;用来接受参数的。 var (intflag intboolflag boolstringflag string )func init() {flag.IntVar(&intflag, "intflag", 0, "int flag value")flag.BoolVar(&boolflag, &qu…

2022年,经历了两段实习后,我学会了……

前言&#xff1a; 大家好&#xff0c;我是小威。借着csdn的这个活动&#xff0c;我也来对自己的2022做一个回顾&#xff0c;同时对2023做一个合理的规划&#xff0c;希望我的经历也能对诸佬们带来绵薄之力。 感谢诸位大佬对小威这年的支持&#xff0c;祝诸佬们新年快乐哟~&…

流媒体方案之Nginx

1.Nginx可以作为流体服务器。2三种web服务器的比较3.推流端: FFmpeg使用RTMP协议向Nginx推流拉流端: •VLC播放器使用RTMP或HTTPFLV协议从Nginx拉流•浏览器使用HTTPFLV协议从Nginx拉流(安装flv.js)4.有两种方法&#xff1a;下载源码&#xff0c;手工编译使用Buildroot&#xf…