Командная строка 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 — тот же бинарник без загруженных графических интерфейсов — есть на всех платформах, но на некоторых пакетах Linux это обёртка. В Windows добавьте --intf dummy к вызову vlc.exe для того же эффекта.
Может ли VLC транслировать мою веб-камеру на веб-страницу?
Да — пример потока устройства в Шаге 2 отдаёт HTTP-поток, и вы можете встроить его через HTML5-тег video с указанием URL (мукс TS работает в большинстве браузеров).
Почему конвертация через CLI медленнее, чем через графический интерфейс?
Она не медленнее — оба используют один программный кодировщик. Графический интерфейс просто кажется дружелюбнее. Если важна скорость, используйте ffmpeg с GPU-кодировщиками.
Как найти все опции CLI VLC?
Выполните cvlc --longhelp (или --help --help-verbose) и перенаправьте в файл: cvlc --longhelp > vlc-help.txt. Опции по модулям перечислены в разделах «Stream output».