บรรทัดคำสั่ง VLC: cvlc, สตรีมมิง & การทำอัตโนมัติ

ขั้นสูง อัปเดตล่าสุด: ใช้ได้กับ: Windows / macOS / Linux · VLC 3.0.x

เบื้องหลัง GUI 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"

    พิมพ์ข้อมูล codec และสตรีม

หมายเหตุ--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 — มีบนทุกระบบปฏิบัติการแต่เป็น wrapper บนแพ็กเกจ Linux บางรุ่น บน Windows ให้เพิ่ม --intf dummy กับการเรียก vlc.exe สำหรับผลลัพธ์เดียวกัน
VLC สตรีมเว็บแคมของฉันไปยังหน้าเว็บได้หรือไม่?
ได้ — ตัวอย่างอุปกรณ์สตรีมในขั้นตอนที่ 2 เสิร์ฟสตรีม HTTP และคุณฝังมันด้วยแท็กวิดีโอ HTML5 ชี้ที่ URL (TS mux ทำงานในเบราว์เซอร์ส่วนใหญ่)
ทำไมการแปลง CLI ถึงช้ากว่า GUI?
ไม่ใช่ — ทั้งสองใช้ตัวเข้ารหัสซอฟต์แวร์เดียวกัน GUI แค่ดูเป็นมิตรกว่า หากความเร็วสำคัญ ใช้ ffmpeg กับตัวเข้ารหัส GPU
ฉันหาตัวเลือก CLI ของ VLC ทั้งหมดได้อย่างไร?
รัน cvlc --longhelp (หรือ --help --help-verbose) และส่งไปไฟล์: cvlc --longhelp > vlc-help.txt ตัวเลือกรายโมดูลแสดงภายใต้ส่วน "Stream output"