MikuMikuDanceの背景avi読み込みについて (ファイルサイズの大きなaviやmp4の読み込み方法)

MikuMikuDance (MMD)で背景aviとして正常に読み込める動画の条件は
・aviファイルであること
・ファイルサイズが2 GB以下であること
VFW (Video For Windows)でデコードできること

詳しい仕組みについては、次の記事を参照してください。
MikuMikuDanceの背景AVI読み込みについて(関連:VFW入力とDirectShow入力)
レナ・アントラ@猫のしもべ(@lenaantler) さんによる補足

ffdshowよりもLavfiltersの方が良いかも?
Lavfilters (日本語解説)

2 GB以下のaviに変換するには、

また、MMMであれば、2 GBの制限はありません。これが原則ですが、抜け道もあります。

それは、Avisynth (日本語解説サイト)を経由してMMDに読み込ませる方法です。
この方法を使うと、
(1) 2 GB越えのファイルの読み込み
(2) mp4などavi以外のファイルの読み込み
が可能になります。
(2) については、「mp4をMMDの背景aviにそのまま使うためのバッチ」、「mp4をMMD64bit版の背景aviに使うためのバッチ」があるので、配布ファイル中にある「読んでください.txt」の説明に従って下さい。これらを使う場合は、読み込み時に動画を変換する処理が入って処理が重いので、モーショントレスではなく、動画をただ流すだけ、といった用途に向いています。一応、そこそこの性能のパソコンであれば、mp4でもそれなりにトレス出来るみたいです。


以下、2 GB越えのaviファイルを読み込ませる方法についてです。

まず、Avisynthについてですが、これは派生バージョンが複数あります。
(1) つんでれんこを使用している場合(もしくは、「mp4をMMDの背景aviにそのまま使うためのバッチ」を使えるようにしてある場合)は、Avisynthの32 bit版がインストール済みのはずです。MMDの32 bit版 (64bit版OSバージョンではない方)を使っている場合は、これだけで十分です。 MMD 64 bit版を使用している場合でも、Avisynth 32 bit版だけで動作するとのことです。(Thanks to 猫のしもべ さん)
(2) 「mp4をMMD64bit版の背景aviに使うためのバッチ」を既に使えるようにしてある場合は、Avisynthの64 bit版と32 bit版がインストール済みなので、MMDの32 bit版、64 bit版ともに、改めてAvisynthをインストールする必要はありません。なお、Avisynthの64 bit版および32 bit版のインストール方法は、配布ファイル(MMBG_x64.zip)中の「読んでください.txt」に書いてあります。
(3) Avisynthを導入していない場合は、Avisynth+ をインストールするのが楽です。こちらからAviSynthPlus-MT-r○○○○-with-vc_redist.exe (○○○○はバージョンの数字)をダウンロードしてインストールしてください。これをインストールした場合、改めてAvisynthをインストールすることなく、「mp4をMMDの背景aviにそのまま使うためのバッチ」や「mp4をMMD64bit版の背景aviに使うためのバッチ」が使えるようになります。ただし、 つんでれんこは、そのままでは動かなくなります。(一応、つんでれんこを改造すれば動かせますが、少し面倒です。)

次に、aviファイルを用意します。
Ut Video Codec SuiteのRGB (ULRG)もしくは、RGBA (ULRA)あたりが無難です。
また、フレームレートが30 fpsになっていない場合は、30 fpsに変換しておかないと、後々ズレが生じます。

avsファイルを作成します。
(1) メモ帳を開いて、新規のテキストファイルに

AviSource("aviファイルのフルパス")
ConvertToRGB()

 

例:

AviSource("C:\Tools\MMD\movie.avi")
ConvertToRGB()

 

と2行書いて、保存する際に、型式を全てのファイルにし、拡張子を.txtではなく.avsにして保存する。 (Ut VideoのRGBもしくはRGBAであれば、2行目は省略可ですが、あっても害はありません。)

なお、前述の「 mp4とかをUt Videoなaviに変換するバッチ」は、変換した後のaviファイルが2 GBより大きい場合は、avsも作成するようになっています。

(2) MMDの背景AVI読み込みで
全てのファイルを表示させて、先ほど作成した.avsファイルを指定する
MMDのウィンドウへのドラッグ&ドロップでは読み込めません。

 

レナ・アントラ@猫のしもべ(@lenaantler) さんによる解説動画

https://twitter.com/lenaantler/status/1026399607134158854



その他にも、avsを使うと、

1. 複数のaviを連続して表示させる。

2. 任意のフレームからaviを開始する

3. 動画のループ表示

といったことが可能です。参考: 

web.archive.org

ニコニコ動画用の動画のビットレート決定手順 (プレミアム会員向け)

関連ページ
エンコード関連用語集
ニコニコ動画向けエンコードについて
拡張 x264 出力(GUI)Exの設定項目とその機能について

ビットレートとは

ビットレート=1秒あたりのデータ量=ファイルサイズ/再生時間

解像度(画面のサイズ)やフレームレート(一秒あたりのフレーム(画像)枚数)を高くするとデータ量が増える → 必要なビットレートも高くなる。動きが激しいとフレーム間の差分が多いので、圧縮しにくくなり、必要なビットレートも高くなる。
また、例えば、背景が黒一色なら、端から端まで黒と一言で表わせられるので情報を圧縮しやすい。これが、左上端が黒でその隣がうすい青で、その隣が、となると、情報をまとめにくいので圧縮しにくい。動画をエンコードして縮みやすいのは前者となる。

背景が動かず、人物の表情だけ変わるのであれば、人物の表情の差分以外は前のフレームの情報そのまま使用し、前のフレームと異なる部分だけ記録すれば済むので圧縮しやすい。あまり動かない動画(極端なのは、一枚絵とか紙芝居とか)がエンコードするとファイルサイズをかなり小さくできるのはこのため。
一方、例えば、キラキラと小さな粒が舞うようなエフェクトを使うと、上下左右のドットとの色が異なり、前後のフレームとの差分が増えて圧縮しにくくなる。(いわゆるエンコ殺しな動画になる。)

ビットレートの自動決定

プレミアム会員の場合、動画のビットレートの上限は100MBまでというファイルサイズ制限のみで決まる。 再生時間が10分を越えて長くなると、動きの激しい動画では十分なビットレートを確保出来なくなっていく。640x360に縮小する、編集して短くする、動画を分割する等も考慮すると良い。

6分以下位の短い動画であれば、大抵は十分なビットレートを確保できる。そこで、動画のビットレートを軽さと画質のバランスを考慮して決定する。

まずは画質に応じたビットレートをツールで自動決定してみる。

つんでれんこの場合、次のいずれか
1.質問すこし。
2.質問ふつうで、ビットレート0か2001以上。
3.質問おおめで、ビットレート0か2001以上。品質基準エンコする。

夏蓮根の場合、次のいずれか
1.おまかせモードで、プレミアム会員、バランス
2.詳細設定モードでプリセットa
3.詳細設定モードでビットレートa。品質基準エンコする。

AviUtl+x264guiExの場合は、
1.ニコ動の短い時間用プロファイル
2.上限確認付きシングルパス-品質基準VBR)


以上の方法で、いずれのツールを使った場合でも、ビットレート計算をしなくても、100MB以下に収めてくれます。

ニコニコ動画で視聴する際はFlashplayerで再生される。そこで、エンコードした動画の確認もFlashplayerで再生するプレーヤー(つんでれんこ/夏蓮根付属のプレーヤーやつんぷれ)で行う。Windowsメディアプレーヤーなどは使わないように。
これらのプレーヤーでは、ページの下の方に実際のビットレートが表示される。動画を視聴してみて、動画が重すぎるようであれば、ビットレートを下げることを検討する。2000-3000 kbpsを越えていると、低スペックPCで視聴する視聴者は重いと感じるかも?

軽くするには、先ほどのビットレートより低い値を指定して、再度エンコしてみる。つんでれんこは、質問おおめでビットレートを指定、品質基準エンコはn(しない)。夏蓮根は、詳細設定モードで以下同じ。AviUtl+x264guiExなら、長い動画用プロファイルで、ビットレートを指定する。

逆に画質が物足りないのであれば、100MBを超えない範囲でビットレートを高くするか、CRFの値を下げる。デフォは23で0.1刻み。下げても20位で十分のはず。つんでれんこ(の質問おおめ)/夏蓮根なら、ビットレート0にして、品質基準エンコする?のところ。x264guiExでは、品質。(ビットレートで指定したい場合、つんでれんこの質問おおめ/夏蓮根なら品質基準エンコをしないにする。x264guiExでは、自動マルチパスにする。)


ちなみに、つんでれんこ/夏蓮根もx264guiExも、映像は、x264というツールに設定を渡してエンコしているので、同じ設定でエンコすれば、画質や速度に違いはない。AviUtlで動画編集していたり、エンコ設定について勉強し、エンコにこだわりたい方はx264guiExをどうぞ

逆に、AviUtlで編集している場合でも、時々変更されるニコニコ動画のプレーヤー解像度を覚えられないなら、Ut VideoのRGBなどの可逆圧縮コーデックでavi出力してから、つんでれんこという手もある。

ニコニコ動画向けエンコードについて

ニコニコ動画に投稿した際に、動画の再エンコードを回避することが出来なくなったため、本記事の内容の一部は、情報が古くなっています。

2016年8月18日から順次開始したニコニコ動画の新仕様向けエンコードについては、つんでれんこ作者である窓屋さんのブログ記事

ニコニコ新仕様向けの動画作成方法について

を参照してください。(新仕様の範囲内で出来るだけ画質を上げるべくあがきたい場合は、こちらも参考になるかと思います。)


動画のエンコードとは

目的に応じて、動画の形式を変換すること。動画ファイルを保存したり、転送したりしやすくするために圧縮などを行います。これが動画のエンコードです。動画を視聴する際には、再生するために逆変換(デコード)が行なわれています。(参考: エンコード関連用語集)

ビットレートとは

一秒あたりのデータ量です。つまり、
(平均)ビットレート = ファイルサイズ ÷ 再生時間
となります。通常は、動きが激しいシーンではビットレート高めに、動きの少ないシーンではビットレートを低めにする可変ビットレートが使われます。また、解像度を高くしたり、フレームレートを高くすると、画質を維持するためには、より高いビットレートが必要になってきます。つまり、動画ごとに適切なビットレートは異なる、ということです。


ビットレートを上げると画質は上がりますが、高すぎると重い動画になります。また、上げれば上げるだけ画質があがることはなく、ある程度以上になると、見た目はほぼ変わらないのに重くなるだけになってしまいますので、適切なビットレートにすることが重要です。
ニコニコ動画用の動画のビットレート決定手順 (プレミアム会員向け)




動画エンコードの目的

  1. ニコニコ動画の推奨形式に動画を変換して、サーバーエンコードを回避します。(サーバーエンコードされた動画の品質はあまり良くないので、あらかじめ適切な動画にエンコードしておくことで、画質・音質の劣化を避けます。) mp4の場合は、映像は、H.264、音声はAACという形式にします。その他、細かい仕様については、下記を参照すると良いでしょう。
  2. ニコニコ動画で再生する際には、Flashplayerが使われます。Flashplayerの動画再生は、パソコン上にある動画を再生するためのツール(Windows メディアプレーヤーQuickTimeプレーヤーなど)とは再生方法が異なります。このため、「Windows メディアプレーヤーでは正常に再生できるのに、Flashplayerでは正常に再生できない」、または、逆に「Flashplayerでは正常に再生できるのに、Windows メディアプレーヤーでは正常に再生できない」ということが起こり得ます。そこで、Flashplayerで再生するのに適切な設定でエンコードすることが重要です。(手元のパソコン上で、Flashplayerを使って動画再生して確認するためのツール: つんぷれ (Win用。つんでれんこや夏蓮根に付属のプレーヤーを独立させたもの))

  3. 動画を視聴する際に、動画のデコードが行なわれますが、この処理は視聴者のパソコンの性能によってはわりと負荷の高い作業です。視聴者のパソコンの性能はまちまちなので、あなたのパソコンでは問題なく再生できるのに、古いパソコンを使っている視聴者が動画が重くてスムーズに再生されず、快適に視聴できない、といったことが起こり得ます。そこで、動画をエンコードする際には、出来るだけ画質・音質を高く、かつ、快適な視聴ができるように軽くするのが理想です。ただし、このバランス調整を突き詰めようと思うと、それなりにエンコードに関する知識と経験を要します。いわゆる「エンコード師」が目指しているのはコレ。

  4. 動画のエンコード設定によっては、特定の視聴環境(一部のグラフィックチップを搭載したパソコンや、一部のニコニコ動画用プレーヤー)では、正常に再生できない、ノイズが発生する場合があります。特に、過度に圧縮率を高めた設定でこの問題が起こることがあります。出来るだけ多くの視聴者に、製作者の意図した動画を見てもらうためには、この問題を避けるべきでしょう。

ニコエンコやAviUtl(の最低限の設定)を使って、1. だけで満足している人が多いですが、それだけだと、正常に視聴できなかったり、快適に視聴できない人が出てくる可能性があります。出来れば、2. - 4.も考慮して投稿したほうが、より多くの視聴者に最後まで見てもらえる可能性があがるかと思います。

動画エンコードツールに渡す前の動画について

エンコードすることによって、画質がエンコード前より良くなることはありません。したがって、エンコード前の動画の画質は、出来るだけ良くしておきましょう。
動画編集ソフトで動画を編集した後、エンコードツールに渡すために動画を書き出す際には、可能なら可逆圧縮コーデック(Ut Videoなど)を使ったavi形式で出力すると、未圧縮の場合と同じく劣化させず、かつ、未圧縮よりファイルサイズを小さくすることが出来ます。Windowsムービーメーカー等、avi出力が出来ない編集ソフトの場合は、一番画質の良い設定(このプロジェクトの推奨設定 → wmv等)で書き出すと良いでしょう。Macの場合は、#BeDaiのまとめ : iMovieで作った動画を最高画質(最高品質)で書き出す方法#BeDaiのまとめ : UtVideoコーデックMac版のインストールの仕方などを参照してください。


動画エンコードツール

有志により、ニコニコ動画向けに利用できるエンコードツールがいくつか作られています。下記のものはいずれもフリーソフトですが、適切に使用した場合には、有料のソフトよりも高品質になるかと思います。(有料ソフトの利点はインターフェイスがこなれていることでしょうか。)
  • つんでれんこ (Win) TDenc2 (Mac, Linux)

    ニコ動仕様対応
    flashplayer対応
    画質と軽さのバランス○ (意図的にビットレートを最大にするなどすると重くなることも)
    こんな人にオススメ
    エンコード?ナニソレオイシイノ?
    オプション多すぎメンドクセ。いちいち変えるのマンドクセ
    ぐぐーって持ってきて、ぽとっと落とせば、ぎゅいーんってエンコしてくんない?
    ツンデレはぁはぁ^q^
    (公式サイトより)
    エンコードのことはよくわからないけれど、お手軽かつ綺麗にエンコしたいって人や、エンコードにとことんこだわって画質と軽さのバランスを突き詰めるよりも動画の中身に時間をかけたいって人にオススメ

    ニコニコ動画およびYoutube用のMP4を簡単に作成できるエンコードツールセット。対話型でエンコード設定を指定する。動作に必要なツールは自動ダウンロード&インストールされる。また、自動更新チェック機能もあり、ニコニコ動画の仕様変更などがあれば対応してアップデートが行われている。
    デフォルトで、Flashplayerでの再生を考慮したエンコード設定が、アニメ用、実写用など複数用意されている。最新版では、動画に応じた適切なビットレートになるエンコードモード(品質基準VBR)も用意されている。

  • 夏蓮根 (Win)
    選択肢から選ぶだけのおまかせモード(上)と、つんでれんこ同様質問形式の詳細設定モード(下)


    ニコ動仕様対応
    flashplayer対応
    画質と軽さのバランス○ (意図的にビットレートを最大にするなどすると重くなることも)
    こんな人にオススメつんでれんこでやろうとしたけど、何故かうまくいかなかった人
    つんでれんこで設定ファイルを手でいじるのは面倒なので、自動でやってくれないかな?って人
    デレデレや修造風メッセージだとか、ボイス付きだとか、おまけ機能で遊びたい人

    つんでれんこの改造版。グラフィカルな設定画面を追加したり、エンコード結果に応じて自動でエコノミー回避にしたり、音声のみ差し替えをすべきかどうかを自動判断したりといった機能が追加されている。つんでれんこがうまく動かない人や、さらに簡単にエンコードしたい人を主なターゲットとして開発が行なわれている。
    本家動画を使った歌ってみた動画なら(プレミアム会員なら特に)、「夏蓮根(つんでれんこ改造版)を使用した歌ってみた動画作成手順」が簡単かつ比較的短時間で、目的1、2、3を満たせるのでオススメ。エンコードの善し悪しが判断できるだけの知識があれば、つんでれんこまたは夏蓮根のプリセットs (映像エンコードなしの音声差し替え)を使うとさらに高速にmp4が作成可能。

  • AviUtl + 拡張 x264 出力(GUI)Ex (x264guiEx) (Win)


    ニコ動仕様対応△ (各自で現在の仕様を把握して、それに沿って自分で設定する必要あり)
    flashplayer対応○ (付属のニコ動用プロファイルを使う場合。使わない場合は、各自で調べてきちんと対応しないと、正常に再生できない動画になることも)
    画質と軽さのバランス× ~ ◎ (設定次第で良くも悪くもなる)
    こんな人にオススメAviUtlで動画編集をしている人
    エンコード自体が楽しいと思う人
    エンコードについて勉強したり、設定を変えて試行錯誤したりすることに時間を割いてでも、少しでも動画を綺麗で軽いものにしたい人

    動画編集ソフトAviUtlの出力プラグイン。動画編集して、そのまま中間ファイルなしにMP4を作成できる。エンコード設定の柔軟なカスタマイズも可能。ただし、設定できる項目が多すぎて、なにをどういじって良いのか、どう設定してはダメなのかを知らないと、適切ではない動画になってしまうこともある。頻繁に更新されて機能追加などされているので、適宜、更新確認すること。古いままだと、現状に合っていない動画になってしまうこともある。最近のバージョンには、必要な関連ツールを自動でインストールするインストーラも付いているので、更新も以前に比べて簡単になったはず。
    最新版には、ニコニコ動画用プロファイルも用意されているので、まずはそれを使ってみるのが良いだろう。また、プレミアム会員で、6-8分程度未満の動画であれば、上限付き品質基準VBR(crf)を、それより長かったり、一般会員だったり、エコノミー回避したかったりした場合は、自動マルチパスを使うと良い。(参考: x264guiExの上限設定 (まとめ)) また、本当にきちんと使いこなしたいのであれば、ニコニコ動画やFlashplayerの仕様変更といった情報も追いかけておくこと。(参考:
    AviUtlを使ったMP4 (H.264) エンコード拡張 x264 出力(GUI)Exの設定項目とその機能についてx264でのニコニコ動画用エンコードで注意すべき設定(AviUtl) )

  • ニコエンコ (Win)
    ニコ動仕様対応△ (デフォルトでは、2010年4月(原宿より前の9時代)の仕様のままなので、各自で設定変更が必要)
    flashplayer対応△ (ほぼ考慮されていない。特に変換速度=最低速は厳禁)
    画質と軽さのバランス△ (プレミアム会員で自動にすると過度に重くなることも)
    こんな人にオススメニコエンコの現在の問題点を認識した上であえて使いたいと思う人

    2014年6月初頭より、サイトにアクセスすると、転送量オーバーとのエラー表示が出る。通常なら数日で復帰するはずだが、今もってアクセス不能

    簡単な設定で、ニコニコ動画への投稿時に再エンコードされない動画にすることができる。デフォルト設定では、Flashplayerでの再生への最適化は行なわれていない。
    現在の最新版(ver0.77)がリリースされたのは2010年4月であり、その後のニコニコ動画の仕様変更(プレーヤーサイズの変更(512x384 → 854×480 (GINZAの大画面))、エコノミー回避基準の変更(245 kbps以下 → 445 kbps以下))に対応するには、手動で設定を変更しなければならない。また、エンコード設定によっては、正常に再生できない動画になったり過剰に重い動画になったりするので、現在では非推奨となっている。(→ ニコニコ大百科の記事 )

  • HandBrake (Win、MacLinux)


    ニコ動仕様対応△ (各自で現在の仕様を把握して、それに沿って自分で設定する必要あり)
    flashplayer対応△ (各自で現在の仕様を把握して、それに沿って自分で設定する必要あり)
    画質と軽さのバランス× ~ ◎ (設定次第で良くも悪くもなる)
    こんな人にオススメMacLinuxユーザーで、エンコードにこだわりたい人

    通常の動画に加えて、コピープロテクトのかかっていないDVDやBlurayをパソコンの動画プレーヤーやPS3/Xbox360/PSPなどのゲーム機などで再生できる形式に変換できるツール。Windowsだけでなく、Mac OS Xなどでも動作する。MacOS XのHandBrakeで、つんでれんこのエンコード設定を使ってエンコードする方法はこちらを参照。(リンク先には、他にもMacでのエンコード関係で有用な記事があるので、Macで動画を作っている人は、一読をオススメします。)




なお、上記のいずれのツールもx264 というフリーのH.264エンコーダを利用しています。また、上に挙げた以外にもフリーなエンコードツールはありますが、それらについても、ほぼ全て、x264を利用したものです。従って、エンコード設定をフルカスタマイズした場合には、同じ品質の動画を作ることができます。ツールごとの違いは、ユーザーインターフェースや、どんな動画を読み込めるか、mp4以外にどんな形式の動画を書き出せるか等々ありますが、ニコニコ動画用のH.264エンコードに関してに限れば、カスタマイズ性とシンプルさのどちらをより重視するかの違いになります。また、x264は、TMPGEncといった商用のエンコードソフトウェアにも利用されています。
その他にも、ニコニコ動画対応をうたった有料のエンコードツールがいくつかありますが、残念ながら、動画エンコードの目的の1.のサーバーエンコードの回避だけしか行っていない場合が多いようです。
こと、ニコニコ動画用のエンコードに関する限り、有料のエンコードソフトを買うのは、あまり意味がない気がします。つんでれんこ/夏蓮根、AviUtl + x264guiExのニコニコ動画用プロファイル等を用いてエンコードしてみて、画質に満足が行かなかった場合に、「有料のエンコードツールを買えば、もっと画質が向上する」と考える人もおられるかと思いますが、残念ながら、実際にはそういうことはまずありません。もしも画質が向上したのであれば、フリーのツールの使い方に問題があったと考えるべきかと思います。