3Dムービーを2Dムービーに変換する方法を探しています。
このフォーラムで参考文献を見つけました。 http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html
3Dムービーを2Dムービーに変換する方法を探しています。
このフォーラムで参考文献を見つけました。 http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html
回答:
ffmpegのクロップフィルターを手動で使用してこれを実現できる場合もありますが、stereo3dフィルターはこの目的のために特別に設計されています。あなたが持っている正確な3Dフォーマットを指定しませんでした。上記のstereo3dリンクで説明されているように、いくつかの可能性があります。それinput.mkv
が比較的一般的なsbsl(左側に並んだ左目)であると仮定すると、
ffmpeg -i input.mkv -vf stereo3d=sbsl:ml -metadata:s:v:0 stereo_mode="mono" output.mkv
2d(左目のみ)になりoutput.mkv
ます。-metadata:s:v:0 stereo_mode="mono"
ステレオタグを削除する必要がある理由は、メタデータがフィルターシステムを介してパイプ処理されないためであり、ffmpegがオリジナルのメタデータを複製しようとするためです。これを行わない場合、一部のプレイヤーは2Dの結果が3Dであると考え、奇妙なことをすることがあります。
結果のアスペクト比が間違っていることがわかった場合は、stereo3d=sbsl2:ml
代わりに入力を半分の幅として並べて使用することを試すことができます。他のすべてが失敗した-aspect 16:9
場合は、正しいアスペクト比(または正しいアスペクト比がわかっているもの)を設定できます。
stereo3d=<input-format>:<output-format>
です。リンクされたドキュメントに従って、ml
「モノ出力(左目のみ)」を出力することを意味します。
-metadata:s:v:0 stereo_mode="mono"
ffmpeg 2.8.14で使用しようとするとエラーが発生しました。この回答を書いてからドキュメントが変更された可能性があります。前述のスイッチを削除するだけで、ffmpegはエラーなしで続行できます。-c:a copy
スイッチを使用すると、オーディオストリームの再エンコードを回避できることに注意してください。
このフォーラムで参考文献を見つけました。 http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html
ffmpeg -i './a3dmovie.mp4' -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" -y ./a2dmovie.mp4
重要な部分は -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"
それは本質的に出力を半分にし、3Dビデオに適切なように再スケーリングします。
これは出力をテストおよびチェックするのにも役立つことがわかりました
ffplay -i ./some3dmovie.mp4 -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"
次のようにして、インデックスをファイルの先頭に移動できます
-movflags faststart