Windows Media Player で動画.mp4 を再生する方法

「ffdshow」と「MP4 Splitter」をインストールする。

「ffdshow」導入手順

「ffdshow」とは何か

動画・音声フォーマットを圧縮・伸張するための DirectShow フィルターと VFW コーデック。 DirectShow フィルターとは、圧縮されたファイルを伸張するプログラムのこと。

ffdshow をインストールすると DirectShow・VFW に対応したメディアプレーヤーで ffdshow の機能(今回の場合 mp4 のデコード)が使用できるようになる。

「ffdshow」ダウンロード場所

フリーソフトなので、名前を検索エンジンで探せば見つかると思う。 k本的に無料ソフト・フリーソフト ffdshowから入手。

インストール方法

日本語対応のインストーラが用意されているので、インストーラの指示に従ってインストールするだけ。

コンポーネント・デコードするフォーマットの選択は必要に応じて決める。 コンポーネントは DirectShow フィルターと VFW インターフェースだけで良し。 (スタートメニューにショートカットメニューを追加しておけば) デコードするフォーマットはインストール後も簡単に変更可能。

「MP4 Splitter」導入手順

「MP4 Splitter」とは何か

「mp4」形式の動画ファイルを再生するために必要な Directshow スプリッター。 Directshow スプリッターとは、動画を「映像」と「音声」に分離するプログラムのこと。 (動画は、再生時に「映像」と「音声」に分けられる)

Windows がデフォルトで分離できない動画フォーマット(FLV / MP4 等)のファイルを扱う際には、 特殊な Directshow スプリッターを導入する必要がある。

「MP4 Splitter」ダウンロード場所

フリーソフトなので、名前を検索エンジンで探せば見つかると思う。 k本的に無料ソフト・フリーソフト MP4 Splitterから入手。 XP・Vista は NT 系なので「win9x」と付かない方をダウンロード。

余談)Vista で「win9x」の方をインストールしたところ、 メディアプレイヤーで mp4 ファイルを開こうとしたら「メモリが足りません」といったエラーメッセージが表示された。

インストール方法
  1. 解凍
  2. 「MP4Splitter.ax」をシステムフォルダ(デフォルトで「system32」という名前のフォルダ直下)に移動
  3. XP の場合「スタート」 → 「ファイル名を指定して実行」 → 「regsvr32 MP4Splitter.ax」と入力、「OK」ボタンを押す
  4. 「MP4Splitter.ax の DllRegisterServer は成功しました。」というダイアログが表示されればインストール完了
  5. ffdshow のコーデック設定画面で、「Other MPEG4」を「libavcodec」に変更する

Vista の場合、3. の手順を「regsvr32 C:\WINDOWS\system32\MP4Splitter.ax」と書いたテキストファイルの拡張子を.batで保存、 そのファイルを右クリック → 「管理者として実行」にすればよし。

余談)Vista で「スタート」 → 検索の開始ボックスに「regsvr32 MP4Splitter.ax」と入力 → 表示されたプログラムの「regsvr32 MP4Splitter.ax」を右クリックして「管理者として実行」してみても駄目だった。

補足情報

「.bat」拡張子のファイルはバッチファイルと呼ばれるもので、 コマンドプロンプトで実行できる命令を「1命令1行毎」(for 文等複数行の命令は複数行で記述)に記述する。 バッチファイルを実行すれば、コマンドプロンプトでバッチファイル内に記述した命令を実行した場合と同じ処理が行われる。 中身はテキストなので、メモ帳で開けば、書かれている命令文を確認できる。

System32 フォルダは、OS の動作を制御するファイルが入っている場所。

DirectShow とは、Microsoft 社が提供する DirectX に含まれていた (2005 年 4 月に DirectX から除かれ、Windows SDK に含まれるようになった) 大容量のマルチメディアデータをストリーミング再生可能にする API のこと。

DirectX とは、動画・音声の再生制御(ハードウェアの制御)をアプリケーションソフトから“直接に”行えるようにする API 群。

VFW(Video for Windows)とは、Microsoft 社が提供する動画再生用 API のこと。(DirectShow の先達)

Windows SDK とは、Windows 用アプリケーションを作成する際に利用すると便利なプログラムやら文書やらの集まりのこと。

API(Application Program Interface)とは、アプリケーションから OS やミドルウェアの機能を利用する際の橋渡しを行う機能の集まり。 よく利用される機能を予めまとめておくことで、アプリケーション製作者のプログラミング作業が楽になる利点がある。 ファイル制御や画像処理の関数が代表例。

regsvr32 コマンドは COM コンポーネントをシステムに登録するために使う、Windows 付属のコンソールプログラム。 指定されたコンポーネント内の DllRegisterServer 関数を呼び出して、コンポーネントをシステムに登録する。 オプションに「-u」を付ければ(DllUnRegisterServer 関数を呼び出して)アンインストール。

COM とは Component Object Model の略。 Microsoft 社が提唱する、コンポーネント化されたプログラムを作成・利用するための基盤となる技術仕様。 この仕様に基づいてデータのやりとりができるコンポーネントのことを COM コンポーネントと呼ぶ。

上記文章中のコンポーネントとは、それぞれ特定の機能を持っているが、基本的に単体では使用できず、 他のプログラムと組み合わせて機能を実現・追加するために用いられるもの。(ソフトウェアコンポーネント)

DllRegisterServer(DllUnRegisterServer)関数とは、COM コンポーネントをシステムに登録(システムから解除)する命令群。 命令“群”といっても、10行ほどの命令文で作成できるもの。