VLC のコマンドライン:cvlc、ストリーミング、自動化

上級 最終更新: 対象環境: Windows / macOS / Linux · VLC 3.0.x

GUI の裏側で、VLC は本格的なコマンドラインのメディアエンジンです。ヘッドレスのバイナリ cvlc(または vlc --intf dummy)を使えば、再生のスクリプト化、ストリーミングサーバーの実行、バッチ変換、そしてテキストインターフェースで実行中のインスタンスを制御できます。サーバーや NAS でメディアを管理するなら、VLC を解き放つこのガイドです。

手順 1 — 端末からの基本再生

  1. Linux / macOS では cvlc は VLC と共にインストールされます。Windows では以下の --intf フラグ付きでフルパスを使用: "C:\Program Files\VideoLAN\VLC\vlc.exe"。

    バイナリが利用可能です。

  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 コマンドで一括変換する

  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)または Windows で 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 は GUI インターフェースを読み込まない同じバイナリです — すべてのプラットフォームにありますが、一部の Linux パッケージではラッパーです。Windows では同じ効果を得るため vlc.exe 呼び出しに --intf dummy を追加してください。
VLC でウェブカメラをウェブページにストリーミングできますか?
はい — 手順 2 のデバイスストリーム例は HTTP ストリームを提供し、URL を指す HTML5 の video タグ(TS 多重化はほとんどのブラウザーで動作)で埋め込めます。
CLI 変換が GUI より遅いのはなぜですか?
そうではありません — 両方とも同じソフトウェアエンコーダーを使います。GUI は単に見た目が親切なだけです。速度が重要なら GPU エンコーダー付きの ffmpeg をお使いください。
すべての VLC CLI オプションはどうやって見つけますか?
cvlc --longhelp(または --help --help-verbose)を実行しファイルへパイプ: cvlc --longhelp > vlc-help.txt。「Stream output」セクション配下にモジュールごとのオプションが列挙されます。