Línea de comandos de VLC: cvlc, streaming y automatización

Avanzado Última actualización: Se aplica a: Windows / macOS / Linux · VLC 3.0.x

Detrás de la interfaz gráfica, VLC es un motor multimedia completo por línea de comandos. El binario sin interfaz cvlc (o vlc --intf dummy) te permite automatizar la reproducción, montar un servidor de streaming, convertir lotes e incluso controlar una instancia en ejecución mediante una interfaz de texto. Si gestionas medios en un servidor o NAS, esta es la guía que desbloquea VLC para ti.

Paso 1 — Reproducción básica desde el terminal

  1. En Linux/macOS, cvlc se instala con VLC. En Windows, usa la ruta completa: "C:\Program Files\VideoLAN\VLC\vlc.exe" con los flags --intf indicados abajo.

    El binario está disponible.

  2. Reproduce un archivo sin interfaz: cvlc /path/to/movie.mkv --intf dummy --play-and-exit

    VLC reproduce el archivo y sale sin mostrar ninguna ventana.

  3. Enumera los streams del archivo sin reproducirlo: cvlc movie.mkv --intf dummy --play-and-exit -vvv 2>&1 | grep -i "stream 0"

    Se imprime la información de códec y streams.

Nota--play-and-exit es el flag de trabajo para scripts: VLC se cierra cuando el archivo termina, así que los trabajos de cron/systemd terminan limpiamente.

Paso 2 — Emite un archivo o dispositivo a la red

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

    VLC sirve el stream en el puerto 8080; cualquier reproductor puede abrir http://:8080.

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

    Se emite un stream H.264 en vivo.

  3. Detén con Ctrl+C: VLC libera el listener.

    El stream termina.

Paso 3 — Conversión por lotes con un solo comando

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

    El archivo se convierte.

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

    Cada archivo se convierte en secuencia.

  3. Para trabajos pesados, valora primero la alternativa ffmpeg: cvlc codifica por software y es más lento que ffmpeg con codificadores por hardware.

    Has elegido la herramienta adecuada para el trabajo.

Paso 4 — La interfaz rc para control remoto

  • Arranca con un canal de control: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • Conéctate desde otro terminal: telnet 127.0.0.1 4212 (Linux/macOS) o usa un cliente telnet en Windows.
  • Comandos: play, pause, stop, seek 120, volume 80, next, prev, info, playlist.
  • Automatizable desde un archivo: printf "play\nvolume 60\n" | cvlc --extraintf rc --rc-fake-tty movie.mkv

Preguntas frecuentes

¿Cuál es la diferencia entre vlc y cvlc?
cvlc es el mismo binario sin interfaces gráficas cargadas: existe en todas las plataformas, aunque en algunos paquetes de Linux es un envoltorio. En Windows, añade --intf dummy a la llamada a vlc.exe para el mismo efecto.
¿Puede VLC emitir mi webcam a una página web?
Sí: el ejemplo de stream de dispositivo del paso 2 sirve un stream HTTP y puedes incrustarlo con una etiqueta video HTML5 apuntando a la URL (el mux TS funciona en la mayoría de navegadores).
¿Por qué la conversión por CLI es más lenta que la de la interfaz gráfica?
No lo es: ambas usan el mismo codificador por software. La interfaz gráfica solo parece más amigable. Si la velocidad importa, usa ffmpeg con codificadores de GPU.
¿Cómo encuentro todas las opciones CLI de VLC?
Ejecuta cvlc --longhelp (o --help --help-verbose) y redirígelo a un archivo: cvlc --longhelp > vlc-help.txt. Las opciones por módulo se listan en las secciones "Stream output".