WineのDirectShowにて動画を再生する 2

DirectShowでの動画再生を可能にしたい

以前、Wineで動画を再生できるようにするでWineでも動画が再生できるようにしたのですが、不完全であったのでもう一度解説し直したいと思います。そういえば先日、ついにwine1.8、それに続いてwine1.9がリリースされましたね。フォント周りがだいぶ改善されました(が、あまり実感が湧かない)。まだ動かないソフトは山のように有るのですが・・・それはしょうがないです。

余談ですがこのブログは話し口調が安定しません。初心者なのでどういう話し方がいいか迷っているのですが、多分リアルで話し下手なのも影響してます。わかりにくくてすみません。これからは多分、ですます調で行くと思います。そのほうがずっと書きやすいです。前回の記事は「だである」にしたのですが、かなり疲れました。まあいいです。

DirectShowとは?

ウィキペディアなどを見ていただければ、だいたい分かると思いますが、directshowはmacで言うとquicktimeのような動画、音楽などのメディアを再生するためのAPIです。何に使われているかと申しますと、メディアを扱うゲームには搭載されていることがある・・・というかぶっちゃけエロゲopとかに使われてるやつです。DirectShowはWindows本家にはWin98の頃から搭載されていたそうですが、残念ながらWineには完全には実装されていません。というのも、DirectShowにはQuartz.dllが必要なのですがWineにあるのは互換品、というか模造品で正常に動作しないからです。よってこのQuartz.dllがあればちゃんと動くはずです。

動作に必要(と思われる追加要素)

Quartz.dll これは100%必要です

ffdshow いつもの動画デコーダー用です

graphstudio.exe 動画に使うデコーダーの書き換えに使います

前回必要だと思われたwmpは実は全く必要ありませんでした。まあ必要だとしてもwinetricksから入れないと動作する気がしませんでしたが。

早速やり方説明

今から作業するよ〜ってひとはできれば一度wine環境を一から作りなおしたほうが成功しやすいと思います。(ちなみに私はnihonshuで環境を作っています。)

quartz.dll

(これは前回の記事とほぼ同じ内容です)

前回はquartz.dllは動画を再生するための〜とか分からないこと言ってすみませんでした。もう一回言いますがquartz.dllはdirectshowのためのライブラリです。

まず下のリンクからdirectxのデータを取得。

次に,ダウンロードしたdirectx_feb2010_redist.exeを7zip等で解凍(win版をwineで起動すればOK)dxnb.cabの中にquartz.dllが入っているはずです。

quartz.dllを取り出したらsystem32フォルダのquartz.dllを上書きして下さい。

system32の場所

easywineなら~/Library/Cache/Wine/prefix/drive_c/windows/にある

wineをビルドしたりnihonshuを使っている人は$HOME/.wine/drive_c/sindowsに有ります。

native差し替え(Easywine.app使っている人向け)

easywineじゃない人は次の見出しにスキップできます。

上書きしたらWineでexplorerを起動。windowsフォルダにあるレジスリエディタを起動して下さい。

スクリーンショット 2015-10-18 10.09.39 p.m.

これ↑

そうしたらHKEY_CURRENT_USER/Software/Wine/DllOverridesに移動して

Screen Shot 2016-01-31 at 18.54.52

何もないと思うので右クリックしてNew>StringValueとし、文字列値を作成します。

後は名前とデータをquartzとnativeに書き換えれば良いです。どちらも値をダブルクリックで編集で来ます。

スクリーンショット 2015-10-18 10.12.52 p.m.

native差し替え(その他)

easywine使っていない人はもっと簡単に設定できます。

まずwinecfgを出します。

Screen Shot 2016-01-31 at 18.59.20

そうしたらこんな画面が出てくるので新規オーバーライドからquartzを探して追加し、編集でネイティブ版にします。

ffdshowを入れる

こちらも前回と殆ど変わりません。https://osdn.jp/projects/ffdshow-tryout/ここから新しそうな32bit版を入手してきて下さいその後はインストールをすすめます。

最後のページまで来たら動画ビデオデコーダーの設定にチェックを入れて進みます

Screen Shot 2016-01-31 at 13.12.31

そうしたらデコーダーの行の適当なところを右クリックして安定な形式を全てlibcodecでデコードするように設定変更します。wineにはそもそもちゃんとした動画のデコーダーがありません。ffdshowで全てまかないます(低スペPCには重いかも)

Screen Shot 2016-01-31 at 13.13.53

これでOKにしてffdshowでの作業は終了です

graphstudioでmerit値の変更

最後です。前回はこの作業が無かったので一部のゲームが動かなくて泣き寝入りでした。今回は動くようになるので安心です

まずgraphstudioをどこからか拾ってきます。大丈夫ですググればすぐ見つかるはずです

そして起動。

Screen Shot 2016-01-31 at 13.22.24

こんなウィンドウが出てきますのでFilters>Manage Favorite>add Filter>まで進みます

Screen Shot 2016-01-31 at 13.23.08

ここでQTなんとかと書いてある項目がありますがDirectShowでは通常これらのデコーダーが選択されます。が、おわかりだと思いますがこれらのものはwineでは動作しません。なのでffdshowのmerit値を相対的に上げます。要は優先順位付けをするということです

Screen Shot 2016-01-31 at 13.23.31

QTなんとかと書いてある項目のmerit値をdo not useぐらいまで下げておくと良いでしょう。

ついでにvideo renderer というものが2つあるはずですが、その上の方だけ一つmerit値を上げておいてください。下のはなぜか動作しないからです。

終わり

前回より作業は単純になった気がしますが、、、どうでしょう?

一応私が確認感じでは大体のソフトは動きました。

おまけ 動くギャルゲ動かないギャルゲエンジン

吉里吉里2

(一部表示が崩れますがおおよそ大丈夫です。動画も再生できます)

吉里吉里z

ダメダメです。フリーウェアなので今後使用度が増えていくのでwineはもう無理でしょうね

realLive(VA/keyのゲーム 〜2011年まで)

rlvm使って下さい。有能です

siglusengine(VA/keyのゲーム 2011年から)

大丈夫でした。動画再生も殆どできますが、何故かrewriteの真EDだけはエラー吐きました。もう面倒くさいので無視です。多分wineの欠陥なのですが・・・

Ethornell

よく動きます。動画もOKです。嬉しい限りです。しかし上記の中では一番負荷の高いゲームだと思います。体感ですが。

という感じです。

<参考文献>

wineHQ

wikipedia

😃 mattintosh note 📝

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA