ニコニコ動画のmp4ファイルの再生(改)

前に書いたエントリに意外に多くのアクセス*1があったので、改めて書いてみるテスト。今度はちょっと詳しく書いたよ!

動画形式についていまいちよくわからない、という方は、拙作の過去エントリをご覧頂ければ

はじめに

ニコニコ動画から持ってきた mp4 ファイル(H.264 形式)は、そのままでは MPEG4 ファイルの標準的なプレーヤーである Quicktime で再生できませんが、簡単な操作で再生を可能にする方法を二種類、紹介します。どちらも無劣化での変換・再生が可能です。


VLC Playerを使う

おそらく最も簡単にファイルを再生できる手法です。

再生可能なコーデック種も非常に多く、ごく一部の界隈では非常に有名なソフトです*2。なお、ニコ動の中でも flv に使われている VP6* 系の On2 社製コーデックにはまだ対応できていないようで*3、ニコ動から拾ってきた flv ファイルは再生できないと考えた方がいいようです*4

  1. 公式サイト www.videolan.org からダウンロード*5
  2. インストール
  3. 起動してドラッグ&ドロップで再生

以上!


Quicktime で再生する

Quicktime といえば MPEG4 ファイルの標準的なプレーヤーであり、iTunes のヒットもあって既に多くのコンピューターにインストールされているので、再生に限っては比較的簡単な方法ではないかと。

必要なもの

iTunesが入っていればQuicktimeは入っているはず。再生に必要なので、無ければAppleからダウンロード。無料版で問題ないので、うっかりPro版とか買わないように注意。

ffmpegの調達

お気に入りの動画を携帯で見よう の中の人が親切にも Windows 対応版を配布してくれているので、ここから持ってくる。

現時点での最新ビルドは Rev.14537。無印、Pentium4最適化版*6Athlon64*7最適化版の三種類が配布されているので、使ってるマシンのCPUに応じたものをダウンロードして解凍。わからなければ無印をダウンロードすればいい*8

適当な場所にダウンロードし、解凍すると ffmpeg.exe が出てくるので、これを

C:\ffmpeg

とかのフォルダを作って、そこに移動。

変換作業

以下の手順は XP 基準。2000でも概ね同じですが、Vistaは触ったことがないのでわかりません。9x/Me系では cmd ではなく、 command で同じ画面になるはず。

  • ニコ動から持ってきた mp4 ファイルを c:\ffmpeg にコピー。とりあえず、説明上 video.mp4 というファイル名で話を進めるので適宜置換してください。
  • スタートメニューから「ファイル名を指定して実行(R)」を選択し、 cmd と入力。
  • 黒い背景の画面が出てきて、

C:\Documents and Settings\(ユーザ名)>

と出るので、

C:\Documents and Settings\(ユーザ名)>cd /d c:\ffmpeg

と入力。続けて

c:\ffmpeg>ffmpeg.exe -y -acodec copy -vcodec copy -i video.mp4 video.mov

と入力して Enter を押下。一瞬、ざっと白文字が流れるが、すぐに止まって video.mov が出来ているので、これを Quicktimeで再生すればOK。

なお、ffmpeg の引数構文は、

ffmpeg.exe -y(自動上書き) -acodec copy(音声コーデックは元ファイルを引き継ぐ) -vcodec copy(映像コーデックは元ファイルを引き継ぐ) <-i 入力ファイル名> <出力ファイル名>

となっており、拡張子を認識して自動でコンテナ形式を決めてくれるので、出力ファイルの拡張子を Quicktime 標準の .mov に指定すればOK。

バッチファイル

次のコードをメモ帳にコピーして、 C:\ffmpegffmpeg.exe と同じフォルダ)に mp42mov.bat というファイル名で保存します。
そして、 C:\ffmpeg に保存してある mp4 ファイルをこのバッチファイルにドラッグ&ドロップしてやると、自動的に C:\ffmpeg\out 以下に変換された mov ファイルが蓄積されますので、案外便利です。

@echo off
cd /d "%~dp1"
if not exist out\nul (
	mkdir "out"
	if errorlevel 1 goto error
)
ffmpeg -y -i "%1" -acodec copy -vcodec copy "out\%~n1.mov"

rem start out\"%~n1.mov"

exit

:error
echo "出力フォルダを作成できませんでした。終了します。"
pause
exit

変換後、自動的に再生を始めたい場合は、9行目の頭にある rem を取り除いてください。
バッチファイルは今時使う人が凄く少ないですが、使いようによってはお手軽便利です。

音声編

調子に乗って音声抽出もやってみる。

mp4 ファイルから音声のみを抽出する場合、抽出した音声ファイルの拡張子は .m4a になります*9。これだとダブルクリックで Quicktime で再生できたり、他のアプリケーションで二次利用もOK。

ffmpeg のコマンド操作は

c:\ffmpeg>ffmpeg.exe -y -acodec copy -vn -i video.mp4 video.m4a

となります。これをバッチファイルで処理する場合のコードは、

@echo off
cd /d "%~dp1"
if not exist out\nul (
	mkdir "out"
	if errorlevel 1 goto error
)
ffmpeg -y -i "%1" -acodec copy -vn "out\%~n1.m4a"

rem start out\"%~n1.m4a"

exit

:error
echo "出力フォルダを作成できませんでした。終了します。"
pause
exit

となります。これも先ほどと同様、ffmpeg.exe と同じフォルダに mp42m4a.bat などとして保存し、 .mp4 ファイルをドラッグ&ドロップしてやれば、音声の .m4a ファイルが .\out 以下に出力されます。

以上、どうぞご利用ください。

脚注

*1:主にYahoo/google経由で

*2:多数のOSで稼働するので、マルチメディア再生系ソフトの少ないLinux系コミュニティでは結構有名。

*3:次期メジャーバージョンアップ 0.9 系列で対応予定。

*4:一部 Sorenson H.263 コーデックを使っている flv があるので、それについては再生可能みたい。

*5:現時点での最新版は 0.8.6i

*6:Core 2 シリーズはこちらでOK

*7:Athlon系、Opteron系はこちら

*8:最適化の利点はエンコードに要する時間がほんの少し早くなるくらいの効果なので、特に違いはない。

*9:他でもいいことが多いけど、一番確実なのは m4a