<< Back

コマンドプロンプト画面で「〜wmcmd.vbs が見つかりません」と表示される

WMエンコーダのフォルダのパスはレジストリから取得していますが、そのパスが取得できていないためエラーが出ています。
パスはWMエンコーダのインストール時にレジストリに書き込まれますが、何らかの理由でその情報が消えたと思われます。

解決するにはWMエンコーダを再インストールするか、レジストリに直接パスを書き込みます。

HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows Media¥Encoder

上記の位置の「InstallDir」に文字列でフォルダのパスを書き込む。
[例] C:¥Program Files¥Windows Media Components¥Encoder

WMV9 のファイルが再生できない

Windows Media Player 7.1 以上がインストールされていないと、再生できません。

MPEG2 のファイルをエンコードするとエラーが発生したり、コマ落ちのファイルが出来る

インストールされている MPEG2 デコーダによっては、WME9 と相性が悪く、エンコードがうまくいかない場合があります。

【問題の起こるデコーダ】
・Inter Video Video Decoder (WinDVD)
・bitcast VIDEO/SP Decoder (bitcast.TV)
・Cyberlink VIDEO/SP Decoder (PowerDVD)
など。

複数の MPEG2 デコーダがインストールされていて、問題の起こらないデコーダがインストールされていれば、対処法はあります。
まずは「DirectShow Filter Tool」というツールをダウンロードしてください。
このソフトを使って、問題のあるデコーダの優先度を低くして、問題の起こらないデコーダを優先的に使用されるように設定します。

(1) [フィルタの選択]から[MPEG-2 Video Decoder]を選び、インストールされているデコーダを表示します。
(2) 問題の起こるデコーダ以外のデコーダを選択し、右クリックメニューで[メリット値の変更]を選びます。
(3) 「0x00800000」と入力し、[OK]を押します。
※すでにメリット値が「0x00800000」と設定されているデコーダがあれば、「0x007FFFFF」程度の値に下げておくこと。

品質ベースで%指定時、値を少しだけ変えてもファイルサイズが変わらない

WME では、ある一定の値ごとに品質が変わります。

1、4、8、11、15、18、22、25、29、33、36、40、43、47、50、54、58、61、65、68、72、75、79、83、86、90、93、97、100

この値以外の場合、例えば 92 と指定したならば 90 を指定したのと同じ結果になります。

AzWM9SF で音声コーデックに MP3 を指定できないか

できません。
これに関しては Windows Media Encoder を使うしかありません。

WME で音声コーデックに WMA 以外の ACM コーデックを指定するにはどうしたらよいか

※ コーデックによっては、エンコードできなかったり、エンコードできても再生ができなかったりします。

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

まずは下のキーを探してください。検索を使えば早いです。
HKEY_CURRENT_USER¥Software¥Microsoft¥ActiveMovie¥devenum¥{33D9A761-90C8-11D0-BD43-00A0C911CE86}



← これが WME で使用できる ACM コーデックの一覧です。

↑ MP3 を追加したいならば、「85MPEG Layer-3」 のキーを選択しデータを表示します。
この 「AcmId」 のデータ値(ここでは 85。0x00000055 ではなく、横の 85 です)が必要となるので覚えておいてください。
他のコーデックも追加したいならばそれぞれの ACMID をチェックしておきます。

次に下のキーを探してください。
HKEY_CLASSES_ROOT¥Windows Media¥WMSDK¥AudioEncode



ここで右クリック→ 「新規」 → 「文字列値」 で新しくデータを作成し、「名前」 をさきほどチェックした ACMID の値に変更します。
ここでは、MP3 の ACMID 「85」 を追加しました。
これで WME で音声コーデックに指定した ACM を使用できるようになります。

※ MP3 で、56kbps までしか指定できない場合
通常インストールされている IIS MP3 Codec は低ビットレートしか指定できません。
他の MP3 コーデックを使用してください。
ただし、LAME MP3 ACM では正常にエンコードできない場合があります。

パフォーマンスによってどれくらいエンコード時間に差が出るのか知りたい

【ソース】 1分29秒のAVIファイル (Huffyuv、320×240、23.976fps)
【CPU】 AMD 800MHz
【メモリ】 192MB
【OS】 WindowsXP

【ビデオ】 1Pass-VBR WMV9 品質90% 23.976fps キーフレーム10秒
【オーディオ】 1Pass-CBR 96kbps 44kHz stereo


パフォーマンスエンコード時間ファイルサイズ
095秒 (1分35秒)9.57MB
20122秒 (2分2秒)9.17MB
40272秒 (4分32秒)8.58MB
60272秒 (4分32秒)8.58MB
80251秒 (4分11秒)8.12MB
100429秒 (7分9秒)7.96MB

※ AzWM9SF では、パフォーマンスの左端が 0 で、右端が 100 となります。


<画質>
画質はどれも見た目には変わりませんでした。

<エンコード時間>
40 と 60 は同じと見てよいと思います。
なぜかうちの環境では 40・60 よりも 80 の方が時間が短くなるという不思議な結果になりました。
100 になるとだいぶ時間がかかっています。

<ファイルサイズ>
品質ベースの 1Pass-VBR では、特にファイルサイズに違いが出てきます。
やはり 100 が一番ファイルサイズが小さくなります。

<結論>
時間をかけてもできるだけファイルサイズを小さく、高画質にしたいなら 100。
100 ではさすがに時間がかかるが、一歩譲って画質とファイルサイズは重視したいなら 80。
40〜80 は時間的にはそんなに変わらないので、40・60 にするよりは 80 にした方が良いかもしれません。
ファイルサイズは大きくなってもよいから時間を短く済ませたい場合は 0 か 20 を。
という感じでしょうか。

※ すべての環境で同じような結果になるとは限りませんので、参考程度に。