[Batch/CMD] Извлечение звука из видео

Пожалуйста, замените пути к FFmpeg, папке с видеофайлами и папке для сохранения аудиофайлов на свои собственные. После внесения изменений сохраните скрипт .bat и запустите его. Теперь скрипт должен работать корректно и извлекать звук из видеофайлов. Если у вас возникнут дополнительные вопросы или проблемы, пожалуйста, сообщите мне.
Код:
Microsoft Windows [Version 10.0.19045.3516]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

C:\WINDOWS\system32>@echo off
setlocal enabledelayedexpansion

set ffmpeg_path=C:\ffmpeg-6.0-full_build\bin\ffmpeg.exe
set input_folder=D:\VIDEO IN SOUND
set output_folder=D:\SOUND

for %%i in ("%input_folder%\*.*") do (
Непредвиденное появление: %%i.
    set input_file=%%i
    set output_file=!output_folder!\%%~ni.wav

    !ffmpeg_path! -i "!input_file!" -vn -acodec pcm_s16le -ar 44100 -ac 2 "!output_file!"
"!ffmpeg_path!" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

    echo Звук успешно извлечен из "!input_file!"
Звук успешно извлечен из "!input_file!"
)

echo Все видеофайлы обработаны!
Все видеофайлы обработаны!

endlocal
 
Код:
Microsoft Windows [Version 10.0.19045.3516]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

C:\WINDOWS\system32>@echo off
setlocal enabledelayedexpansion

set ffmpeg_path=C:\ffmpeg-6.0-full_build\bin\ffmpeg.exe
set input_folder=D:\VIDEO IN SOUND
set output_folder=D:\SOUND

for %%i in ("%input_folder%\*.*") do (
Непредвиденное появление: %%i.
    set input_file=%%i
    set output_file=!output_folder!\%%~ni.wav

    !ffmpeg_path! -i "!input_file!" -vn -acodec pcm_s16le -ar 44100 -ac 2 "!output_file!"
"!ffmpeg_path!" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

    echo Звук успешно извлечен из "!input_file!"
Звук успешно извлечен из "!input_file!"
)

echo Все видеофайлы обработаны!
Все видеофайлы обработаны!

endlocal
Похоже, что проблема заключается в неправильном указании пути к исполняемому файлу FFmpeg в переменной %ffmpeg_path%. Убедитесь, что путь к файлу ffmpeg.exe указан правильно и соответствует фактическому расположению файла на вашем компьютере.

Также, убедитесь, что вы скачали и установили FFmpeg версии 6.0-full_build и что путь к папке с установленным FFmpeg указан правильно в переменной %ffmpeg_path%.

Если вы не уверены в правильности пути к FFmpeg, пожалуйста, уточните его и внесите соответствующие изменения в скрипт .bat.

После внесения изменений сохраните скрипт .bat и повторно запустите его. Проверьте, работает ли скрипт и извлекает ли звук из видеофайлов. Если проблема остается, пожалуйста, сообщите мне, и я постараюсь помочь вам.
 
Откуда брали ffmpeg.exe ?
Какой кодек используется в обрабатываемом файле и что за расширение у файла?
Возвращает ли утилита какую-нибудь ошибку?
 
Откуда брали ffmpeg.exe ?
Какой кодек используется в обрабатываемом файле и что за расширение у файла?
mp4
Возвращает ли утилита какую-нибудь ошибку?
нет, просто закрывается
 
если в конце батника поставить команду pause то он не будет закрываться
 
Методом проб и ошибок с помощью другого ИИ, выяснил, что правильная команда выглядит так.
Код:
@echo off
setlocal

set ffmpeg_path="путь_к_утилите_ffmpeg\ffmpeg.exe"
set input_file="путь_к_видеофайлу"
set output_file="путь_к_выходному_аудиофайлу"

%ffmpeg_path% -i %input_file% -y -vn -acodec libmp3lame -ar 44100 -ac 2 -b:a 192k %output_file%

pause

Вместо ffmpeg.exe лучше использовать 64-разрядную версию: ffmpeg-x64.exe
 
Там нужно кликнуть на спойлер "RUSSIAN" и появятся

Кстати тоже в коллекцию.


++++
 
Покажи скрин, что отвечает консоль
1697346035877.png


Скрипт получился такой
Код:
@echo off
setlocal

set ffmpeg_path="D:\ffmpeg-6.0-full_build\bin\ffmpeg.exe"
set input_file="D:\VIDEO1"
set output_file="D:\SOUND"

%ffmpeg_path% -i %input_file% -y -vn -acodec libmp3lame -ar 44100 -ac 2 -b:a 192k %output_file%

pause
 
Скрипт получился такой
Хех, прикольно - в качестве параметра передать директорию, а после сказать:
он не работает

Данный, конкретный, сценарий в качестве параметров ожидает файлы, а не директории.

Как только Вы оттестируете на одном файле работу утилиты и получите желаемый результат, Вам подскажут как обернуть рабочий код в цикл, для обработки многих файлов в той или иной директории.
 
В качестве выходного пути нужно также указать файл .mp3 а не директорию.
 
Назад
Сверху Снизу