Board logo

标题: [文件操作] 请问批处理怎么把视频音频的时间长度也生成出来呢? [打印本页]

作者: liuxuseo    时间: 2022-1-13 10:18     标题: 请问批处理怎么把视频音频的时间长度也生成出来呢?

  1. dir *.* /b> 文本档案.txt
复制代码
请问这代码是把当前目录的资源生成一个列表,请问怎么把视频音频的时间长度也生成出来呢?
作者: liuxuseo    时间: 2022-1-14 13:36

大神帮下忙
作者: Batcher    时间: 2023-12-2 11:13

获取单个视频文件的时长:
  1. ffprobe.exe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "1.mp4"
复制代码
批量删除小于6秒和大于240秒的mp4视频文件:
  1. @echo off
  2. REM 1、下载命令行工具 FFmpeg 例如:ffmpeg-n6.0-latest-win64-gpl-6.0.zip
  3. REM https://github.com/BtbN/FFmpeg-Builds/releases
  4. REM 2、解压缩之后把 ffprobe.exe 和此脚本放在同一个文件夹下
  5. set "DurationMin=20"
  6. set "DurationMax=240"
  7. cd /d "%~dp0"
  8. for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
  9.     set "ThisFile=%%i"
  10.     for /f "delims=." %%a in ('ffprobe.exe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 "%%i"') do (
  11.         if %%a lss %DurationMin% (
  12.             echo File to delete: [%%a] "%%i"
  13.             del /f /q "%%i"
  14.         ) else if %%a gtr %DurationMax% (
  15.             echo File to delete: [%%a] "%%i"
  16.             del /f /q "%%i"
  17.         )
  18.     )
  19. )
  20. pause
复制代码

作者: aloha20200628    时间: 2023-12-2 13:13


提供一个不必下载安装 FFmpeg 系列工具的方案
以下代码存为批处理脚本
代码中假定获取当前目录中的mp4和mp3文件时长。
  1. @set @v=1 /*
  2. @echo off &dir/b/s/a-d *.mp4 *.mp3|cscript /e:jscript "%~f0" &exit/b
  3. */
  4. var ws = WSH.stdin, sa = new ActiveXObject('shell.application');
  5. while (!ws.atendofstream) {
  6. var F = ws.readline(); //逐行读取
  7. var i = F.lastIndexOf('\\'), pathF = F.substr(0,i+1), nameF = F.substr(i+1);
  8. var ns = sa.namespace(pathF), pn = ns.parsename(nameF);
  9. WSH.echo(ns.getdetailsof(pn,27)+' '+nameF);
  10. }
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2