ニコニコ動画に高画質動画をアップする方法

ニコニコ動画(原宿)

(2010/10/29 22:04) ニコニコ動画(原宿)に対応しました。直前の更新で加筆したものは緑色太字で、削除された記述は赤色取消線で表示しています。

はじめに

このページでは、ニコニコ動画(原宿)に(正確にはSMILEVIDEOに)FLV形式で高画質の動画をアップロードすることを目的とし、その方法を検証しています。

スクリーンショットはクリックすると拡大します。情報の真偽、再現性は保証できません。ページの作成に当たっては次のサイトを参考にしています。

検証するにあたり素材はSkittlesを利用させていただきました。

ニコニコ動画(原宿)の仕様

ニコニコ動画へ動画を投稿するサービス「SMILEVIDEO」のSMILEVIDEOはニコニコ動画に統合されました。ニコニコ動画のアップロードページには次のように掲載されています。

  • H.264/AVC(MP4)またはFLV形式のみ1ファイル40MBまで(最大ビットレート600kbps)
  • その他形式(MPEG1、MPEG2、MPEG4、WMV、DIVX系)は1ファイル100MBまで

現在のアップロードできるファイルの仕様を見ると「その他の形式」の方がファイル容量も多く、ビットレート制限もないため高画質のアップロードができるように思われます。
が、「その他の形式」でアップロードされたファイルは自動的に再エンコードされる仕様になっているため、画質重視ならFLVファイルでのアップロードが主流となっています。

ちなみに、600kbpsのビットレート制限が加わる前は、DivX動画共有サイトStage6をしのぐ画質を実現できましたが、今のところこれと同等の画質を再現する方法は見つかっていません。現在、Stage6は閉鎖されています。

ニコニコプレミアムの仕様

ニコニコ動画がRCにバージョンアップしたことを受けて、「ニコニコプレミアム」なる有料サービスが開始。
プレミアム会員はアップロードできる動画の容量が1ファイル100MBまで(最大ビットレート制限なし)に拡張されました。以下の説明は1ファイル40MB(最大ビットレート600kbps)を基準にしたものとなっていますが、数字を適宜読み替えるだけで、同じようにアップロードできるかと思います。

プレミアム会員向けの回線は一般会員向けのものとは別の回線が用意されます。また一般会員向けの回線ではサイト混雑時に元の動画の画質に関わらず、一定の画質に下げて動画を配信しますが、プレミアム会員向けの回線では常に元の画質で視聴できるとのこと。

追記。現在画質の劣化配信は平日は18:00~、休日は12:00~翌2:00まで行われています。低画質化されるだけでなく、音声も劣化(64kbps)しています。低画質モード中は「エコノミーモードで再生中です。」というメッセージが表示されます。

プレミアム会員時の変更点のスクリーンショット

プレミアム会員になってみたので、視聴画面での変更点をスクリーンショットにしてみました。自分のアップした動画がエコノミーモードかどうかは、プレイヤー右上のアイコンの点灯でわかります。「一般回線で視聴」ボタンをクリックすることで、一般ユーザーがどんな画質で再生しているかも確認できます。
この画像はニコニコ動画(RC2)時代のものです。現在と若干表示が異なります。

画質を重視しないで簡単にアップするには

一番簡単な方法は、Windows XP付属のムービーメーカーで映像を編集し、書き出し設定を「ファイルサイズに合わせて最適化」にして100MBと入力。また、YouTubeから保存したFLVファイルは40MBに達していないことがほとんどかと思われますので、そっちからアップするなど。趣旨に反するので以下省略。

最低限必要なツール

必要なソフトウェア・コーデックは次の通り

AviUtl
AVIファイルに様々なフィルタを掛けられる。VP6を使って2回エンコードするのに必要。
rotate-0.3.0.lzh
画像を反転させるAviUtlのプラグイン。エンコード時に映像が上下反転してしまうため。
flvenc バッチファイルセット
有志が作ったffmpegファイルセット。
VP6 VFW Codec 6.2.6.0
肝となるビデオコーデック。最新版のVP7もありますが、そちらはFLVに対応していません。
LAME 3.97
音質にもこだわる場合に必要なオーディオコーデック。最新ベータ版でもいいけど、ここではLAME 3.97 Release ACM codecを。
場合によっては必要となるツール
DirectShow File Reader プラグイン for AviUtl
DirectShow入力プラグイン。AVIファイル以外をAviUtlで読み込ませたいときに必要。元ファイルがAVIでないなら必須。
黒べた追加フィルタ
タイトル通り。アスペクト比が16:9の動画の上下に黒い帯をかぶせるプラグイン。リンク先の下の方にDownloadリンクがあります。
FLVP
SMILEVIDEOにアップロードする前にローカルPCでFLVファイルを再生できるフリーソフト。IEにFlashPlayer 8以上がインストールされていることが動作条件。

インストール・解凍

AviUtl
ドライブパスの都合上、なるべく浅い階層に解凍すること。もっと言うとパス中にスペースや日本語が混ざるとややこしくなるので、ドライブ直下(例 C:¥SMILEVIDEO)がオススメ。
rotate-0.3.0.lzh
AviUtlを解凍したフォルダの中にrotate.aufを入れる。
flvenc バッチファイルセット
どこでも可。
VP6 VFW Codec 6.2.6.0
ダブルクリックでインストーラーが起動する。基本的にNext >をクリックしていれば終わる。
LAME 3.97
解凍したフォルダ内にあるLameACM.infを右クリックで、「インストール」をクリック。ハードウェアのインストール警告が出たら続行をクリック。
DirectShow File Reader プラグイン for AviUtl
AviUtlを解凍したフォルダの中にds_input.auiとsrcフォルダを入れる。
黒べた追加フィルタ
AviUtlを解凍したフォルダの中にbeta.aufを入れる。
FLVP
どこでも可。

AviUtl 0.99の不具合

AviUtl 0.99には若干バグがあるようです。ファイルメニューの環境設定→システムの設定にある「SSE2を使用」のチェックマークをオフにしておきましょう。私の環境では入れていても問題はありませんでした。

AviUtlの環境設定

AviUtlの設定

AviUtlのファイルメニューから開くを選択して、ファイルを読み込みます。DirectShow File Reader プラグインが正常に作動していれば、MPEGファイルなども正常に読み込めるはずです。

AviUtlのファイルを開くウィンドウ

次にフィルタメニューにある、「黒ベタ追加フィルタ」「画像回転」フィルタをオンにします。

AviUtlのフィルタメニュー

同様に設定メニューにある、「黒ベタ追加フィルタ」「画像回転」フィルタをオンにします。

AviUtlの設定メニュー

映像のリサイズ

設定メニューのサイズの変更→指定サイズを選択し、Xの値を512、Yの値を384に設定します。アスペクト比が16:9の動画の場合は、縦長になってしまいますのでYを288にした後、次の「黒ベタ追加フィルタ」で上下に48pxの黒帯を追加します。プレミアム会員の場合、画面解像度に制限はありませんので、この項目と、下の「黒べた追加フィルタ」を実行する必要はありません。

サイズの指定

黒ベタ追加フィルタ

アスペクト比が16:9の映像に限り、映像サイズを288pxにして、上下に48pxずつ黒帯をつけます。SMILEVIDEOニコニコ動画では512×384を超えると自動的に再エンコードされてしまいます。

黒ベタ追加フィルタ

画像回転フィルタ

最後に上下を反転します。VP6のバグ(?)で、この設定をしておかないと書き出したファイルが上下反転されるようです。

画像回転フィルタ

バッチファイルの作成と実行

ファイルメニューから「AVI出力」を選択し、スクリーンショットの通りに設定していきます。

名前を付けて保存画面

2passを使うので、このファイルは最終的に必要なくなります。なのでファイル名は適当に。音声は後で別のバッチファイルを作成するのでここでは音声を無しにします。次にビデオ圧縮をクリック。

FirstPassバッチファイルの作成

VP6設定画面

圧縮プログラムに「VP62 Heightened Sharpness Profile」を選択、設定をクリックします。設定画面のポイントはズバリBitrate。これが最初に述べた600kbpsを超えないように設定する必要があります。音声なしの動画の場合は600kbpsでもかまいません。音声がある場合はそのビットレートを差し引いた分を割り当てます。候補としては

  • 映像: 470kbps 音声: 128kbps (画質重視)
  • 映像: 340kbps 音声: 256kbps (音質重視)

などなど。こればっかりはその動画の特性(動きが速い/BGMが秀逸)を見分けて設定する必要があります。あとは2passの設定と可変ビットレートの設定を変更してOK。

名前を付けて保存画面

名前を付けて保存画面に戻ったら、保存ではなく「バッチ登録」をクリック。これでFirstPassのバッチファイルが完成。続いてSecondPassのバッチファイルを作ります。

SecondPassバッチファイルの作成

FirstPass同様、ファイルメニューから「AVI出力」を選択し、スクリーンショットの通りに設定していきます。

VP6設定画面

さっきと違うのが「ファイル名」とVP6設定の「Mode」の2点のみ。変更したら「バッチ登録」をクリックします。あと、このファイルの保存先と、次のMP3ファイルの保存先はflvencフォルダ内にしておくと、後が楽になったりします。

Lame MP3バッチファイルの作成

ファイルメニューから「WAV出力」を選択し、スクリーンショットの通りに設定していきます。

サウンドの選択画面

ファイル名に「.mp3」を付加するのを忘れずに。属性のオーディオレートは必ず44100 Hzにしてください。最後の映像と合成の部分で失敗する可能性があります。FirstPassの映像ビットレートとの合計が600kbpsを超えない値を設定します。終わったら「OK」→「バッチ登録」をクリック。

以上3つのバッチファイル登録が完了したら、ファイルメニューのバッチ出力を選択。「開始」をクリックします。ここでしばし休憩。

バッチ出力画面

映像と音声の合成

できた3つのファイルの内、SecondPassで保存したファイルと、MP3ファイルをセットでflvencフォルダの「FLV_ffmpegmux_D&D.bat」ファイルにドラッグアンドドロップします。コマンドプロンプトが立ち上がってごにょごにょ始めたら成功。

エクスプローラー

しばらく待った後、

Press [q] to stop encoding
frame= 6793 fps=848 q=0.0 Lsize=   21764kB time=283.0 bitrate= 630.0kbits/s
video:17060kB audio:4422kB global headers:0kB muxing overhead 1.314245%

続行するには何かキーを押してください . . .

で止まったら、Lsizeとbitrateの値に注目。Lsizeが40000kB以下かつ、bitrateが656.384kbps/sを超えていなければ無事完成です。(bitrateが600kbpsを超えても再エンコードを免れる理由は明らかになっていません)

映像確認・再調整

音声のずれやコマ落ちが起きていないか確認するために、flvencフォルダに出力されたflvファイルをFLVPで開いてみます。

FLVP

もし、容量やビットレートがオーバーしていた場合、AviUtlの圧縮設定を見直しましょう。容量オーバーだけの場合は、最初や最後の数フレームを削除するだけで40MBを下回ることもあります。

おわりに

最後に元動画とニコニコ動画とYouTubeにアップされている動画を比較してみます。さすがに元動画にはかないませんが、YouTubeと比べてみてもその画質の良さははっきり出ています。

比較画像

スポンサーリンク

この記事をシェアしてくださいねっ

このサイトが気に入ったらフォローしてください!