VLCメディアプレーヤー

VLCメディアプレーヤーは、クロスプラットフォームで動作するメディアプレーヤーである。非常に多くのメディアファイル用コーデックが内蔵されており、動画ファイルや音声ファイルなど多くのメディアファイルを再生、表示することができる。GPL下で公開されているフリーソフトウェアである。

1. 概要
-----

VLCメディアプレーヤーは、フランスの名門校であるエコール・セントラル・パリの学生らによって、VideoLANプロジェクトの一部として開発された。「VLC」とは、「Video LAN Client」の頭文字・略称である。

VLCメディアプレーヤーは、コーデックを内蔵し、DVD-Video、ビデオCDの他、さまざまなストリーミングプロトコルやファイルフォーマットをサポートしている。

広帯域ネットワーク上のIPv4ないしIPv6におけるユニキャスト、マルチキャストのストリームのサーバとしても使われる。

内蔵されているのは、FFmpegプロジェクトのlibavcodecコーデックライブラリである。暗号化されたDVD-Videoの再生を扱うためには、libdvdcssDVD暗号復文ライブラリを用いている。

2. 特徴
-----

VLCメディアプレーヤーの大きな特徴は、対応するコーデックの数が多いことである。

コーデックとは、データの圧縮・伸張を行ったり、符号化方式を使ってデータのエンコードと デコードを双方向で行ったりするプログラムである。

現在、世界のメディアプレイヤーの中で、VLCメディアプレーヤーの対応するコーデックの数の多さは、群を抜いている。

コーデックは「VLCメディアプレーヤー」の中に内蔵されており、別途入手する必要はない。

また、VLCメディアプレーヤーはネットワーク上のサーバのファイルを再生するためのクライアントソフトとして開発されたため、ブラウザや端末上からでも比較的簡単にストリーミング再生などを行うことができる。ポッドキャストにも対応している。

上記のクライアントのような使い方をしない大半のユーザはQtを使用したシンプルなGUIから操作する。 VLCに対して設定できる項目は非常に多い。そのため、画面をシンプルにみせるようにした設定画面が用意されている。

QtのGUIはスキンと呼ばれるもので見た目を自在に変更できる。スキンはVLCの公式ページなどでダウンロードできる。

VLCメディアプレーヤーはポータブルアプリケーションとしても使うこともできる。

2.1. 脆弱性
--------

VLCメディアプレーヤーは今までに[1]が、これはセキュアプログラミングに対する関心が低かった頃に開発されたことに関係すると思われる。

VLCメディアプレーヤーのソースコードを見るかぎり、「バージョン3.0.16」においても根本的な解決がなされていない。問題は以下の通りである。

sscanf, strcpyなど、バッファオーバーランを起こし得るとして現在では使用が避けられる、安全でない文字列操作関数がVLCに多数使われている。これらの関数はヌル終端文字列を処理することを前提としており、もし文字列が０で終わらないよう細工された長大な動画があったとすると、CPUが例外処理を起こすまで文字列を操作し続けることになる。 
対応OSをWindows専用と限定するのであればsscanf_sなど安全を考慮した代替関数があるが、VLCはクロスプラットフォーム故にPOSIX関数からの置き換えは行われていない。よって、VLCの使用にあたってはリスクが伴う点に留意すべきである。

2022年5月9日、PC Matic個人版の日本人利用者が、PC Maticと他社セキュリティソフトの両方がインストールされた状態の端末において、何者かによって「VLC media player」の深刻な脆弱性を悪用され、Windowsの「VNC」が勝手にインストールされ、そして、自分の端末を何者かによって遠隔操作されるという事案が発生した。

その時、日本人利用者はその遠隔操作に気がつき、画面上で勝手にエクスプローラーを操作されることに違和感を感じて、即座にイーサネットケーブルを抜いて、事なきを得たという。

4月5日にも、VLC media playerは「Cicada 」によって、そのVLCの深刻な脆弱性を悪用された。

「Cicada」とは、中国政府の関与が指摘されているサイバー犯罪集団である。日本政府は2018年12月に外務報道官談話を発表し、日本が中国を拠点とする「Cicada」から攻撃を受けていることを明かし、「Cicada」の攻撃を厳しく非難した。

「Cicada」によるVLCを使った攻撃を報告したのはSymantecの研究グループで、その攻撃は2021年から行われた可能性があるという。

その報告によれば、「Cicada」の攻撃の手口は、まず

正規のVLCのエクスポート機能を悪用して、標的のPCでカスタムローダーをひそかに起動する。
その次に、一般に広く利用されているWindowsの「VNC」ツールを使ってリモート制御を確立していく。
その後、検出の回避やシステムのスキャン、悪意のある他のツールのダウンロード、外部の C2サーバとの通信の確立などを行う。
そして、自分たちの標的とするシステムを自分たちの完全な制御下に置いていく。というものである。

「Cicada」は、以前は日本に関連した企業を中心に標的にして攻撃していたが、最近のVLCを用いた攻撃の被害者は、アメリカ、カナダ、香港、トルコ、イスラエル、インド、モンテネグロ、イタリア、などの政府機関、司法組織、宗教組織、非政府組織にも広がっている。また、攻撃する時は、一部の被害者のネットワークに9か月という長い時間をかけて侵入しているという。

3. トラブル
-------

3.1. インドでブロック
-------------

VLCの公式ウェブサイトがブロックされ、インド政府に法的通知を送ったことが報じられた。

3.2. VLCになりすますマルウェア配布ページの削除をGoogleが拒否
-------------------------------------

なりすましサイトの除外を拒否したと告発。

4. 他のプログラムからVLCを使う
------------------

他のプログラムからVLCの機能にアクセスするためのAPIが用意されている。

4.1. API
--------

VLCのコーデックはCで書かれたlibvlcというプログラムに内蔵されており、C・C++・C#からアクセスできる。JavaScript、Python、Javaなどを使ってもVLCにアクセスできる。

4.2. ブラウザ プラグイン
---------------

Windows、LinuxなどのプラットフォームでNPAPIプラグインを提供する。これはQuickTime、Windows Media、MP3、Oggなどが埋め込まれたウェブコンテンツをAppleやマイクロソフトのツールに依存せず再生するためで、ブラウザではFirefoxを含むMozillaアプリケーション、Safari、Opera、Google Chrome、Netscapeに対応している。Adobe Flashも見ることができる。Internet Explorerにもバージョン0.8.2以降はActiveXプラグインによって、同様の機能を提供している。

5. 主な機能
-------

5.1. 再生機能
---------

音楽ファイルの再生
動画ファイルの再生

6. CD, DVD, BDの再生
-----------------

早送り、巻き戻しなどの操作
加速再生、減速再生
ステレオ、モノラル再生、PANの設定
一定区間の繰り返し再生
イコライザ
再生位置ブックマーク
メディア情報の表示
ポッドキャストの再生
サーバーからのストリーミング再生

6.1. GUI
--------

ビジュアライザ
Qtインターフェイスの改造、スキンの適用
マウスジェスチャ
OSDによる表示
キーボードショートカット

6.2. 動画
-------

動画ファイルの再生
字幕再生
スナップショットの撮影
フルスクリーン再生
ズーム、縦横比率の変更
スケール、クロップ

6.3. その他
--------

BD-Jのサポート
プレイリストの読み込み、書き出し
メディアコーデックの相互変換
プラグインの追加と削除

7. 再生サポート
---------

7.1. 入力メディア
-----------

ディスクDVD-Video、ビデオCD、スーパービデオCD 、音楽CD  3.0以降では、AACSがかかっていないHD DVDに限りその中の.evoファイルを再生できる 。 2.0以降では、AACSがかかっていないBlu-ray Discを再生できる。

ネットワークプロトコルHTTP、FTP、MMSdate=2022年8月}}、YouTubeなど

その他DVB、ビデオキャプチャーデバイス 

7.2. コンテナ形式
-----------

AVI、ASF、MP4、MOV、MPEG-2システム、Ogg、OGM、Matroska、WAV、FLVなど

7.3. ビデオコーデック
-------------

MPEG-1/2、DivX 、MPEG-4 ASP、Xvid、3ivX D4、H.261、H.263、H.263i、H.264 、Cinepak、Theora、Dirac 、Motion JPEG 、WMV 1/2、 WMV 3、WMV9、VC-1、Sorenson 1/3、DV、On2 、Indeo Video v3、RealVideo 

7.4. オーディオコーデック
---------------

MPEG-1/2 Layer 1、MP2、MP3、MPEG-4 AAC part3、Ogg Vorbis、AC-3 、E-AC-3、MLP/TrueHD、DTS、WMA 、FLAC、ALAC、Speex、Musepack 、ATRAC 3、WavPack、Mod、TrueAudio、APE 、Real Audio、Alaw/μlaw、AMR 、MIDI、LPCM、ADPCM、QCELP、DV Audio、QDM2 、MACE

7.5. 字幕コーデック
------------

DVD字幕、テキストファイル 、SubViewer、SSA1-5、SAMI、VPlayer)、クローズドキャプション、Vobsub、Universal Subtitle Format 、SVCD字幕 、DVB字幕、OGM、CMML、OggKate、ID3タグ、APEv2、Vorbis comment

8. 対応OS
-------

以下のOSに対応している。

Windows
Windows 
UWPアプリ 
Windows 10 パソコン
Windows 10 Mobile
Surface Hub
HoloLens
Xbox One
Xbox Series X/S
Windows Phone 
Windows 8 MobileApple
MacOS
Intel プロセッサ
Appleシリコン プロセッサ
App Store
iPhone/iPod touch: iOS 9.0以降
iPad: iPadOS 9.0以降
Apple TV: tvOS 11.0以降Linux
Debian GNU/Linux
Ubuntu 16.04 LTS以降 
Mint
openSUSE Leap 15.1以降
Gentoo Linux
Fedora 22以降
Arch Linux
Slackware Linux 13.37以降
Red Hat Enterprise Linux / CentOS / Scientific Linux その他
Android
APKファイル
Google Playストア
Amazon Fireストア 
ChromeOS 
FreeBSD
NetBSD
OpenBSD
Solaris
QNX
OS/2

9. 脚注
-----

10. 関連項目
--------

ソフトウェア特許
Media Player Classic
オープンソースのメディアプレーヤー

11. 外部リンク
---------

[2] PortableApps.com Windows用
[3] - マイナビニュース
[4] - Engadget 日本版
[5] - gigazine
[6] - gigazine
[7] - マイナビニュース
[8] - gigazine