クリックPAPAのPC備忘録

hiroyukip.exblog.jp

PS3 Media Serverで再生できなかった動画達

c0050265_3254125.png

かつてPS3 Media Server経由で再生しようとしたら、PlayStation 3で再生できなかったり、トランスコード再生になってしまった動画達を無理やり再生させたときのメモやバッチファイルが出てきたので、投稿。基本的には、WindowsであれLinuxであれ、FFmpegだけで解決できる。
まずは1本目、AVIコンテナのファイルで、FFmpegで確認したところ、映像コーデックのFourCCがFMP4(0x34504D46)、音声コーデックがMP2という古い動画。MPlayerで再生できても、プレステでは再生できなかった。





FMP4とはFFmpegによるMPEG-4の一種で、おそらくプレステがこいつを理解しなかったのが原因。じゃあ、これを同じ穴のムジナであるDivX5に詐称したら再生できるだろうか。

ffmpeg -i "けしからん1.avi" -f avi -codec copy -vtag DX50 "けしからん1.divx"

再エンコードは一切しないため、アッという間に終わる。生成した動画ファイルは、プレステでトランスコードなしに問題なく再生できた。
お次は、よくある映像XviD+音声VorbisのAVIファイル。これは音声だけ非対応なので、手堅くMP3に再エンコード。

ffmpeg -i "けしからん2.avi" -vcodec copy -acodec mp3 -b:a 64k "けしからん2new.avi"

-b:a 64kとは、音声はビットレート64kで再エンコードしてよっていうコマンドラインオプションなんだけど、これは確か元ファイルがそうだったから。再エンコ後の動画は無事再生できた。
お次は、FC2動画からJDownloaderでダウンロードした動画で、拡張子は「.mp4」とプレステが対応しているMP4コンテナっぽいんだけど、何故かトランスコードになる。FFmpegで見ると、この拡張子はウソで、実際はFLVコンテナの映像H.264/MPEG-4 AVC+音声MP3又はMPEG-4 AAC。だから、本来の拡張子は「.f4v」であるべきなので、とりあえず拡張子を「.f4v」に変更する。すると、PS3 Media Serverからも取り扱えない形式になる。面白い。それはさておき、プレステには、H.264はMP4コンテナでなければならない、MP4コンテナの音声はAACでなければならない、という変な拘りがあるようなので、音声MP3のときは、そのように変換する。

ffmpeg -i "けしからん3.f4v" -vcodec copy -acodec libfaac -b:a 64k "けしからん3.mp4"

問題なく再生できた。ただし、FFmpegのビルドによっては、-acodec libfaacではエラーで弾かれるので、-acodec aac -strict -2としなければいけない場合がある。
また、音声AACのときは、コンテナを載せ替えるだけで再エンコードしない。

ffmpeg -i "けしからん4.f4v" -codec copy "けしからん4.mp4"

最後。これはPS3 Media Serverはあまり関係ないんだけど、YouTubeからMozilla Firefox又はSeaMonkeyFlashGotでダウンロードしたhd1080のvideo/mp4ファイルが「videoplayback」という拡張子のないファイル名で再生できない、また、同じ動画で250kのaudio/mp4も「videoplayback」という拡張子のない同じファイル名で再生できない。これは、映像と音声を分離(demux)しているからで、まず、映像ファイルをダウンロードしたら「videoplayback.m4v」と拡張子を付与するよう名前変更し、次に音声ファイルをダウンロードしたら「videoplayback.m4a」と拡張子を付与するよう名前変更し、この2ファイルを結合(mux)。

ffmpeg -i videoplayback.m4v -i videoplayback.m4a -codec copy "HOGEMETAL - Gimme fuga!! - Live Music Video.mp4"

当然だけど、動画は合法なダウンロードだけにしようね!絶対だからね!


[PR]

by hiroyuki_papa | 2014-10-14 15:44 | コンピュータ

<< エキサイトブログにログインでき... | ホーム | 動画ファイルの結合 >>