3D動画実験場

実験の動機

うごくメモ帳3Dでは、3D立体視を表現に組み込むことができます。

立体視対応デバイスはあまり普及しているとは思えず、このサイトのゆるいアニメページでも立体視表現は削除しています。

ここでは、Newニンテンドー3DSで閲覧するつもりで作った立体視入りの動画ファイルを試験的に公開しています。

ニンテンドー3DSカメラと、フジフイルムの3Dカメラで作った動画も置いてあります。

テストA うごメモ3DのAVI→H.264 3D

互換性を優先した変換設定です。H.264です。2Dデバイスでは動画が左右に並びます。動画は平行法で並べてあります。

New3DSなら3Dで再生できます。

テストB うごメモ3DのAVI→何もしない

うごメモ3DのAVIを直アップです。乱暴ですね。

旧3DSで再生する方法もあります。このファイルをダウンロードして、3DSのSDカードのDCIMフォルダーに「3桁の数字+5文字のアルファベット」を名付けたフォルダを作り、その中に入れれば3DSカメラで再生できます。

テストC ニンテンドー3DSカメラ→H.264 3D

ニンテンドー3DSカメラで撮影したものを、H.264の3D動画に変換しました。

撮影日 2013/6/4 10:50:44

撮影日 2013/5/6 18:06:30

撮影日 2013/6/15 17:44:30

テストD フジ FinePix REAL 3D W1→H.264 3D

フジフイルムの3Dカメラ「FinePix REAL 3D W1」で撮影した動画を、H.264の3D動画に変換しました。

AVIコンテナ内に左目用ビデオ、オーディオ、右目用ビデオが格納されています。これは3DSのAVIと同じような構成です。ビデオはMotion JPEGで、解像度がVGAです。それが2画面分あります。音声はLPCMのステレオで、サンプリングレートが11025Hzです。ビデオにビットレートを振ったせいか、音声の品質が犠牲になっています。

撮影日 2024/6/29 18:55

結果

New ニンテンドー3DSは、暗号化通信の検証に失敗した状態では動画の再生ができません。HTTP→HTTPSにリダイレクトを設定していると、知らず知らずのうちにこの問題にハマることがあります。

New ニンテンドー3DSなら、テストA~Dのすべての3D動画が問題なく再生・立体視できました。

資料

テストAの作り方

ffmpegを用意して、CUIを立ち上げて、以下のコマンドを打ちます。

ffmpeg -i HNI_0029.AVI -strict unofficial -movflags +faststart -filter_complex color=s=768x480[base];[0:0]setpts=PTS-STARTPTS,scale=384:480[left],[0:2]setpts=PTS-STARTPTS,scale=384:480[right];[base][left]overlay=0:0:shortest=1[wh2];[wh2][right]overlay=w:0:shortest=1 -pix_fmt yuv420p -g 75 -sc_threshold 0 -c:v libx264 -x264opts "frame-packing=3" -tune fastdecode,zerolatency -profile:v main -level 3.2 -c:a libfdk_aac -b:v 512k HNI_0029.MP4

テストBの作り方

ffmpegを用意せず、CUIも立ち上げず、3DSからAVIを抜き取ってサーバーに上げるだけです。

テストCの作り方

ffmpegを用意して、CUIを立ち上げて、以下のコマンドを打ちます。うごメモAVIと解像度が異なるため、動画の並べ方を変えてあります。

ffmpeg -i HNI_0057.AVI -strict unofficial -movflags +faststart -filter_complex color=s=864x480[base];[0:0]setpts=PTS-STARTPTS,scale=864:240[left],[0:2]setpts=PTS-STARTPTS,scale=864:240[right];[base][left]overlay=0:0:shortest=1[wh2];[wh2][right]overlay=0:h:shortest=1 -pix_fmt yuv420p -g 75 -sc_threshold 0 -c:v libx264 -x264opts "frame-packing=4" -tune fastdecode,zerolatency -profile:v main -level 3.2 -c:a libfdk_aac -b:v 512k HNI_0057.MP4

テストDの作り方

テストCの変形です。Newニンテンドー3DSが許容する864x480の解像度に合わせるため、リサイズのパラメーターを変更しています。

ffmpeg -i DSCF9108.AVI -strict unofficial -movflags +faststart -filter_complex color=s=640x480[base];[0:0]setpts=PTS-STARTPTS,scale=640:240[left],[0:2]setpts=PTS-STARTPTS,scale=640:240[right];[base][left]overlay=0:0:shortest=1[wh2];[wh2][right]overlay=0:h:shortest=1 -pix_fmt yuv420p -g 120 -sc_threshold 0 -c:v libx264 -x264opts "frame-packing=4" -profile:v main -level 3.2 -c:a libfdk_aac -b:v 860k DSCF9108.MP4