Командний рядок VLC: cvlc, потокове мовлення та автоматизація

Просунутий Оновлено: Застосовується до: Windows / macOS / Linux · VLC 3.0.x

Поза графічним інтерфейсом VLC — повноцінний медіа-рушій командного рядка. Бінарний файл без інтерфейсу cvlc (або vlc --intf dummy) дає змогу скриптувати відтворення, запустити сервер потокового мовлення, пакетно перетворювати і навіть керувати запущеним екземпляром через текстовий інтерфейс. Якщо ви керуєте медіа на сервері чи NAS, цей посібник відкриє для вас VLC.

Крок 1 — Базове відтворення з терміналу

  1. У Linux/macOS cvlc встановлюється разом із VLC. У Windows використовуйте повний шлях: "C:\Program Files\VideoLAN\VLC\vlc.exe" з прапорцями --intf, наведеними нижче.

    Бінарний файл доступний.

  2. Відтворіть файл без інтерфейсу: cvlc /path/to/movie.mkv --intf dummy --play-and-exit

    VLC відтворює файл і виходить без жодного вікна.

  3. Перелічіть потоки файлу без відтворення: cvlc movie.mkv --intf dummy --play-and-exit -vvv 2>&1 | grep -i "stream 0"

    Виводяться відомості про кодек і потік.

Примітка--play-and-exit — основний прапорець для скриптів: VLC завершується, коли файл закінчується, тож завдання cron/systemd чисто завершуються.

Крок 2 — Транслюйте файл або пристрій у мережу

  1. HTTP-потік: cvlc movie.mkv --sout "#standard{access=http,mux=ts,dst=:8080}"

    VLC віддає потік на порту 8080; будь-який плеєр може відкрити http://:8080.

  2. Живий потік вебкамери/пристрою: cvlc -vvv v4l2:///dev/video0 --sout "#transcode{vcodec=h264,vb=1200}:standard{access=http,mux=ts,dst=:8090}" (Linux) або dshow:// (Windows).

    Транслюється живий потік H.264.

  3. Зупиніть через Ctrl+C — VLC звільняє слухач.

    Потік завершується.

Крок 3 — Пакетне перетворення однією командою

  1. Окремий файл: cvlc input.mkv --sout "#transcode{vcodec=h264,acodec=mpga,vb=2000}:standard{mux=mp4,dst=output.mp4}" --sout-keep --play-and-exit

    Файл перетворено.

  2. Цикл по папці: for f in *.mkv; do cvlc "$f" --sout "#transcode{...}:standard{mux=mp4,dst=${f%.mkv}.mp4}" --play-and-exit; done

    Кожен файл перетворюється послідовно.

  3. Для важких завдань спершу розгляньте альтернативу ffmpeg — cvlc кодує програмно і повільніший за ffmpeg з апаратними кодувальниками.

    Ви обрали правильний інструмент.

Крок 4 — Інтерфейс rc для віддаленого керування

  • Запустіть із каналом керування: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • Підключіться з іншого терміналу: telnet 127.0.0.1 4212 (Linux/macOS) або скористайтеся telnet-клієнтом у Windows.
  • Команди: play, pause, stop, seek 120, volume 80, next, prev, info, playlist.
  • Можна скриптувати через файл: printf "play\nvolume 60\n" | cvlc --extraintf rc --rc-fake-tty movie.mkv

Часті запитання

У чому різниця між vlc і cvlc?
cvlc — той самий бінарний файл без завантажених GUI-інтерфейсів — існує на всіх платформах, але в деяких пакунках Linux це обгортка. У Windows додайте --intf dummy до виклику vlc.exe для того самого ефекту.
Чи може VLC транслювати мою вебкамеру на веб-сторінку?
Так — приклад потоку пристрою в Кроці 2 віддає HTTP-потік, і ви можете вбудувати його тегом HTML5 video, що вказує на URL (мультиплексування TS працює в більшості браузерів).
Чому перетворення через CLI повільніше за GUI?
Ні — обидва використовують той самий програмний кодувальник. GUI просто виглядає дружніше. Якщо важлива швидкість, використовуйте ffmpeg із GPU-кодувальниками.
Як знайти всі опції CLI VLC?
Виконайте cvlc --longhelp (або --help --help-verbose) і перенаправте у файл: cvlc --longhelp > vlc-help.txt. Опції за модулями наведено в розділах "Stream output".