@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ============================================
echo  Разделение WAV на части по 30 минут
echo ============================================
echo.

:: Получение пути к файлу (перетаскивание или ручной ввод)
if "%~1"=="" (
    set /p "input_file=Введите полный путь к WAV-файлу: "
    set "input=!input_file!"
) else (
    set "input=%~1"
)
:: Убираем кавычки, если они были вставлены
set "input=%input:"=%"

:: Проверка существования файла
if not exist "%input%" (
    echo Ошибка: Файл "%input%" не найден.
    pause
    exit /b
)

:: Проверка доступности FFmpeg
where ffmpeg >nul 2>nul || (
    echo Ошибка: FFmpeg не найден в системном PATH.
    echo Убедитесь, что ffmpeg.exe доступен из командной строки или лежит рядом со скриптом.
    pause
    exit /b
)

:: Извлечение директории и имени файла без расширения
for %%F in ("%input%") do (
    set "outdir=%%~dpF"
    set "basename=%%~nF"
)

echo.
echo Исходный файл: %input%
echo Выходные файлы: %basename%_part_001.wav, %basename%_part_002.wav, ...
echo Длительность каждой части: 30 минут (1800 сек)
echo Запуск FFmpeg...
echo.

:: -f segment      : режим разделения на сегменты
:: -segment_time 1800 : длительность сегмента в секундах (30 * 60)
:: -c copy         : копирование потока без перекодирования (мгновенно, без потери качества)
:: -reset_timestamps 1 : сброс таймкодов каждого сегмента на 00:00:00
ffmpeg -i "%input%" -f segment -segment_time 1800 -c copy -reset_timestamps 1 "%outdir%%basename%_part_%%03d.wav"

if %errorlevel% equ 0 (
    echo.
    echo ============================================
    echo  Готово! Файлы сохранены в папку с исходным файлом.
    echo ============================================
) else (
    echo.
    echo ============================================
    echo  Ошибка при обработке. Проверьте вывод выше.
    echo ============================================
)
