一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題
映像可逆圧縮総合スレ Part3
810 名前:名無しさん@編集中[sage] 投稿日:2014/10/23(木) 03:15:02.03 ID:/yr93t6L
http://peace.2ch.net/test/read.cgi/avi/1247236230/810
Windows8.1を使っている方に伺いたいのですが、レジストリエディタ(regedit)で
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32
を見た場合、「vidc.yv12」という名前のエントリは存在しているでしょうか?
また、存在している場合、データはどのようになっているでしょうか?
MikuMikuDance v9.24で背景AVIを読み込む場合に、
・UtVideo14.2.1のULY0/ULH0だと真っ黒になってしまう
・Lagarith1.3.27のYV12も、Lagarithの設定で「Always Suggest RGB for Output」に
チェックを入れておかないと真っ黒になってしまう。
・Xvid 1.3.3だと「AVIファイルを読み込めません」のエラーが出て読み込めない
という状況が発生しており、vidc.yv12の有無や値が関係しているのではないかと推測しています。
現状のうちの環境ではvidc.yv12は存在していないのですが、これまでに何度か各種コーデックの
導入・削除を繰り返してきましたので、デフォルトの状態を知りたいと思った次第です。
811 名前:名無しさん@編集中[sage] 投稿日:2014/10/24(金) 02:48:34.59 ID:ezx2CJak
http://peace.2ch.net/test/read.cgi/avi/1247236230/811
>>810
うちの環境にはyv12のエントリはないね
もしかしたらffdshow video decoderのコーデック設定で、raw videoの項目でYV12がサポートされる状態になってるとか?
812 名前:名無しさん@編集中[sage] 投稿日:2014/10/24(金) 03:04:29.31 ID:ezx2CJak
http://peace.2ch.net/test/read.cgi/avi/1247236230/812
raw videoフィルタは関係なさそうだったけど、
aviutlでYV12のファイルを読み込もうとしたらエラーになったんで、
8.1ではもう削除された機能ってことなのかな?
代わりにffdshow Video Decoderのコーデック設定のraw videoにYV12の
サポートを設定したら開けるようになったよ
813 名前:名無しさん@編集中[] 投稿日:2014/10/24(金) 03:13:16.72 ID:ezx2CJak
http://peace.2ch.net/test/read.cgi/avi/1247236230/813
aviutlはdirectshowソースプラグインがあるから開けるようになったけど、
ffdshowの設定してもMMDでは読めなかったね
814 名前:名無しさん@編集中[sage] 投稿日:2014/10/24(金) 21:36:49.13 ID:iwkwQurY
http://peace.2ch.net/test/read.cgi/avi/1247236230/814
>>811-813
ありがとうございます。やっぱりvidc.yv12はWin8.1ではデフォルトでは存在しないのですかね。
MMDの背景AVI読み込みはVFWのようなので、ffdshow rev4533を入れて、VFWの設定で
Raw videoを「全サポート形式」にしてみましたが、MMDでULY0が読めない状況は変わりませんでした。
これまでの流れをまとめて下さった方がいるので貼っておきます。
一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題
ttp://togetter.com/li/736317
vidc.yv12に注目したのは、
FAQ YV12 - Avisynth wiki
ttp://avisynth.nl/index.php/FAQ_YV12
VirtualDubModでYV12なavsファイルが読み込めない
ttp://freesoft.tvbok.com/movie_encode/virtualdubmod/yv12avs.html
の記事を読んだからでした。記事にしたがってXvid1.3.3の入れ直しもしてみましたが駄目でした。
XP機を使っていた頃は確かDivX YV12 DecoderというのがVFWコーデックに入っていたような気がするのですが、
DivX10.2以降はDivXコーデックは外されてしまったので、古いのを探してきて入れないと駄目なようです。
しかしながら、vidc.yv12が無くてもULY0/ULH0が読み込めている人がいるので、
そこが本質というわけではなさそうです。なんだかややこしい。
815 名前:名無しさん@編集中[sage] 投稿日:2014/10/24(金) 22:05:38.08 ID:iwkwQurY
http://peace.2ch.net/test/read.cgi/avi/1247236230/815
とりあえず今までにやってみたことの流れを書いてみます。
1.MMD v9.24の背景AVI読み込みで、ULH2が真っ黒になり正常に読めないことに気づく。ULY2は読める。
さらにULY0/ULH0を試してみたところ、この両者とも真っ黒になってしまうことが判明。
MPC-HCでの再生やAviUtlへの読み込みなどは問題なく、MMDだけが駄目。
2.背景AVI読み込みでMMDが強制終了することもあったのでイベントビューアを見てみると、
DxtoryCodec.dllで障害が発生していた。やむをえずDxtoryをアンインストール。(入れていたのはDxtory 2.0.128か126。)
3.MMDの強制終了は無くなったが、ULY0が読めないことに変わりなし。
4.UtVideo14.2.1をアンインストールして12.0を入れてみたがULY0が読めないことに変わりなし。14.2.1に戻す。
5.ふと気づいて、一時的にアンインストールしていたBlackmagicDesignのDesktopVideo10.2.2を
再インストールしてみたところ、ULH2は正常に読みこめるようになった。
HDYCのコーデック(Blackmagic HD 8 bit 4:2:2 Codec)が入ったことが影響しているのだろうか?
6.>>814のYV12系の記事を見て、Xvid 1.3.3を再インストールしてみたり、
ffdshow rev4533を入れてVFWでRawVideoのYV12を有効にしてみたりしたが効果無し。
7.レジストリエディタで手動でvidc.yv12を作り、msyuv.dllやxvidvfw.dllを指定してみたが効果無し。
入れているVFWコーデック(に関係するもの):
AMV2MT、AMV4、UtVideo14.2.1、Lagarith 1.3.27、x264vfw r2453bm、Xvid 1.3.3、
ffshow rev4533、BlackmagicDesign DesktopVideo 10.2.2、GrassValley CodecOption 7.31-2939、
MSI Afterburner 4.0.0-4604(RTV1というコーデックが入っている模様)
816 名前:名無しさん@編集中[sage] 投稿日:2014/10/24(金) 22:23:01.59 ID:iwkwQurY
http://peace.2ch.net/test/read.cgi/avi/1247236230/816
現時点での個人的な推測。VFWのデコードの挙動とかわかってませんので全然違うかもしれません。
正直なにがなんだかわからない。
1.MMDの背景AVI読み込みでは、コーデックに対して「形式指定無しのデコード要求」が出されるのではないか。
2.形式指定無しのデコード要求が来た場合、多くのコーデックでは内部保持形式と
同じフォーマットでデコードデータを渡そうとする?
ULY0/ULH0はYV12、ULY2はYUY2、ULH2はHDYC?
1,2の参考:以下の記事のLagarithの「Always suggest RGB for Output」の説明
ttp://goldenhige.cocolog-nifty.com/blog/2010/02/lagarith-168a.html
3.しかし、MMDの背景AVI読み込みは、VFWでRGB24しか読み込めない模様?
参考:
ttp://goldenhige.cocolog-nifty.com/blog/2010/01/mikumikudanceav.html
4.そのため、YV12等でそのまま渡されても理解できず、真っ黒になったりする?
ただし、YV12等をRGB24に変換できるVFWコーデックが入っていた場合は、
それが仲介役となってRGB24に変換してMMDに渡している?
(なのでvidc.yv12やvidc.yuy2、vidc.hdyc等が必要だと思ったのですが、
vidc.yv12無しでもULY0が読み込めている人がいるのでよくわからない)
MMD側の問題のような気がしますが、条件や挙動の理屈等が判明してすっきり解決できないものかと・・・。
817 名前:811[sage] 投稿日:2014/10/25(土) 00:01:29.89 ID:PZfJz3hA
http://peace.2ch.net/test/read.cgi/avi/1247236230/817
>>814あれからもう少し実験してみたんだけど、
vidc.yv12="msyuv.dll"にしてもyv12は再生できなかったから、
やはり8.1(OSが64bit版)のvfwではyv12はサポートされなくなったのかも
ff_vfwの設定をすれば「無圧縮のyv12」ならMMDでも再生できるようになったけど、
directshowみたいにフィルタの連結ができないvfwではlagalithとかの出力でyv12を
選ぶことは出来なくなってるみたい
818 名前:811[sage] 投稿日:2014/10/25(土) 00:14:57.56 ID:PZfJz3hA
http://peace.2ch.net/test/read.cgi/avi/1247236230/818
あと、virtualdubのcolor depthの設定でdecompression formatをyv12にした時は
lagalithのファイルもyv12として開くことが出来たから、やはりデコーダからレンダラ部分の
処理を自前で実装してないと開けなくなってるみたいだね
問題なく再生できる人はどんな環境なんだろ?
819 名前:811[sage] 投稿日:2014/10/25(土) 00:38:34.84 ID:PZfJz3hA
http://peace.2ch.net/test/read.cgi/avi/1247236230/819
>>816
普通はVCMの側からコーデックに最も都合の良いフォーマットを問い合わせて、
それが対応可能だったらそれを受け入れて、対応していなかったらコーデックに
RGB等で出力可能かどうかを問い合わせてみてOKならそのフォーマットでデコード出力する
という流れになってるはずだけど、この場合VCMがyv12に対応してないのに
コーデックの提案したyv12を受け入れてしまってるのが原因だと思う
本当はVCM側からRGB出力の問い合わせをすればRGBとして表示することが可能なはずだけど、
先にyv12で受け入れてしまうので、suggest RGBを設定した時だけ開けたんだと思う
yuy2は8.1のVCMでも対応しているみたいだからULY2とかは開けたんじゃないかな
TwitterでのUt Video Codec Suite作者である梅澤さんとのやりとり
たぶん、RGBのほうが良いんだろうな、と思って、mp4をMMDの背景aviにそのまま使うためのバッチでは、ConvertToRGB24()を入れているんだけど、本当のところはどうなんだろう?
2014-10-24 20:32:08@umezawa_takeshi Ut Videoなaviが読めたり読めなかったりするのは何が問題なのでしょう?> 一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題 - Togetterまとめ togetter.com/li/736317
2014-10-24 19:48:44@kourin とりあえず樋口Mにどうやって読んでるのか聞いてみたら…? あと非圧縮の YUY2 や YV12 な AVI ファイルだとどうなるのかですかね
2014-10-25 02:50:52@umezawa_takeshi MMDは、VFWで読み込んでいるらしいとしか分からないですからねぇ。ただ、AviUtlやVirtualdubでも場合によっては読めないらしいのが気になる所 peace.2ch.net/test/read.cgi/… peace.2ch.net/test/read.cgi/…
2014-10-25 03:00:01@umezawa_takeshi 他のYUVとかは、明日テストしてみますね。ま、でも、MMDがどう読み込んでいるのか分からないので、RGBではなく、YUVを読ませるのが、そもそもの間違いの可能性もありそうですしねぇ
2014-10-25 03:04:10@kourin @umezawa_takeshi MMDは背景AVIをVFW(Video for Windows)のAPIで読み込んでいます。ですので読み込ませるAVIのコーデックがVFWに対応していないと読み込めません。
2014-10-26 22:03:11@kourin @umezawa_takeshi メディアプレーヤー等ではDirectShowで読み込むため再生可能でも、VFWで読み込むMMDでは駄目な場合もあります。その場合は別のコーデックを使って下さい。
2014-10-26 22:03:24@Higuchi_U @umezawa_takeshi 返信ありがとうございます。VFW読み込みなのは、良いのですが、UT VideoのRGBは、環境によらず読み込めて、YUV420と422は、環境によって、420だけ読めたり、422だけ読めたりとバラバラらしく。
2014-10-26 22:08:03@kourin @umezawa_takeshi それは環境によってはYUV420と422が、VFWで正常に読み込めない場合があるという事です。RGBが読み込めるならAviUtle等でRGBに変換して読み込んで下さい。
2014-10-26 22:10:52