标题: [文件操作] [分享]批处理获取视频文件分辨率并移动到对应的文件夹 [打印本页]
作者: Batcher 时间: 2023-10-28 11:00 标题: [分享]批处理获取视频文件分辨率并移动到对应的文件夹
【问题描述】
将当前文件夹的视频,按分辨率移动到以分辨率命名的文件夹,都是MP4格式
作者: Batcher 时间: 2023-10-28 11:01
【解决方案】
test-1.bat- @echo off
- REM 1、下载 FFmpeg 这个命令行工具 ffmpeg-master-latest-win64-gpl.zip
- REM https://github.com/BtbN/FFmpeg-Builds/releases
- REM 2、解压缩之后找到ffmpeg.exe、ffplay.exe、ffprobe.exe放在其中一个目录下:
- REM (1)跟 .bat 脚本放在同一个目录下
- REM (2)放在 C:\Windows\System32 目录下
-
- cd /d "%~dp0"
- for /f "delims=" %%a in ('dir /b /a-d *.mp4') do (
- echo,%%a
- for /f %%i in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^="width,height" -of csv^="p=0" "%%a"') do (
- if not exist "%%i" (
- md "%%i"
- )
- move "%%a" "%%i"
- )
- )
复制代码
作者: Batcher 时间: 2023-10-28 12:20
test-2.bat- @echo off
- REM 1、下载 MediaInfo 这个命令行工具
- REM https://mediaarea.net/download/binary/mediainfo/23.10/MediaInfo_CLI_23.10_Windows_x64.zip
- REM 2、解压缩之后找到MediaInfo.exe、LIBCURL.DLL放在其中一个目录下:
- REM (1)跟 .bat 脚本放在同一个目录下
- REM (2)放在 C:\Windows\System32 目录下
-
- cd /d "%~dp0"
- for /f "delims=" %%a in ('dir /b /a-d *.mp4') do (
- echo,%%a
- for /f %%i in ('mediainfo.exe --Inform^="Video;%%Width%%x%%Height%%" "%%a"') do (
- if not exist "%%i" (
- md "%%i"
- )
- move "%%a" "%%i"
- )
- )
复制代码
作者: 小白来了 时间: 2023-10-28 17:07
666,学习了
作者: czjt1234 时间: 2023-10-28 20:28
回复 2# Batcher
https://github.com/BtbN/FFmpeg-Builds/releases
这个下载了几天了,总是下了一小半就提示需要用户验证,然后就下载不了
特地注册了帐号,登录后再下载也是一样
这个什么鬼?
作者: DAIC 时间: 2023-10-29 18:10
回复 5# czjt1234
https://521github.com/BtbN/FFmpeg-Builds/releases
右键单击 ffmpeg-n6.0-latest-win64-gpl-6.0.zip
将链接另存为
作者: Batcher 时间: 2023-12-2 11:19
批量删除宽大于高的mp4视频文件- @echo off
- REM 1、下载命令行工具 FFmpeg 例如:ffmpeg-n6.0-latest-win64-gpl-6.0.zip
- REM https://github.com/BtbN/FFmpeg-Builds/releases
- REM 2、解压缩之后把 ffprobe.exe 和此脚本放在同一个文件夹下
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
- set "ThisFile=%%i"
- setlocal enabledelayedexpansion
- for /f "tokens=1-2 delims=," %%a in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^="width,height" -of csv^="p=0" "!ThisFile!"') do (
- set "ThisWidth=%%a"
- set "ThisHeight=%%b"
- if !ThisWidth! geq !ThisHeight! (
- echo File to delete: [!ThisWidth!,!ThisHeight!] "%%i"
- del /f /q "%%i"
- )
- )
- endlocal
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |