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

[文本处理] 获取文件夹下视频文件的分辨率和帧率

[复制链接]
发表于 2024-5-8 17:53:26 | 显示全部楼层 |阅读模式
文件夹下有很多子文件夹,子文件夹下有几个视频,想知道这些视频是分辨率和帧率(比如8K60fps),能以目录树形式展示出来吗?
发表于 2024-5-8 23:34:06 | 显示全部楼层
简单显示
下载mediainfo (http://bcn.bathome.net/s/tool/index.html?key=mediainfo)
  1. @echo off
  2. rem 批处理保存为utf-8编码格式
  3. chcp 65001 >nul
  4. cd /d "%~dp0"
  5. for /d %%d in (*) do (
  6.         echo %%d
  7.         for %%i in ("%%d\*.mp4") do (
  8.                 for /f "delims=" %%a in ('mediainfo --Output^="Video;分辨率:%%Width%%x%%Height%% 帧率:%%FrameRate%%" "%%i"') do (
  9.                         echo ---%%~nxi        %%a
  10.                 )
  11.         )
  12.         echo=
  13. )
  14. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
gddsssko + 1 666

查看全部评分

 楼主| 发表于 2024-5-9 11:49:13 | 显示全部楼层
本帖最后由 gddsssko 于 2024-5-9 12:00 编辑

回复 2# 77七
显示:Press any key to continue . . .,然后就没结果了。请问是我哪里没做对?
环境变量也配置了
C:\Users\12345>MediaInfo
Usage: "MediaInfo [-Options...] FileName1 [Filename2...]"
"MediaInfo --Help" for displaying more information
发表于 2024-5-9 12:08:15 | 显示全部楼层
回复 3# gddsssko


   文件夹名称都不显示吗?把批处理文件放在顶楼中的”文件夹下“再试试
 楼主| 发表于 2024-5-9 13:12:59 | 显示全部楼层
回复 4# 77七


    可以了,是我把测试文件直接放到主文件夹下的没显示。
    请问如果直接把分辨率和帧率写入到子文件夹上应该怎么改?(只考虑子文件夹下的其中任意一个视频,因为子文件夹下的视频分辨率和帧率都一样),有条件再加上子文件夹内存大小。
 楼主| 发表于 2024-5-9 14:51:36 | 显示全部楼层
回复 4# 77七

@echo off
chcp 65001 >nul
cd /d "%~dp0"
for /d %%d in (*) do (
    setlocal enabledelayedexpansion
    for %%i in ("%%d\*.mp4") do (
        for /f "delims=" %%a in ('mediainfo --Output^="Video;%%Width%%x%%Height%% %%FrameRate%%" "%%i"') do (
            set "info=%%a"
            ren "%%d" "%%d !info!"
            endlocal
            exit /b
        )
    )
)
pause
请问我改的这个怎么处理完第一个子目录就结束了
发表于 2024-5-9 15:06:00 | 显示全部楼层
本帖最后由 77七 于 2024-5-9 15:08 编辑

回复 6# gddsssko


   exit /b和call搭配使用及时退出循环。
  1. @echo off
  2. rem 批处理保存为utf-8编码格式
  3. chcp 65001 >nul
  4. cd /d "%~dp0"
  5. for /f "delims=" %%d in ('dir /b /ad') do (
  6.         for /f "tokens=3" %%a in ('dir /s /-c "%%d" ^|findstr /rec:" bytes"') do (
  7.                 set s=%%a
  8.         )
  9.         call :1 "%%d"
  10. )
  11. pause & exit

  12.         :1
  13.         for %%i in ("%~1\*.mp4") do (
  14.                 for /f "delims=" %%a in ('mediainfo --Output^="Video;分辨率:%%Width%%x%%Height%% 帧率:%%FrameRate%%" "%%i"') do (
  15.                         for /f "delims=." %%b in ('powershell -c "%s%/1024/1024"') do (
  16.                                 ren "%~1" "%~1 %%a 大小:%%b M"
  17.                                 exit /b
  18.                         )
  19.                 )
  20.         )
  21.         exit /b
复制代码
 楼主| 发表于 2024-5-9 15:29:43 | 显示全部楼层
回复 7# 77七
ok了,感谢大佬,大佬真帅
 楼主| 发表于 2024-5-16 10:08:17 | 显示全部楼层
回复 7# 77七


    请问我后期又加入了一些子文件夹,再命名的话那些已经改名的文件夹会叠加视频信息,怎么判定已经改名的不执行这个批处理呢?
发表于 2024-5-16 11:42:21 | 显示全部楼层
修改7楼代码第5行为:
  1. for /f "delims=" %%d in ('dir /b /ad ^|findstr /rvc:"[0-9][0-9][0-9][0-9]*x[0-9][0-9][0-9][0-9]*"') do (
复制代码


即排除  包含 "3位及以上数字x3位及以上数字" 的文件名
 楼主| 发表于 2024-5-16 12:46:41 | 显示全部楼层
回复 10# 77七


    感谢感谢,大佬真帅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:19 , Processed in 0.016682 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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