Linha de comando do VLC: cvlc, streaming e automação

Avançado Última atualização: Aplica-se a: Windows / macOS / Linux · VLC 3.0.x

Por trás da GUI, o VLC é um motor de mídia completo de linha de comando. O binário sem interface cvlc (ou vlc --intf dummy) permite scriptar reprodução, rodar um servidor de streaming, converter lotes e até controlar uma instância em execução via interface de texto. Se você gerencia mídia num servidor ou NAS, este é o guia que destrava o VLC para você.

Etapa 1 — Reprodução básica a partir do terminal

  1. No Linux/macOS, o cvlc é instalado com o VLC. No Windows, use o caminho completo: "C:\Program Files\VideoLAN\VLC\vlc.exe" com as flags --intf abaixo.

    O binário está disponível.

  2. Reproduza um arquivo sem interface: cvlc /path/to/movie.mkv --intf dummy --play-and-exit

    O VLC reproduz o arquivo e sai sem janela.

  3. Liste os fluxos do arquivo sem reproduzir: cvlc movie.mkv --intf dummy --play-and-exit -vvv 2>&1 | grep -i "stream 0"

    Informações de codec e fluxo são impressas.

Observação--play-and-exit é a flag workhorse para scripts: o VLC sai quando o arquivo termina, então jobs cron/systemd terminam limpamente.

Etapa 2 — Transmita um arquivo ou dispositivo para a rede

  1. Stream HTTP: cvlc movie.mkv --sout "#standard{access=http,mux=ts,dst=:8080}"

    O VLC serve o stream na porta 8080; qualquer player abre http://:8080.

  2. Stream de webcam/dispositivo ao vivo: cvlc -vvv v4l2:///dev/video0 --sout "#transcode{vcodec=h264,vb=1200}:standard{access=http,mux=ts,dst=:8090}" (Linux) ou dshow:// (Windows).

    Um stream H.264 ao vivo é transmitido.

  3. Pare com Ctrl+C — o VLC limpa o listener.

    O stream termina.

Etapa 3 — Converta em lote com um comando

  1. Arquivo único: cvlc input.mkv --sout "#transcode{vcodec=h264,acodec=mpga,vb=2000}:standard{mux=mp4,dst=output.mp4}" --sout-keep --play-and-exit

    O arquivo é convertido.

  2. Percorra uma pasta: for f in *.mkv; do cvlc "$f" --sout "#transcode{...}:standard{mux=mp4,dst=${f%.mkv}.mp4}" --play-and-exit; done

    Cada arquivo é convertido em sequência.

  3. Verifique a alternativa ffmpeg primeiro para trabalhos pesados — o cvlc codifica em software e é mais lento que o ffmpeg com codificadores de hardware.

    Você escolheu a ferramenta certa.

Etapa 4 — A interface rc para controle remoto

  • Inicie com um canal de controle: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • Conecte de outro terminal: telnet 127.0.0.1 4212 (Linux/macOS) ou use um cliente telnet no Windows.
  • Comandos: play, pause, stop, seek 120, volume 80, next, prev, info, playlist.
  • Scriptável via arquivo: printf "play\nvolume 60\n" | cvlc --extraintf rc --rc-fake-tty movie.mkv

Perguntas frequentes

Qual a diferença entre vlc e cvlc?
cvlc é o mesmo binário sem interfaces de GUI — existe em todas as plataformas, mas é um wrapper em alguns pacotes Linux. No Windows, adicione --intf dummy à chamada do vlc.exe para o mesmo efeito.
O VLC pode transmitir minha webcam para uma página web?
Sim — o exemplo de stream de dispositivo na Etapa 2 serve um stream HTTP, e você pode incorporá-lo com uma tag de vídeo HTML5 apontando para a URL (mux TS funciona na maioria dos navegadores).
Por que a conversão CLI é mais lenta que a GUI?
Não é — ambas usam o mesmo codificador de software. A GUI só parece mais amigável. Se a velocidade importa, use ffmpeg com codificadores de GPU.
Como acho todas as opções CLI do VLC?
Rode cvlc --longhelp (ou --help --help-verbose) e envie para um arquivo: cvlc --longhelp > vlc-help.txt. As opções por módulo estão listadas nas seções "Stream output".