CGI SQUARE > StoreTube >

ffdshow の一部のバージョン・ビルドの不具合と修正方法

ffdshow の一部のバージョン・ビルドに、「インストール・アンインストールを行うとレジストリのサウンド設定の一部(wave、midi の mapper 設定)が消失する」問題があるようで、システムサウンド等が再生できなくなるようです。解決方法を紹介します。この件に関して asumi さんから情報をいただきました。ありがとうございます。

問題の症状は、Windows Media Player 等で wav や mp3 ファイル、CD の再生はできるがシステムサウンドの再生や Flash Player (YouTube サイトの動画や FLVP)で音の再生ができないというものです(これ以外の症状の場合もあるかもしれません)。同様の症状であるなら ffdshow 以外が原因の場合(XviD 等)でもこの方法で直ることがあるようです。

Windows で音が出ないのを直す方法」、「Flash/FLV で音が出ないのを直す方法」もあります。

■ 音が出るかの確認方法

「スタート」ボタン−「コントロール パネル」−「サウンドとオーディオ デバイスのプロパティ」−「サウンド」を開き、「プログラム イベント」の中の適当な音(「Windows の起動」あたり)を再生することで、Windows のシステムサウンド(wavファイル)を再生できます。

ここで、再生ボタンが灰色になって無効になっている場合、この問題の症状に該当しますので ■修正方法1 または 2 にお進みください。

■ 修正方法1: レジストリを修正

レジストリエディタ(regedit)でレジストリ内の問題箇所を修正します。

レジストリは Windows 自体の動作を左右する重要な部分であるため、元の設定をメモした上で作業を行います。Windows XP を使用している場合は、事前に「システムの復元ポイント」を作成しておくと「システムの復元」で後から作業前の状態に戻せます。

レジストリエディタの起動は、「スタート」ボタン−「ファイル名を指定して実行」で「regedit」と入力します。

レジストリエディタでは画面左側にツリー状に項目が並んでいるので、次の2箇所に合計3つのエントリを追加します(レジストリエディタ上で右クリックすればエントリを新規作成できます)。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc」キーを開き、その中に次のエントリを作成し値を設定します。
    エントリ名「msacm32.drv」、種類「文字列値(REG_SZ)」、値「msacm32.drv
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32」キーを開き、その中に次の2つのエントリを作成し値を設定します。
    エントリ名「wavemapper」、種類「文字列値(REG_SZ)」、値「msacm32.drv
    エントリ名「midimapper」、種類「文字列値(REG_SZ)」、値「midimap.dll

Windows 98, Me の場合は、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT」というキーがないかもしれません(未確認)。その場合、他のキーに上記エントリーを作る必要があると思いますが未確認です。

(インストールしたての Windows 2000 (音は出ます)で確認したところ、上の「1」に該当するエントリはなく、「オーディオ CODECのプロパティ」で「プロパティ」を表示すると「msacm32.drv」を含む一連のエントリが自動的に作成されました。なので「1」のエントリは必須ではないのかもしれません。)

これで音が出るようになれば修正は完了です。

参考:

■ 修正方法2: 「システムの復元」を行う

Windows XP には「システムの復元」という機能があり、正常に音が出ていた日の状態に Windows を戻すことができます。音が出なくなったのが最近なら、この方法が使えるかと思います。

システムの復元では、「マイ キュメント」内のファイルやユーザが作成したファイルは消えない設計になっているようです。が、システムの設定を変更する大きな作業ですので、万一に備え大事なファイルは他のメディア(他のハードディスクやCD-R, FD等)にバックアップしてから実行を。

「システムの復元」の方法は、

等のページを参考に、

「スタート」ボタン−「すべてのプログラム」−「アクセサリ」−「システム」−「システムの復元」を開き、「コンピュータを以前の状態に復元する」を選び、次の画面でどの日(ffdshow をインストールした前日あたり)の状態に戻すかを選択します。
復元する日は、再度「システムの復元」を実行すれば後から再選択可能だと思います。