Wiersz poleceń VLC: cvlc, strumieniowanie i automatyzacja

Zaawansowany Ostatnia aktualizacja: Dotyczy: Windows / macOS / Linux · VLC 3.0.x

Za interfejsem graficznym VLC jest pełny silnik multimediów wiersza poleceń. Plik binarny bez interfejsu cvlc (lub vlc --intf dummy) pozwala skryptować odtwarzanie, uruchomić serwer strumieniowy, konwertować wsadowo, a nawet sterować działającą instancją przez interfejs tekstowy. Jeśli zarządzasz mediami na serwerze lub NAS, to przewodnik, który odblokowuje VLC dla Ciebie.

Krok 1 — Podstawowe odtwarzanie z terminala

  1. W Linuksie/macOS cvlc instalowany jest wraz z VLC. W Windows użyj pełnej ścieżki: „C:\Program Files\VideoLAN\VLC\vlc.exe” z flagami --intf poniżej.

    Plik binarny jest dostępny.

  2. Odtwórz plik bez interfejsu: cvlc /path/to/movie.mkv --intf dummy --play-and-exit

    VLC odtwarza plik i wychodzi bez żadnego okna.

  3. Wylistuj strumienie pliku bez odtwarzania: cvlc movie.mkv --intf dummy --play-and-exit -vvv 2>&1 | grep -i "stream 0"

    Wydrukowane zostają informacje o kodeku i strumieniu.

Uwaga--play-and-exit to najważniejsza flaga dla skryptów: VLC kończy się po zakończeniu pliku, więc zadania cron/systemd kończą się czysto.

Krok 2 — Strumieniuj plik lub urządzenie do sieci

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

    VLC serwuje strumień na porcie 8080; dowolny odtwarzacz może otworzyć http://:8080.

  2. Strumień na żywo z kamery/urządzenia: cvlc -vvv v4l2:///dev/video0 --sout "#transcode{vcodec=h264,vb=1200}:standard{access=http,mux=ts,dst=:8090}" (Linux) lub dshow:// (Windows).

    Nadawany jest strumień H.264 na żywo.

  3. Zatrzymaj przez Ctrl+C — VLC czyści nasłuchującego.

    Strumień się kończy.

Krok 3 — Wszczna konwersja jednym poleceniem

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

    Plik zostaje przekonwertowany.

  2. Pętla po folderze: for f in *.mkv; do cvlc "$f" --sout "#transcode{...}:standard{mux=mp4,dst=${f%.mkv}.mp4}" --play-and-exit; done

    Każdy plik jest konwertowany po kolei.

  3. Najpierw sprawdź alternatywę ffmpeg dla ciężkich zadań — cvlc koduje programowo i jest wolniejszy niż ffmpeg ze sprzętowymi koderami.

    Wybrałeś właściwe narzędzie do zadania.

Krok 4 — Interfejs rc do zdalnego sterowania

  • Uruchom z kanałem sterowania: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • Połącz z innego terminala: telnet 127.0.0.1 4212 (Linux/macOS) lub użyj klienta telnet w Windows.
  • Polecenia: play, pause, stop, seek 120, volume 80, next, prev, info, playlist.
  • Skryptowalne przez plik: printf "play\nvolume 60\n" | cvlc --extraintf rc --rc-fake-tty movie.mkv

Częste pytania

Jaka jest różnica między vlc a cvlc?
cvlc to ten sam plik binarny bez załadowanych interfejsów GUI — istnieje na wszystkich platformach, ale w niektórych pakietach Linuksa to wrapper. W Windows dodaj --intf dummy do wywołania vlc.exe dla tego samego efektu.
Czy VLC może strumieniować moją kamerę internetową do strony WWW?
Tak — przykład strumienia urządzenia w Kroku 2 serwuje strumień HTTP, a możesz osadzić go za pomocą znacznika wideo HTML5 wskazującego na adres URL (mux TS działa w większości przeglądarek).
Dlaczego konwersja CLI jest wolniejsza niż GUI?
Nie jest — oba używają tego samego kodera programowego. GUI po prostu wygląda przyjaźniej. Jeśli liczy się szybkość, użyj ffmpeg ze sprzętowymi koderami.
Jak znaleźć wszystkie opcje CLI VLC?
Uruchom cvlc --longhelp (lub --help --help-verbose) i przekieruj do pliku: cvlc --longhelp > vlc-help.txt. Opcje per-moduł są wymienione w sekcjach „Stream output”.