September 15, 2010

swf (avi)を高画質でmp4に変換・エンコードする手順



僕も勉強してエンコードできる環境を整えましたので、
その手順をまとめておこうと思います。

既にニコニコWikiに丁寧な解説が載っていますが、
それを見ても挫折した残念な人(=ぼく)向けの記事です。

従来の解説サイトのような仕組みの理解を省略し、
エンコードの方法のみを追っていきます。

この記事でである程度理解が及んでから、
深いところを追求すればよいと思います。




さて 正直言って面倒くさい手順を踏まされるわけですが、
僕でも調べれば何とかなりましたので
皆様も頑張りましょう。


エンコをする前にある程度留意してほしい点が多々あるのですが、
解説は長文という時点で読むのを放棄したくなるもの。

ですから、
最低限読むべき箇所にオレンジ色の四角を、
知識として知っていてほしい箇所に青色の四角
記載しておくので、「理論はいいから手順を教えろ」という方は
そこだけ追って頂ければと思います。



★ swfからmp4へのエンコード 大まかな流れ

1.swf の映像と音源を別々に用意。
2.swf から avi へ変換する環境を整える。
3.avi から mp4 へ変換する環境を整える。


以上です。頑張りましょう。
swfではなくaviファイルを変換したい人は、2の項目をスキップします。

あともう一つ。レートは30fpsくらいまでが一般的で
FlashのMotionGraphicsなどを手掛ける方は60fpsとかも
いらっしゃったと思うのですが、エンコには不向きです。

というわけで、avi から mp4 に変換する方法から進めます。



AviUtl の環境を整える

まず初めにエンコードの肝となるAviUtlを用意します。
これは「aviをmp4に変換するソフト」だと思ってください。
swfファイルは初期状態では対応していません。

ここでAviUtlのソフトそのものとは別に、
起動するために必要なソフトやら、
高画質でアップするためのプラグインやら、
色々と調達してこなければならないのです。

順番にURLのものをダウンロードすればよいです。


1.AviUtl をインストール

公式サイト から最新版をダウンロード。
このフォルダの中に色々とプラグインを入れていきます。


2.DirectShow File Reader プラグイン

ファイルを読み込むためのものです。

こちら  から lzhファイルをダウンロード。
解凍したフォルダから  ds_input.aui をAviUtlフォルダへ移す。
(同名の.ini がある場合はそちらも移す。)

※ .ini について
隠しファイルなので通常は表示されません。
マイコンピュータを開いて ツール→フォルダオプション から
「表示」タブの詳細設定から "すべてのフォルダとファイルを表示する"
を選んでください。
AviUtlを起動した際に生成されるものなので無くても無視して次へ。
今後も .ini ファイルの扱いは同様です。


3.x264 GUI のダウンロード

x264という言葉に聞き覚えはあるはずです。
これがmp4に高画質エンコードしてくれる正体です。
AviUtlだけでは動かないので、これを導入して初めて高画質が実現します。

こちら からインストール (有志によるミラーサイトです。)
auoフォルダ内の、x264gui. というファイルをフォルダへ移動。

x264はMicrosoft Visual C++ 2008 SP1 を導入していないと
起動しないのでインストールしておきましょう。


4.Nero AAC コーデック

次は映像ではなく、音声用のコーデックと思えばいいです。
こちら からダウンロード。(求められるアドレスは捨てアドでOK)
解凍し、win32 内のneroAacEnc.exe を実行せずフォルダに移動。



==================================================


以上で、AviUtl と音声、映像、読み込みのコーデックを揃えました。

WindowsXP以前のOSを使用してる人は
こちら  と こちら  を導入していないとx264が起動しません。


AviUtlとx264の関係

「きれいな映像のmp4ファイル」を生成するためのものが
x264と呼ばれるものです。ただこれだけじゃ動かないので
プラグインという形で AviUtlに導入するわけです。

AviUtlは従順なとても良い子で、
プラグインを色々と導入すれば神ツールと化すわけです。
で、そのために必要なプラグインを上で導入していきました。

低いサイズで高画質にするために、
他にも様々なプラグインを駆使して設定するわけですが、
奥が深すぎて挫折するので今は最小限にしておきましょう。




"swfを"エンコード出来るようにする
※ aviファイルをエンコしたい人は飛ばしてください。


◆方法1 AviUtlにswfを読み込めるようにする。


先程上で説明したAviUtlのプラグインの中に
「swf」を読み込む というプラグインもまた存在します。

よって、それを使う方法をまず説明します。

まずこちらのプラグインをダウンロードして下さい。
中に入ってるファイルを先程と同様、AviUtlがあるフォルダへ移動。
AviUtlを既に起動してる場合は再起動しましょう。

これだけで準備完了です。

◆方法2 swf>>Avi を利用して変換する。


僕が自分でエンコード出来なかった際にずっとお世話になっていた
yama_koさんが色々試した結果、
コマ落ちしないという点においてフリーの中ではこれが最適のようです。
ダウンロード、使い方ともどもこちらに全て載っています。

導入の際の注意点、インストールの際に必要な環境などは
yama_koさんのブログ2の項を参照しましょう。
上の記事を読んでいればインストールが途中で消える>< 
などというミスは起こりえないですし、
変換できるswfの条件なんかも載っています。要読。



さて、1の方法2の方法どちらでも同じことが言えるのですが
この時点で「無音」であることは正常です。

ところでavi変換した際、「一部の映像だけ動きが変になる」などという
よくわからないトラブルに見舞われた場合は、
作品にムービークリップシンボルが使われてる可能性が高いです。
これは次の項で詳しく説明します。





swfエンコの弱点 ムービークリップシンボル

Flashを少しでも触れたことのある方ならご存知の通り、
Flashで映像を構成する上で「グラフィック」「ムービークリップ」
という二つのシンボル(素材)が使われるわけですが、
このうち「ムービークリップ」(以下、MCと呼びます)というのは
動画の再生、一時停止に関わらず単体で再生され続けまして、
いわゆるニコニコでたまにある「止めても動くぞ!」というやつです。

これが使われてると、エンコードの際非常に厄介です。
MCシンボル内に動きがない場合は問題ありません。

(一フレームしか無いシンボルはセーフということです。
例えば、一枚絵にフィルタをつけるためにMCを使うのは可。)

対処法はあるにはあるので後述しますが 
どっちにしろ輪をかけて面倒な過程を被るのは必至なので
もしもエンコードを当初より予定してFlash製作に挑むならば、
極力、中で動きのあるMCシンボルは用いないようにしましょう。


ということです。




■ mp4へエンコードする

ファイル → 開く  からエンコードしたい映像を開きます。
(上述した2通りの方法で、予めswfを読み込めるようにして下さい。)

普通にエンコードしては高画質にはなりませんが、
先ほどx264を導入したので、それを選択してエンコードします。

ファイル → プラグイン出力 → 拡張 x264 出力 

保存画面が出ますが、その前に設定をしなければならないので、
左下にある「ビデオ圧縮」をクリック。 設定画面が開きます。
非常に膨大な設定項目があり頭を痛めるのですが、
プリセット(おすすめコース)が用意されているのでそれを使います。

上のプリセットから好みのものを選択。(通常は Niconico : 高画質 )
画面右側が音声の設定になっていますが、
その中程にある 「neroAacEncの設定」 の参照ボタン「...」から
先ほど導入した neroAacEnc.exe のファイルを選択してください。

あらかた準備を終えましたが、設定画面を閉じずに次の項へ。


ビットレートを決める

「ビデオ圧縮」をクリックすると表示される設定画面のうち、
左側真ん中にある「ビットレート(kbps)」という項目が映像の
右側真ん中にある「エンコード設定」という項目が音声の
ビットレートを設定するところです。

音質、画質ともに 、その高品質さを数値化したものと
捉えればとりあえず問題ないです。
音声ビットレートと映像ビットレートは別々に存在します。

勿論、高ければ高いほど高画質なわけですが、
標準値がどれくらいかというと、これが厄介なことに
映像の質によって色々と異なります。
「動きの少ない映像はビットレートが低くても高画質に」
「動きが多い映像はビットレートが高くても粗が生じる」
ということは漠然と覚えておいたほうがいいです。

配色なんかにも左右されるので厳密には言えませんが。
(実体験ですが、カラーノイズなんかを使っちゃうと
どれだけビットレートを高くしてもそこだけ
画質が悪くなったりします。困ったものです。)

画質は800〜1500Kbpsあれば大抵綺麗にエンコ出来ます。
ただし  「画質が綺麗=容量が大きい」ということなので、
スペックが高くないと、かなり処理落ちが激しくなります。
保存した動画を見て処理落ちしなくとも、
ネット上にアップした状態だと処理落ちが激しくなることがあるので
ネットに上げた状態で快適に視聴できるか試すことをお勧めします。
動きがさほど多く無い映像なら400Kbpsでも
十分に高画質だったりしますから、色々と試してみましょう。

ここら辺は色々と熟考の余地ありなので、
エンコ出来るようになってから突き詰めればいいと思います。



音声と映像を合成する。

ここで無音の映像と音源を統合するわけですが、
音源のファイルはwavです。というかmp3は対象外です。
仮にmp3しか用意していないなどという場合は、
Googleで検索すれば簡単に出てきますので
mp3→wavの変換ソフトを使いましょう。すぐに出来ます。

さて、ここで音声の位置を調整する方法を説明します。
音ズレは0.1秒だろうと許せないのは
映像を作ったことがある人ならご存知のはず。

まず音声の追加方法は「ファイル→音声読み込み」から行ないます。
次に音ズレを防ぐために開始位置を調整する方法ですが、
設定→音声の位置調整の設定」から行ないます。
この数値を調整することによって地道に音ズレを直してください。

ちなみに設定パネル右上にあるチェックボックスが「適用」の意味で、
これにチェックを入れないと反映されません。

また、実際に音声と動画が合致してるか確認する方法としては、
表示されてる緑色の波形で視覚的に確認する方法があります。
しかしこれだとサッパリわからないので、
表示→再生ウィンドウの表示」で再生してみてください。
処理落ちのせいで音と合ってるのか判別がつきにくい場合は、
ウィンドウサイズを小さく設定すればある程度防げます。

これで全ての設定は完了。
ファイル → プラグイン出力 → 拡張 x264 出力 → 保存

でエンコードが始まります。(長時間かかるのも仕様です。)



プラグイン関係のトラブルについて

「○○のプラグインを導入したはずなのに動作しない!」
ということがたまにあります。
これはプラグインの優先度が関係してる可能性があります。
ファイル→環境設定→入力プラグインの優先度の設定
を選択して、使いたいプラグインを見つけて上にもっていきましょう。

例えば僕の場合、
PNGファイルを連番で書き出してAviUtlに読み込ませた際に
画面が真っ暗でお手上げ状態だったのですが、
PNGを読み込ませるプラグインを上位にもってきたら
正常に読み込ませることが出来ました。 お試しください。



ムービークリップシンボルのエンコ対処法

1.おとなしく有料ソフトを使う

エンコ神のyama_koさんがこれをオススメしてました。
これで変換出来ないものはなさそうです。
さっきからやたらyama_koさんの話題を出しますが、
彼は神だから仕方ないんです。神なら仕方ない。


2.ムービークリップをグラフィックに置き換える

自分で製作してflaファイルが手元にある場合は、
諸悪の根源であるムービークリップを取り除く手もあります。
これはI.C.yasさんが全て自動で変換できるjsflを作られていたので
処理は重いでしょうが、割と手数をかけずに置き換えられそうです。

jsflって何よ?って人は同じくやっさんの記事を参照のこと。



最後に

お疲れ様でした。うまくエンコード出来ましたか?
え、出来ない…? おぉふ……。


これで一応エンコの環境は出来上がったかもしれませんが、
エンコードは奥が深すぎて、ビットレートを落としながらも
高品質を保つべく職人さんが毎日魂を燃やしております。

もう、その様は本当に職人そのものです。


ここで学んだものはあくまで方法だけ。
次は仕組みを理解して、高度な設定を出来るようになりましょう。

風鈴さんの記事 へ、バトンタッチ。


すごく面白くまとめられているので、抵抗も少ないと思います。



田井中律は俺の嫁

これもエンコードより遥かに重要なので覚えておきましょう。



以上。


efefect at 00:47コメント(4)トラックバック(1)Flash  

トラックバックURL

トラックバック一覧

1. えふぇくとさんの記事が素晴らしい件  [ yama-ko.net blog ]   September 15, 2010 21:09
efefect blog:swf (avi)を高画質でmp4にエンコードする手順 非常に困難を極める「Flashの動画変換」ですが、非常に分かりやすい記事を書かれたのでご紹介いたします。私の文章と違ってとっ...

コメント一覧

1. Posted by あまんちゅ   September 16, 2010 07:59
5 エンコのことより重要なことはよくわかってるので安心してくださいwww
2. Posted by √Effect   September 16, 2010 13:02
えへえへ、つい…すみませんw
3. Posted by VideoHsu   November 06, 2010 15:08
.M. Magic Swf2Aviは、極めて強大的なFlash(swf) 転換ソフトウェアであり、 SWFをAVI 及び他の常用フォーマットに転換できる。当該ソフトウェアは、swfを移動ビデオプレーヤーの対応するavi、3gp、mp4、mp3、PSP、PS3、 iPod、iPhone、 アップルテレビ、XBOX 360、PS3、Zuneなど及びCD、VCD、DVD若しくはブルー・レイプレーヤーに転換するため、設計されたものである。

詳細は・・・
http://www.effectmatrix.jp/product-Swf2Avi.html
4. Posted by xiangxiang   December 29, 2010 12:56
動画・音声を変換可能
Bros 動画変換は高画質かつ便利な動画変換ソフトとして、ASF、AVI、
MOV、MP4、WMV、FLV、MPGなどの動画形式の間に相互変換できます。また、MP3、MP2、WMA、WAV、M4A、AAC、AC3、FLAC、AU、AMR、AIFFなどの音声形式の間にも変換できます。
動画から人気音楽を抽出する
動画変換君は高速の変換機能が備えていますから大変助けます。AVI、ASF、MP4、MOV、FLV、DivX、Xvid、MPEG1、MPEG2などの動画形式からMP3、MP2、AC3、WMA、WAV、M4A、FLACなどの音声形式を抽出することも実現できるようになります。

コメントする

このブログにコメントするにはログインが必要です。

r_Effect
構成の凝った動画が好み。
律が大好き。




探偵オペラ ミルキィホームズ

探偵オペラ ミルキィホームズ
月別アーカイブ
カテゴリ別アーカイブ
  • ライブドアブログ