Matroska(MKV)で行こう。

Matroskaってなんだろう?皆さんはAVIという映像ファイルは知ってるでしょう。これは、最近の出回ってるものではDivXやXviDなどの圧縮コーデックでできた映像部分とmp3やoggなどで圧縮された音声部分で出来ています。これは映像1つ音声1つでそれ以上の機能はありません。で、最近のDVDソフトのようにチャプタや音声多重、字幕切り替えはできないのかという要望に応えて、出てきたコンテナ(入れ物)のようです。このような機能を持ったものにOGMというのもありますが、こっちはその欠点などを改良したものだと言えるようです。

目次

  • MKVファイルの再生
  • MKVファイルの作成
  • MKVファイルの分離
  • チャプターを付ける
  • 字幕ファイルを作る
  • MP4コンテナで字幕や複数音声を入れたファイルを作成する
  • MKVファイルの再生

    【お勧め】KMPlayer:もうMKV再生目的ならこのプレーヤで十分です。すでにあらゆるコーデックが内蔵されているので、煩わしさがないですね。複数音声切り替え、複数字幕切り替え、チャプタに対応して、ここでの標準再生環境である[Media Player Classic + Matroska Pack + 再生に必要なコーデック]と同等の機能を有しています。

    Matroska Pack Full
    これを入れなくても最新Media Player ClassicでMKVファイルは再生可能のようですが、字幕の表示とか、MKVファイルの作成には必要になるので入れてください。

    MKV (Matroska Video) Unofficial Playback Pack for Windows Lazy Man's MKV
    上の
    MKVパックはいろいろと環境によっては不具合がでる可能性があるので、こっちの必要最低限な方がいいかもしれません。

    Media Player Classic
    ここのmpc2kxpxxxx_jp.zip(WinXP,2000用)かmpc98mexxxx_jp.zip(WinMe,98用)を落としてください。日本語化されたものです。

    で、どっかで入手した字幕付のファイルを再生するとタスクトレイ(右下)にDirectVobSubの矢印アイコンが現れ、字幕が表示されると思います。ここで文字化けする人は、さっきの矢印アイコンをダブルクリックすると設定窓がでますので「Main」タブの「Text Settings」のボタンを押して、「Font」のボタンを押して「フォント名:MS Pゴシック、書体の種類:日本語」などとしてOKしてください。

    ※ただし、MKVファイルの再生には普通のAVIと比べるとPCパワーを食います。それなりの環境が必要でしょう。とりあえず、CPUはGHzクラスが必要になると思われます。実は筆者のPCは1Ghz以下なので再生がカクカクします(笑)。なんでこんなページ書いてるのか(爆笑)。

    下のような再生になれば成功です。

    あと、ShellExtension(MatroskaPropvx.x.exe)を入れると下のようにエクプローラでMKVファイルにマウスポインタを置いたときにファイル情報が表示されて便利ですよ。

    他のMKVファイルプレーヤ

    GOM Player:韓国製のソフトですが最新のバージョンでは日本語メニューにできます。独自のメディアファイルのコーデックを内蔵してるせいか他のプレーヤよりもPCパワーを必要としません。Media Player Classicと比べるとMKVのチャプター機能が可能になっていないようです。この点を除けばMKVの複数音声選択、複数字幕選択及び表示は実現されています。

    VLC media player:多くのOS上で使えるプレーヤでMPEG-2ファイルやDVD-Videoはコーデックなしで再生可能なようです。字幕表示も可能なようです。「設定」>「Video」>「Subtitles/OSD」>「字幕フィルターモジュール」のところの「Freetype2 font renderer」をチェックして、その下の「Text renderer」の「フォント」の部分に使うフォントのパス名を指定します。MSゴシックなら「C:\WINDOWS\Fonts\MSGothic.ttc」と直接タイプします。フォントファイル名はエクスプローラを詳細表示するとわかります。チャプター機能も使えますね。複数音声選択にも対応しているようです。動作は軽いです。最新版のWindows用では日本語メニューが使えます。


    MKVファイルの作成

    MKVtoolnix
    mmg.exeを実行すると、mkvmerge GUIという窓が立ち上がります。MKVファイルの作成はこれを使って行います。

    [Input files:]のリストボックスのところに映像ファイル、音声ファイル、字幕ファイルなどをD&Dでもいいですし、[add]ボタンをクリックして追加してください。複数音声・字幕がある場合は[Track name]のところで名前を付けてください。例えば[Original], [Karaoke]とかね。日本語名は使えないようです。[Languege]の部分は音声・字幕成分の言語別に合わせるといいでしょう。用意ができたら[Start muxing]をクリックします。


    MKVファイルの分離

    どうやら、MKVファイル分離GUIソフトが入手しづらいようなのでコマンドプロンプトでMKVtoolnixに含まれるmkvextract.exeを動かし分離する方法を書きます。

    まず、mkvmerge GUIにMKVファイルを読み込ませ、各成分を確認します。「Input」タブの「Tracks」にあるリストがそれです。上からoutput.avi, output.mp3, output.srtとして説明しますと

    >mkvextract tracks source.mkv 1:output.avi 2:output.mp3 3:output.srt

    とコマンドプロンプトにタイプします。それでEnterして分離します。ここでは、mkvextract.exe, source.mkvが同じフォルダにあるとします。分離された各成分ファイルは同じフォルダに出力されています。

    例えば、字幕の間違いを修正し再度mkvmerge GUIでMKVファイルに仕上げたり、音声部分を入れ替えたり、字幕ファイルを追加したりといろいろできますね。もちろんMKVファイルは嫌だという人は分離した映像ファイルと音声ファイルを他の映像編集ソフトでAVIファイルにすることなんてことも可能です。


    チャプターを付ける

    MKVではDVD-Videoのようなチャプター機能も使えます。

    テキストエディタで下のようなものをタイプします。

    --- hoge.txt ---

    CHAPTER01=00:00:00.000 #開始時間です(時:分:秒.1000分の1秒)
    CHAPTER01NAME=ビデオ1 #チャプター名です(日本語もOKのようです)
    CHAPTER02=00:06:33.833
    CHAPTER02NAME=ビデオ2
    CHAPTER03=00:12:56.000
    CHAPTER03NAME=ビデオ3
    CHAPTER04=00:17:22.000
    CHAPTER04NAME=ビデオ4

    のような書式でhoge.txtなどと名前を付けて保存します。

    チャプターを打つ時間ですが、元になる映像ファイルを再生して、いい位置で止めてその時間を読んで打ってください。秒単位まででいいでしょう。

    そうしますと、mkvmerge GUIを開き「Global」タブのところで「Chapters」の「Chapter file:」の欄に上で作ったTXTファイルを指定して「Language:」には「jpn (Japanese)」、「Charset:」には「SHIFT-JIS」を選び「Start muxing」でMKVファイルをつくりましょう。


    字幕ファイルを作る

    いろいろ字幕作成ソフトはありますが、Subtitle Workshopが使いやすいでしょう。

    例えば音楽PV映像に歌詞字幕をつける場合、歌詞をテキストでおこし、そのTXTファイルをこのソフトにD&Dして映像ファイルもD&Dします。あとは映像を再生されて音声のタイミングで時間を入れていくだけです。できたらSRTファイルなどで保存しMKVファイルに仕上げるという具合です。


    MP4コンテナで字幕や複数音声を入れたファイルを作成する

    ここでは映像成分はH.264、音声成分はaac、字幕成分はsrtのものでmp4ファイルを作成する過程を考察します。

    使用ソフト

    AviUtl

    x264gui.auo :AviUtl拡張x264出力(GUI) Plug-in
    (x264xxxxx..rarを解凍し、auoフォルダ内のx264gui.auo, x264gui.iniをAviUtlのPlug-inフォルダに入れます。同梱のreadme.txtに書いてるようにWindows 2000/XPでは必須コンポーネントをインストールしてください。Windows Vistaでは動作未確認です。)

    neroAacEnc.exe :このページの下の「Agree」をクリックしてダウンロードしてください。解凍したら、分かりやすいようにAviUtlのPlug-inフォルダに入れてください。

    MP4Box :js32.dllを必要とするので同じフォルダにおいてください。同梱されています。

    Yamb :MP4BoxのGUIですね。ここでは字幕srtファイルをMuxするのに使います。

    これでMP4ファイルを作成する準備ができました。エンコード元のファイルをAviUtlに読ませて、「ファイル」>「プラグイン出力」>「拡張x264出力(GUI)」とクリックしていき、「ビデオ圧縮」をクリックすると窓が開きますので、音声のエンコーダ:NeroAACエンコーダでneroAacEnc.exeの指定をしてください。

    次に映像、音声のビットレートの指定ですが、映像:シングルパス、品質:21、音声:AAC-LC 128kbpsあたりでエンコードしてあとは好みで調整してください。指定したらOKして次の窓でファイル名を指定し「保存」をクリックしてエンコード開始です。

    映像ファイルができたら、字幕ファイルをMP4コンテナに入れましょう。Yambを起動したら、「Settings」の「Advanced Setting for Yamb....」でMP4Boxの「Location」「Temp Dir」を指定してください。Settingが終わったら、最初の窓の「Creation」の「Click to create an MP4...」で、上で作ったMP4ファイルと字幕ファイルを読み込ませます。「Next」をクリックして字幕入りMP4ファイルにMuxします。