Dòng lệnh VLC: cvlc, phát trực tuyến & tự động hóa

Nâng cao Cập nhật lần cuối: Áp dụng cho: Windows / macOS / Linux · VLC 3.0.x

Đằng sau GUI, VLC là một động cơ media dòng lệnh đầy đủ. Binary headless cvlc (hoặc vlc --intf dummy) cho phép bạn viết kịch bản phát, chạy máy chủ phát trực tuyến, chuyển đổi hàng loạt, và thậm chí điều khiển một实例 đang chạy qua giao diện văn bản. Nếu bạn quản lý media trên máy chủ hoặc NAS, đây là hướng dẫn mở khóa VLC cho bạn.

Bước 1 — Phát cơ bản từ terminal

  1. Trên Linux/macOS, cvlc được cài cùng VLC. Trên Windows, dùng đường dẫn đầy đủ: "C:\Program Files\VideoLAN\VLC\vlc.exe" với các cờ --intf bên dưới.

    Binary có sẵn.

  2. Phát một file headless: cvlc /path/to/movie.mkv --intf dummy --play-and-exit

    VLC phát file và thoát mà không có cửa sổ.

  3. Liệt kê các luồng của file mà không phát: cvlc movie.mkv --intf dummy --play-and-exit -vvv 2>&1 | grep -i "stream 0"

    Thông tin codec và luồng được in.

Lưu ý--play-and-exit là cờ chủ lực cho script: VLC thoát khi file kết thúc, nên các job cron/systemd kết thúc sạch sẽ.

Bước 2 — Truyền một file hoặc thiết bị lên mạng

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

    VLC phục vụ luồng trên cổng 8080; mọi trình phát có thể mở http://:8080.

  2. Live webcam/device stream: cvlc -vvv v4l2:///dev/video0 --sout "#transcode{vcodec=h264,vb=1200}:standard{access=http,mux=ts,dst=:8090}" (Linux) hoặc dshow:// (Windows).

    Một luồng H.264 trực tiếp được phát sóng.

  3. Dừng bằng Ctrl+C — VLC dọn dẹp listener.

    Luồng kết thúc.

Bước 3 — Chuyển đổi hàng loạt với một lệnh

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

    File được chuyển đổi.

  2. Lặp qua thư mục: for f in *.mkv; do cvlc "$f" --sout "#transcode{...}:standard{mux=mp4,dst=${f%.mkv}.mp4}" --play-and-exit; done

    Mọi file được chuyển đổi tuần tự.

  3. Kiểm tra lựa chọn ffmpeg trước cho tác vụ nặng — cvlc mã hóa phần mềm và chậm hơn ffmpeg với bộ mã hóa phần cứng.

    Bạn chọn đúng công cụ cho việc.

Bước 4 — Giao diện rc để điều khiển từ xa

  • Khởi chạy với kênh điều khiển: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • Kết nối từ terminal khác: telnet 127.0.0.1 4212 (Linux/macOS) hoặc dùng client telnet trên Windows.
  • Lệnh: play, pause, stop, seek 120, volume 80, next, prev, info, playlist.
  • Có thể viết kịch bản qua file: printf "play\nvolume 60\n" | cvlc --extraintf rc --rc-fake-tty movie.mkv

Câu hỏi thường gặp

Sự khác biệt giữa vlc và cvlc là gì?
cvlc là cùng binary nhưng không tải giao diện GUI — nó có trên mọi nền tảng nhưng là wrapper trên một số gói Linux. Trên Windows, thêm --intf dummy vào lời gọi vlc.exe để có hiệu quả tương tự.
VLC có thể phát webcam của tôi lên trang web không?
Có — ví dụ thiết bị-stream ở Bước 2 phục vụ một luồng HTTP, và bạn có thể nhúng nó bằng thẻ video HTML5 trỏ vào URL (mux TS hoạt động trong hầu hết trình duyệt).
Tại sao chuyển đổi CLI chậm hơn GUI?
Không hề — cả hai dùng cùng bộ mã hóa phần mềm. GUI chỉ trông thân thiện hơn. Nếu tốc độ quan trọng, hãy dùng ffmpeg với bộ mã hóa GPU.
Làm sao tìm mọi tùy chọn CLI của VLC?
Chạy cvlc --longhelp (hoặc --help --help-verbose) và chuyển vào file: cvlc --longhelp > vlc-help.txt. Các tùy chọn theo module được liệt kê dưới phần "Stream output".