MPCが使用できる動画再生システムはDirectShowだけではない。 RealやQuickTime、そしてShockwaveの再生システムを使った再生もできる。 また、6.4.5.7以降、各メディアファイル毎にその再生設定を選択できるようになっている。
6.4.5.7のRelease Noteより、拙訳。
オプションのファイル形式のカテゴリ毎に、それを開くAPIを選択できるようにした。 選択項目はDirectShow、RealMedia、QuickTime、Shockwave。 RealMediaファイルやある種の古い.movファイルを、本来のライブラリを使わずにDirectShow Filterで読み込みたい場合に使える。
再生方法の選択は Options > Player > Formats のここで行う。
この部分には項目名も無く、ここを示したい時、その表現に困ることがあったが、 上のGabestの説明を考えると「APIセレクタ」と呼ぶのが良いような気がする。
というか、今後(2004-10-12以降)、当サイトでは(別のいい表現が見つかるor思いつくまでは)そう呼ぶことにします。 このサイト内で突然「APIセレクタ」という言葉に出くわしたら、この項を思い出してやってください。
拡張子の関連付けをWMPから外すと、Webページによっては埋め込み音楽や映像が再生されなくなることがある。 これは、再生プラグイン未指定の場合にIEが参照する「埋め込み再生の関連付け」が同時に消去されたため。 (HTMLタグによってプラグインが指定されているページではこの現象は起きない。)
MPCには埋め込み再生用プラグインが用意されていないので、WMPのものを使う必要がある。 以下の手順で、プラグインの関連付けのみを復元できる。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\EmbedExtnToClsidMappingsのキーを開き、配下のキーごとすべて書き出す。
ちなみに、Gabestには、MPCのWebプラグイン(ActivX Control)を開発する意思はないようだ。 レジストリを弄らなければならなくなるのが嫌らしい。
関連付けするプラグインを変更したい場合、上記キー配下にある該当拡張子のキーの(標準)の値を以下のように変更すればよい。
携帯用動画(.3gp .amc など)は、QuickTimePlayer(またはQuickTime Alternative)をインストールすることでMPCでも再生できるようになる。 ただ、これらを再生するには、DirectShowではなく、直接QuickTimeを呼び出す必要がある。 (WMPその他ほとんどのPlayerで再生不可能なのはこの「直接QTを呼び出す」ことが出来ない為。)
MPCへの拡張子登録が行われていないと、MPCは自動的にDirectShowを使用してしまい、再生に失敗する。 事前に拡張子の登録を行っておくとよい。
MP3が再生できないことがある。 たとえばこのファイル(右クリックからダウンロードして下さい)。 大抵のMP3プレイヤーやWMP9では難なく再生されるが、MPCでは「コーデック又はフィルタがない」旨のエラーメッセージが表示される。
Stream 0
Media Type 0:
--------------------------
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: MEDIASUBTYPE_MPEG1Audio {E436EB87-524F-11CE-9F53-0020AF0BA770}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
Media Type 1:
--------------------------
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
MPCは(デフォルトでは)MP3再生をすべてDirectShowに任せている。 これは、DirectShowフィルタ「MPEG-I Stream Splitter」のMP3パーサの問題。
このMP3パーサには、MP3ファイルに付加されたID3タグによっては、そのMP3を処理できないというバグ(仕様?)がある。 それで、適当なフィルタが存在しないことになり、上記のエラーメッセージが表示される。
対応策としては以下の2つが挙げられる。
ID3タグに問題があるとしても、音楽データ自体が壊れたわけではない。 ID3タグを一旦全消去すれば、MPEG-I Stream Splitterでも処理できるようになる。 ここにあるTidyMP3で修復できる。
ファイルに変更を加えるのが嫌な場合、代替のフィルタを探すことになる。 RaalPlayerは対応できるようなので、MP3をDirectShowではなくRealMediaで再生するよう設定すればよい。 (ちなみに、QuickTimeでは無理だった。)
当然、この問題に対応済みのDSFがあれば、それをインストール(またはOverride)することでも解決する。 DSP-worksのDS-MP3 Source が、対応しているらしい。 ‥が、うちの環境では(正常ファイルの場合でも)まるで動作しなかった。 現在調査中。
2004年12月6日のCVS更新にて、「MPEG Audioソースフィルタ」が内蔵フィルタに追加され、VBRなMP3の時間表示問題とともに、この問題は解決された。
その経緯などについては拙ブログの以下のエントリをどうぞ。
サンプルのリンク先がいつの間にか「Forbidden」されてしまっていたので、コピーを置く。
直リンクはやっぱまずかったかな‥。私の思慮不足でした。 Daniel Cavalcanti氏(Up主)、サーバー管理者さん、そして、 「Forbidden」されてから私が気付くまでの間、このファイルをダウンロードしようとして失敗された読者の方、 申し訳ありませんでした。(とは言っても前2者にはこの謝罪は届かないだろうけど‥。)
「MP3が再生できない。」で述べたとおり、デフォルトの設定では、MPCはMP3ファイルの再生をDirectShowに任せている。 だから、MP3再生に不具合が生じた場合、普通、その原因は既存のMP3フィルタにあることになる。
可変ビットレート(VBR)で作成されたMP3の時間が正しく表示されないのも標準のMP3フィルタが原因。 対応策として、以下の2つを挙げておく。
可音月堂で公開されているmpg123 and MAD DirectShow Filterは、この問題に対応済みのDSF。 (問題なのはMP3パーサなので、「MP3 Parser Filter」のみの導入でもVBR問題自体は解決する。)
DirectShowを使用しないようにすることでも解決する。RealMedia、QuickTime双方ともVBRの時間表示に対応している。
GabestもMP3フィルタを自作する意志はあったようだが‥。↓
2004年12月6日のCVS更新にて、「MPEG Audioソースフィルタ」が内蔵フィルタに追加され、ID3タグによってMP3が再生できなくなる問題とともに、この問題は解決された。
その経緯などについては拙ブログの以下のエントリをどうぞ。
分かっていることをつらつらと書いてみる。
HKEY_CURRENT_USER\SOFTWARE\Gabest\Media Player Classicまた、6.4.7.9以降はこれに加えて
HKEY_LOCAL_MACHINE\SOFTWARE\Gabest\Media Player Classicに、実行ファイルのパスが書き込まれるようになっている。
以下、HKEY_CURRENT_USERにあるキーを「設定キー」、 HKEY_LOCAL_MACHINEの方を「パスキー」と表記する。
[Settings]の一行だけを記入しておけば、ゴミが発生せずにすむ。
以上。ふと、異なる設定のMPCを共存させてみようと思ったので、.ini保存の挙動について調べてみたときのメモ。
メニューの「Add to Favorits...」(「お気に入りに追加」)で追加されるのは現在再生中のファイルで、プレイリストそのものを追加することは出来ない。 プレイリストファイルを追加するには、レジストリ(またはini)を直接編集する必要がある。
レジストリとini、それぞれの記述は以下のような形式になっている。("C:\My Documents\My Music\police.m3u"を「The Police」という名前で登録した場合のもの。)
レジストリ
[HKEY_CURRENT_USER\SOFTWARE\Gabest\Media Player Classic\Favorites\Files] "Name0"="The Police;0;C:\\My Documents\\My Music\\police.m3u"
ini
Name0=The Police;0;C:\My Documents\My Music\police.m3u
「Name0」は、お気に入り内の順序。上から順に0、1、2、‥と数字が増えていく。 設定内容の内、「;」は区切り文字で、各セクションの意味は左から順に以下のとおり。
ダミーのデータをひとつ作って、必要なところを書き換えるのが楽。
フォルダを指定することも可能。(フルパス末尾の「\」は、在っても無くても可。)
他の多くのプレイヤーと同じく、MPCも当然、フォルダ内のファイルを一括再生できる。 フォルダをDrag&Dropする、SendToフォルダにショートカットを置く、レジストリの HKEY_CLASSES_ROOT\Directory\shell 以下にキーを作成する‥etc、 他のプレイヤーと同じ方法がMPCでも使える。
ただ、6.4.6.0以降、他のプレイヤーには無いフォルダの一括再生方法が付け加えられている。
Release Noteに明記されているのだが、意外と知られていない気もするので書いてみた。
MPCについて、ひとりでぼちぼち調べたことなどを書き留めています。 自分なりに確認したつもりですが、間違いもあるかもしれません。実行する場合には自己責任でお願いします‥。 問題等ありましたら、掲示板またはメールにてお知らせください。
HOMEへ