Задать вопрос
@Max8k

Как проверить множество mp3-файлов на целостность?

есть много кэшированной mp3-музыки со старого смартфона. Некоторые треки закачались не полностью, у некоторых пробел в середине трека (очевидно был перемотан), при прослушивании таких треков звук либо обрывается на моменте, либо плеер стопорится.

Как можно скопом выявить такие недокаченные файлы, либо однозначно выявить файлы целые?
  • Вопрос задан
  • 20 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Вы можете воспользоваться утилитой ffmpeg. Ее необходимо скачать и установить.
Базовая команда в командной строке, чтобы проверить один файл input.mp3 выглядит так:
ffmpeg -v error -f null - -i input.mp3 -f null - -
Если все файлы положить в один каталог input (чтобы лежали без вложенности), а рядом создать такой скрипт в виде bat-файла, то можно проверить файлы пакетно:
@echo off
setlocal enabledelayedexpansion

REM Указываем каталог с MP3 файлами
set "INPUT_DIR=input"

REM Проверяем, существует ли каталог
if not exist "%INPUT_DIR%" (
    echo Каталог "%INPUT_DIR%" не найден.
    goto :eof
)

REM Объявляем переменную для подсчёта файлов
set "total=0"
set "passed=0"
set "failed=0"

for %%F in ("%INPUT_DIR%\*.mp3") do (
    set /a total+=1
    echo Проверка файла: %%~nxF

    REM Создаём временный файл для проверки
    set "tempfile=%%~dpnxf_temp.mp3"

    REM Пытаемся перекодировать файл в временный файл
    ffmpeg -v error -i "%%F" -f mp3 -y "%tempfile%" >nul 2>&1

    if errorlevel 1 (
        echo Ошибка при проверке файла: %%~nxF
        set /a failed+=1
    ) else (
        echo Файл %%~nxF прошёл проверку.
        set /a passed+=1
        del "%tempfile%"
    )
)

echo.
echo Итог:
echo Всего файлов: %total%
echo Пройдено успешно: %passed%
echo С ошибками: %failed%
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы