找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 67|回复: 8

[文本处理] 使用BAT批量提取视频参数

[复制链接]
发表于 6 小时前 | 显示全部楼层 |阅读模式
需要提取项目:1、文件名称;2、文件类型;3、文件大小;以上为属性中的常规选项,4、详细信息选项中的视频长度、帧宽度、帧高度、数据速率、总比特率、帧速率;
音频中的比特率;频道(声道);音频采样率,及文件路径。  找了很多没有找到相关的BAT文件,拜求大神
 楼主| 发表于 6 小时前 | 显示全部楼层
/*&cls
@echo off
rem 获取jpg、tif图片或mp4视频的基本属性信息
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set ext=*.mp4
set "outfile=.\info.csv"
cd /d "%~dp0"
dir /a-d/b %ext% 2>nul|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
var sa=new ActiveXObject('Shell.Application');
while(!WSH.StdIn.AtEndOfStream){
    var line=WSH.StdIn.ReadLine();
    var f=fso.GetFile(line);
    var filepath=f.ParentFolder.Path;
    var filename=f.Name;
    var objFolder=sa.NameSpace(filepath);
    var objItem=objFolder.ParseName(filename);
    for(var i=0;i<=300;i++){
        var key=objFolder.GetDetailsOf(null, i);
        var value=objFolder.GetDetailsOf(objItem, i);
        if(value !='' && value != null){
            WSH.echo(key+':'+value);
        }
    }
     WSH.echo('----------------------------');
}
 楼主| 发表于 6 小时前 | 显示全部楼层
5520a 发表于 2026-4-20 11:28
/*&cls
@echo off
rem 获取jpg、tif图片或mp4视频的基本属性信息

这个没有音频参数,路径,大小,并且没有导出成为表格
发表于 5 小时前 | 显示全部楼层
你要指明这些参数的前后顺序及其分隔符等输出格式...
 楼主| 发表于 4 小时前 | 显示全部楼层
aloha20200628 发表于 2026-4-20 12:26
你要指明这些参数的前后顺序及其分隔符等输出格式...

顺序没有要求,只要这些参数能调出,并形成表格xlsx格式既可以
发表于 4 小时前 | 显示全部楼层
5520a 发表于 2026-4-20 12:43
顺序没有要求,只要这些参数能调出,并形成表格xlsx格式既可以

批处脚本通过 vbs/jscript/powershell 代码调用系统内置的 shell.application 不能完全获取 mp4/mkv/avi 等多种视频格式文件的音视频数据,须借助 ffmpeg 系列组件或 mediaInfo 等第三方(均可直接从本论坛下载)...
 楼主| 发表于 3 小时前 | 显示全部楼层
aloha20200628 发表于 2026-4-20 13:17
批处脚本通过 vbs/jscript/powershell 代码调用系统内置的 shell.application 不能完全获取 mp4/mkv/avi  ...

抱歉我是小白,你说的这些我都不懂
发表于 2 小时前 | 显示全部楼层
本帖最后由 ShowCode 于 2026-4-20 15:03 编辑

BAT + MediaInfo

1、下载 MediaInfo
https://mediaarea.net/download/binary/mediainfo/26.01/MediaInfo_CLI_26.01_Windows_x64.zip

2、解压缩出来的MediaInfo.exe和LIBCURL.DLL与下面的 test.bat 都放在待处理的mp4视频文件夹下


  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "OutFile=1.csv"
  5. echo 文件名称,文件类型,文件大小,文件路径,视频时长,视频帧宽度,视频帧高度,视频数据速率,视频总比特率,视频帧速率,音频比特率,音频频道(声道),音频采样率>"%OutFile%"
  6. for /f "delims=" %%i in ('dir /b /a-d *.mp4') do (
  7.     echo --- %%i
  8.     for /f "tokens=1-4 delims=," %%a in ('MediaInfo.exe --Inform^="Audio;%%BitRate%%,%%Channel(s)%%,%%SamplingRate%%" "%%i"') do (
  9.         set "audioBit=%%a"
  10.         set "audioChannel=%%b"
  11.         set "audioSampling=%%c"
  12.     )
  13.     for /f "tokens=1-5 delims=," %%a in ('MediaInfo.exe --Inform^="Video;%%Duration/String3%%,%%Width%%,%%Height%%,%%BitRate%%,%%FrameRate%%" "%%i"') do (
  14.         set "videoDuration=%%a"
  15.         set "videoWidth=%%b"
  16.         set "videoHeight=%%c"
  17.         set "videoBit=%%d"
  18.         set "videoFrame=%%e"
  19.     )
  20.     set /a videoTotal=videoBit+audioBit
  21.     echo %%~nxi,%%~xi,%%~zi,%%~dpi,!videoDuration!,!videoWidth!,!videoHeight!,!videoBit!,!videoTotal!,!videoFrame!,!audioBit!,!audioChannel!,!audioSampling!>>"%OutFile%"
  22. )
复制代码
 楼主| 发表于 1 小时前 | 显示全部楼层
ShowCode 发表于 2026-4-20 15:00
BAT + MediaInfo

1、下载 MediaInfo

谢谢大神,数据元全部可以提取出来了。但是提取出来的参数值与看属性里的值有些误差,怎么调整
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-4-20 17:43

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表