FFmpeg в партии для цикла для MP3 Продолжительность

У меня есть список MP3. Я хотел бы видеть, на экране, а также в файле, по одному MP3 в строке, с указанием его продолжительности. Вот пакетный файл, который я использую:

@echo off cls if exist MP3Duration.txt del MP3Duration.txt for %%i in (*.mp3) do ( echo %%i echo %%i >> MP3Duration.txt ffmpeg -i "%%i" | find "Duration" >> MP3Duration.txt ) 

У этого есть несколько проблем: выходной файл содержит имена файлов, но не длительность, а экранный экран содержит много текста ffmpeg, а для каждого файла – ошибку: «Должен быть указан хотя бы один выходной файл».

  • Терминальный эмулятор с разделенными панелями для Windows 7 (64 бит)
  • Создание пользователя admin из командной строки
  • Выполнить несколько команд с 1 строкой в ​​командной строке Windows?
  • Как вставить в приглашение Windows CMD, используя только клавиатуру?
  • Как установить псевдоним в командной строке Windows?
  • Как определить, является ли моя Windows 32-разрядной или 64-разрядной командой?
  • Существуют ли какие-либо инструменты в linux для разделения файла на месте?
  • Как остановить открытие каждого файла пакета как процесс с именем cmd.exe, как показано в диспетчере задач
  • Я не могу изменить системные файлы из CMD
  • Как я могу по-прежнему видеть текст «человек» после того, как я брошу человека?
  • Как браузер загружает изображение с этого URL-адреса?
  • Выполнить команду терминала, не сохраняя ее в .bash_history на OS X?
  • 2 Solutions collect form web for “FFmpeg в партии для цикла для MP3 Продолжительность”

    Выход консоли ffmpeg предназначен только для информационных целей и не должен анализироваться сценариями. ffprobe этого используйте ffprobe :

     ffprobe -loglevel error -select_streams a -show_entries stream=duration -sexagesimal -of default=noprint_wrappers=1:nokey=1 "%%i" | TEE.BAT -a MP3Duration.txt 

    Также см. Документацию FFprobe и FFmpeg Wiki: советы FFprobe .

     rem this assumes ffmpeg is in c:\ffmpeg if exist filelist.txt ( del /F filelist.txt ) if exist list.txt ( del /F list.txt ) copy nul list.txt >nul rem change exts as needed for your audio files if exist *.mkv ( dir/b *.mkv >>list.txt ) if exist *.fl? ( dir/b *.fl? >>list.txt ) if exist *.avi ( dir/b *.avi >>list.txt ) if exist *.mp4 ( dir/b *.mp4 >>list.txt ) if exist *.mov ( dir/b *.mov >>list.txt ) if exist *.swf ( dir/b *.swf >>list.txt ) sort <list.txt >filelist.txt for /F "delims=;" %%F in ( filelist.txt ) do ( for %%F in (^"%%F^") do ( for /f "tokens=2-5 delims=:., " %%a in ( 'c:\ffmpeg\ffmpeg -i "%%F" 2^>^&1 ^| find "Duration:"' ) do ( set /a full=%%a * 60 * 60 + %%b * 60 + %%c ) ) echo Length of %%F is %%a:%%b:%%c or !full! Seconds ) 
    Давайте будем гением компьютера.