Como eu uso a linha de comando VLC na linha de lote do Windows sem mostrar a GUI?

4

Eu quero usar o seguinte para converter alguns arquivos M4A para MP3. Ele funciona bem, mas exibe a GUI do VLC para cada arquivo e mostra 'quit' como um segundo arquivo a ser convertido. Existe um modo 'silencioso', onde faz a conversão com interface gráfica não? Ou há algo errado com a minha sintaxe?

@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
)

ATUALIZAÇÃO: editei por resposta # 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"
)

O que ele faz é abrir uma janela de comando do DOS à medida que cada arquivo é processado. O que eu quero é um modo totalmente silencioso (se possível). Eu tenho outro arquivo de lote que faz algo semelhante (rasga arquivos de CD para MP3) e parece funcionar assim:

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
)

O que estou perdendo?

    
por jchwebdev 29.07.2015 / 21:45

3 respostas

4

O que você está procurando é a dummy interface . Isso não lhe dará nenhuma GUI.

Exemplo:

% vlc --intf dummy vcd://

Edit: Enquanto a interface fictícia não lhe dará nenhuma GUI, ela abrirá um console. Não é isso que a pergunta pede, então estou atualizando a resposta.

Isso pode ser Linux apenas , Eu ainda não tenho certeza. Você pode substituir vlc por cvlc para não ter nenhuma interface.

    
por 29.07.2015 / 21:51
1

Você pode usar isto:

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

De acordo com a resposta do @ MC10 , o -intf dummy ou -I dummy (eles fazem a mesma coisa) oculta a GUI, mas ainda abre uma segunda janela de linha de comando. Use a opção --dummy-quiet adicional para ocultar essa janela também.

Então, para o seu cenário:

@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"
)
    
por 05.02.2017 / 20:29
0

Você não precisa ligar para o VLC como um servidor. Não tenho certeza, mas parece que "-I http" parâmetros são o que você precisa. Espero que esta ajuda.

    
por 28.12.2015 / 02:57