一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題

環境によっては、Ut VideoのYUV420やYUV422などが、MikuMikuDanceの背景AVIとして、きちんと読み込めず、黒一色になる問題について 確実なのは、RGBなaviにすること。動画編集ソフトで、Ut VideoのRGBなaviにとして書き出すとか。 もしくは、以下のツールを使ってみるのも手。 mp4をUt Videoなaviに変換するバッチ (2 GB越えのaviを読み込ませる方法の説明付) https://bowlroll.net/file/10226 続きを読む
6

映像可逆圧縮総合スレ Part3

http://peace.2ch.net/test/read.cgi/avi/1247236230/

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作者である梅澤さんとのやりとり

こ~りん @kourin

確かにYUV420のほうが縮みはするけど、たぶんRGBを読んだほうが色は正しく扱われそうな気がするんだよねぇ

2014-10-24 20:29:05
こ~りん @kourin

たぶん、RGBのほうが良いんだろうな、と思って、mp4をMMDの背景aviにそのまま使うためのバッチでは、ConvertToRGB24()を入れているんだけど、本当のところはどうなんだろう?

2014-10-24 20:32:08
こ~りん @kourin

@umezawa_takeshi Ut Videoなaviが読めたり読めなかったりするのは何が問題なのでしょう?> 一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題 - Togetterまとめ togetter.com/li/736317

2014-10-24 19:48:44
梅澤威志/ゆーむ @umezawa_takeshi

@kourin とりあえず樋口Mにどうやって読んでるのか聞いてみたら…? あと非圧縮の YUY2 や YV12 な AVI ファイルだとどうなるのかですかね

2014-10-25 02:50:52
こ~りん @kourin

@umezawa_takeshi MMDは、VFWで読み込んでいるらしいとしか分からないですからねぇ。ただ、AviUtlやVirtualdubでも場合によっては読めないらしいのが気になる所 peace.2ch.net/test/read.cgi/… peace.2ch.net/test/read.cgi/…

2014-10-25 03:00:01
こ~りん @kourin

@umezawa_takeshi 他のYUVとかは、明日テストしてみますね。ま、でも、MMDがどう読み込んでいるのか分からないので、RGBではなく、YUVを読ませるのが、そもそもの間違いの可能性もありそうですしねぇ

2014-10-25 03:04:10
こ~りん @kourin

正しく読めるように直すべき、とかじゃなくて、RGBだけにしてね、という結論なら、それはそれで個人的にはOK

2014-10-25 03:11:43
こ~りん @kourin

非圧縮のYUY2は、読み込めた

2014-10-25 10:43:26
樋口優 @Higuchi_U

@kourin @umezawa_takeshi MMDは背景AVIをVFW(Video for Windows)のAPIで読み込んでいます。ですので読み込ませるAVIのコーデックがVFWに対応していないと読み込めません。

2014-10-26 22:03:11
樋口優 @Higuchi_U

@kourin @umezawa_takeshi メディアプレーヤー等ではDirectShowで読み込むため再生可能でも、VFWで読み込むMMDでは駄目な場合もあります。その場合は別のコーデックを使って下さい。

2014-10-26 22:03:24
こ~りん @kourin

@Higuchi_U @umezawa_takeshi 返信ありがとうございます。VFW読み込みなのは、良いのですが、UT VideoのRGBは、環境によらず読み込めて、YUV420と422は、環境によって、420だけ読めたり、422だけ読めたりとバラバラらしく。

2014-10-26 22:08:03
樋口優 @Higuchi_U

@kourin @umezawa_takeshi それは環境によってはYUV420と422が、VFWで正常に読み込めない場合があるという事です。RGBが読み込めるならAviUtle等でRGBに変換して読み込んで下さい。

2014-10-26 22:10:52