2010年2月14日日曜日

SWF用DirectShowFilter

Doom9のこのスレでSWF用DirectShowFilterなるものが紹介されていた。
SWFでDirectShowといえばMPCを思い浮かべるが、あれはただIE用FlashPlayerをそのまま使っているだけで、ブラウザ以上のことは特に何もできない。

これが本当ならすげえやってことで、さっそくDL。
http://www.medialooks.com/products/directshow_filters/flash_source.html
どうやらフリーのようだが、要登録らしい。
あと、IE用FlashPlayerを利用しているようで、こちらも必須とのこと。

さて、インストールしてみて、まずはWMP12でSWFを再生出来るか試してみた…が再生出来ない。
どうもActiveXでセキュリティに引っかかっているようだね。
IE同様、WMPでもSWFの再生はブロックがかかるのか…はじめて知ったよ。
ではこれならってことで、QonohaPlayerで試してみると…上手くいきました!
特にコマ落ちしてる様子もなく、なによりもスプライトを使っている部分もちゃんと動いてる! すごい!(何がすごいか分からない人は、SWFをAVIやMP4に変換しようとしたことのない人でしょう。経験者ならみんな驚くと思います)

さて、再生出来るなら、当然変換にも使えるはずってことで、AviUtlのDirectShowFileReaderで読み込めるか試してみると…クラッシュしたやんけ、オイ…。
ではVirtualDubならどうかとDirectShow input driverで試してみると…これもだめ。
AviSynthならどうかとDirectShowSource使って…orz
ならばこれはどうかとDSS2を使ってみると…やったぁ、読み込めた!
さっそくVirtualDubでAVIに変換…順調に行きました。

でも、なんでDSS2以外はダメなのかしら? ってことでしばらく試行錯誤してみると…どうやら音声を同時に読み込もうとするとクラッシュすることが判明。DirectShowSourceでもaudio=falseにしたら読み込めた(DSS2はもともと音声は読めないから無問題なわけね)。
そういえば、swf_vfpの履歴にmp3音声がどうこうってあったなぁ…あれと同じでPCMを使ってれば読めるのかもしれないけど、手元にPCM音源のSWFがみつからなかったので、調査は保留。
まあ、音声はいままでも別処理だったし、状況は好転したと言えますね。

さて、スプライト関連も上手く再現出来ることだし、これはswf_vfpもいよいよお役御免かなぁ…なんて思ってたところで、一つ不具合を見つけた。
どうやらレイヤーの重ね方だかアルファチャンネルの透過度の具合のせいか、色がおかしくなることがある。同じ現象はswfdrop.exeを使った場合も起こったことを思い出した。
うーん、swf_vfpなら、これは起こらないんだよなぁ…やっぱりすごいよ、まるもさん。

とりあえず、基本はやはりswf_vfp、スプライトの部分はこのDSF、どちらでもダメな場合はデスクトップキャプチャでAVIを作って、切り貼りするってことになるかな。

*今回の実験に使用したSWFは、過去に筆者がニコニコ投稿用エンコードを代理したものを使わせて頂きました。作った人、勝手に使ってごめんね。

0 件のコメント:

コメントを投稿