Ich suche nach einer Möglichkeit, einen 3D-Film in einen 2D-Film umzuwandeln.
Ich habe in diesem Forum einen Hinweis gefunden. http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html
Während Sie dies möglicherweise durch manuelle Verwendung des Crop - Filters von ffmpeg erreichen können, wurde der Stereo3D-Filter speziell für diesen Zweck entwickelt. Sie haben nicht das genaue 3D-Format angegeben, das Sie haben. Es gibt mehrere Möglichkeiten, wie im obigen Stereo3D-Link dokumentiert. Angenommen, input.mkv
dies ist das relativ häufige sbsl (linkes Auge nebeneinander links),
ffmpeg -i input.mkv -vf stereo3d=sbsl:ml -metadata:s:v:0 stereo_mode="mono" output.mkv
ergibt ein 2d (nur linkes Auge) output.mkv
. Ich glaube, der Grund -metadata:s:v:0 stereo_mode="mono"
für das Entfernen des Stereo-Tags liegt darin, dass die Metadaten nicht durch das Filtersystem geleitet werden und ffmpeg ansonsten versucht, die Metadaten des Originals zu duplizieren. Wenn Sie dies nicht tun, denken einige Spieler möglicherweise, dass Ihr 2D-Ergebnis immer noch 3D ist, und machen seltsame Dinge.
Wenn Sie feststellen, dass das Ergebnis das falsche Seitenverhältnis hat, können Sie stereo3d=sbsl2:ml
stattdessen damit experimentieren, dass die Eingabe als Seite-an-Seite in halber Breite behandelt wird. Wenn alles andere fehlschlägt, können Sie das richtige Seitenverhältnis mit einstellen -aspect 16:9
(oder wie auch immer Sie das richtige Seitenverhältnis kennen).
Ich habe in diesem Forum einen Hinweis gefunden. 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
Der wichtige Teil ist die-vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"
Es halbiert im Wesentlichen die Ausgabe und skaliert entsprechend für das 3D-Video.
Ich fand, dass dies auch nützlich ist, um die Ausgabe zu testen und zu überprüfen
ffplay -i ./some3dmovie.mp4 -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"
Sie können den Index wie folgt an den Anfang der Datei verschieben-movflags faststart
Als Adaption von Kevmitchs Antwort ging ich mit
ffmpeg -i "foo.mkv" -vf stereo3d=sbs2l:ml -c:a copy "bar.mp4"
Bemerkenswerter Unterschied: Es verwendet sbs2l
(anstelle von sbsl2 ) und kopiert nur Audiostreams (funktioniert bei mir). Weiterführende Literatur zu stereo3d
Älterer Geek
kevmitch
stereo3d=<input-format>:<output-format>
. Gemäß der verknüpften Dokumentationml
bedeutet dies, "Mono-Ausgang (nur linkes Auge)" auszugeben.Älterer Geek
-metadata:s:v:0 stereo_mode="mono"
mit ffmpeg 2.8.14 zu verwenden. Anscheinend hat sich die Dokumentation geändert, seit Sie diese Antwort geschrieben haben. Durch einfaches Entfernen der oben genannten Schalter konnte ffmpeg ohne Fehler fortgesetzt werden. Beachten Sie, dass Sie die Neucodierung des Audiostreams vermeiden können, indem Sie den-c:a copy
Schalter verwenden.