4

Я хочу использовать следующее для преобразования некоторых файлов M4A в MP3. Он работает нормально, но отображает графический интерфейс VLC для каждого файла и показывает «выход» в качестве второго файла для преобразования. Есть ли «тихий» режим, где происходит конвертация с не графическим интерфейсом? Или что-то не так с моим синтаксисом?

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
  CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst="converted/%%"} vlc://quit
)

ОБНОВЛЕНИЕ: я отредактировал за Ответ # 1

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
  CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --intf dummy --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst=converted/"%%f"} vlc://quit
  move "%%f" trash/"%%f"
)

Что он делает, так это открывает командное окно DOS при обработке каждого файла. То, что я хочу, это абсолютно тихий режим (если это возможно). У меня есть другой пакетный файл, который делает что-то похожее (копирует CD-файлы в MP3), и кажется, что работает так:

FOR /R D:\ %%G IN (*.cda) DO (
    "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!y! :sout=#transcode{vcodec=none,acodec=%e%,ab=320,channels=2,samplerate=44100}:std{access="file",mux=raw,dst="%t%!PADDED!.%e%"} vlc://quit
)

Что мне не хватает?

3 ответа3

3

То, что вы ищете, это dummy интерфейс. Это не даст вам GUI.

Пример:

% vlc --intf dummy vcd://

Изменить: в то время как фиктивный интерфейс не даст вам графический интерфейс, он откроет консоль. Это не то, что задан вопрос, поэтому я обновляю ответ.

Это может быть только Linux, я пока не уверен. Вы можете заменить vlc на cvlc чтобы вообще не получать интерфейс.

2

Вы можете использовать это:

vlc -I dummy --dummy-quiet {path_to_file}

Согласно ответу @ MC10, -intf dummy или манекен -I dummy (они делают то же самое) скрывает графический интерфейс, но все равно открывает второе окно командной строки. Используйте дополнительную --dummy-quiet чтобы скрыть это окно.

Итак, для вашего сценария:

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
    CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --I dummy --dummy-quiet --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst=converted/"%%f"} vlc://quit
    move "%%f" trash/"%%f"
)
-1

Вы пропускаете вызов VLC как сервер. Не уверен, но кажется, что вам нужны параметры "-I http". Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .