خط فرمان VLC: cvlc، جریان‌سازی و خودکارسازی

پیشرفته آخرین به‌روزرسانی: مناسب برای: ویندوز / macOS / لینوکس · VLC 3.0.x

زیرِ رابط گرافیکی، VLC یک موتور رسانه کامل خط فرمان است. باینری بدون رابط cvlc (یا vlc --intf dummy) به شما اجازه می‌دهد پخش را اسکریپت‌نویسی کنید، سرور جریان اجرا کنید، تبدیل انبوه انجام دهید و حتی نمونه در حال اجرا را از طریق رابط متنی کنترل کنید. اگر رسانه را روی سرور یا NAS مدیریت می‌کنید، این راهنما VLC را برایتان باز می‌کند.

مرحله ۱ — پخش پایه از ترمینال

  1. در لینوکس/macOS، cvlc همراه VLC نصب می‌شود. در ویندوز از مسیر کامل استفاده کنید: "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 به‌تمیزی پایان می‌یابند.

مرحله ۲ — جریان‌سازی فایل یا دستگاه به شبکه

  1. جریان‌سازی HTTP: cvlc movie.mkv --sout "#standard{access=http,mux=ts,dst=:8080}"

    VLC جریان را روی پورت ۸۰۸۰ ارائه می‌دهد؛ هر پخش‌کننده‌ای می‌تواند http://:8080 را باز کند.

  2. جریان‌سازی زنده دوربین/دستگاه: cvlc -vvv v4l2:///dev/video0 --sout "#transcode{vcodec=h264,vb=1200}:standard{access=http,mux=ts,dst=:8090}" (لینوکس) یا dshow:// (ویندوز).

    در حال پخش زنده جریان H.264 است.

  3. با Ctrl+C متوقف کنید — VLC شنونده (listener) را پاک‌سازی می‌کند.

    جریان پایان می‌یابد.

مرحله ۳ — تبدیل انبوه با یک دستور

  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 با رمزگذار سخت‌افزاری کندتر است.

    ابزار درست را برای وظیفه انتخاب کردید.

مرحله ۴ — رابط rc برای کنترل از راه‌دور

  • راه‌اندازی با کانال کنترل: cvlc --extraintf rc --rc-host 127.0.0.1:4212 movie.mkv
  • اتصال از ترمینال دیگر: telnet 127.0.0.1 4212 (لینوکس/macOS) یا استفاده از کلاینت telnet در ویندوز.
  • دستورها: 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 همان باینری است اما هیچ رابط گرافیکی بارگذاری نمی‌کند — روی همه پلتفرم‌ها وجود دارد اما در برخی بسته‌های لینوکس یک بسته‌بندی (wrapper) است. در ویندوز با افزودن --intf dummy به vlc.exe همان نتیجه حاصل می‌شود.
آیا VLC می‌تواند دوربین من را روی یک صفحه وب جریان‌سازی کند؟
بله — مثال جریان‌سازی دستگاه در مرحله ۲ جریان HTTP ارائه می‌دهد؛ می‌توانید آن را با برچسب ویدیوی HTML5 که به همان URL اشاره می‌کند جاسازی کنید (بسته‌بندی TS در بیشتر مرورگرها قابل‌پخش است).
چرا تبدیل خط فرمان از رابط گرافیکی کندتر است؟
کندتر نیست — هر دو از همان رمزگذار نرم‌افزاری استفاده می‌کنند و رابط گرافیکی فقط دوستانه‌تر به‌نظر می‌رسد. برای سرعت، از ffmpeg با رمزگذار GPU استفاده کنید.
چگونه تمام گزینه‌های خط فرمان VLC را پیدا کنم؟
اجرا کنید cvlc --longhelp (یا --help --help-verbose) و آن را به فایل هدایت کنید: cvlc --longhelp > vlc-help.txt. گزینه‌های هر ماژول زیر بخش "Stream output" فهرست شده‌اند.