Konvertieren Sie horizontal nebeneinander in vertikal gestapeltes 3D-Video

Ich habe diesen und diesen Beitrag gesehen, in dem erklärt wird, wie man Videos mit ffmpeg.

Meine Frage ist - gibt es einen einfachen (vorzugsweise einen Schritt) Weg, um ein horizontal gestapeltes Video in ein vertikal gestapeltes umzuwandeln?

Und gibt es eine Linux-Möglichkeit, bestimmte 3D-Videoformate in andere umzucodieren?

Bearbeiten:

Mit Mulvyas Hilfe habe ich ein Skript geschrieben , das die Konvertierung erledigt und eine Textdatei mit Metainformationen erstellt, die vom Gear VR-Videoplayer benötigt werden.

ffmpegHinweis: Für den Filter benötigen Sie eine aktuelle Version von vstack- Version 2.6, die mit Fedora 22 installiert wird, ist zu alt. Version 2.8.3 ist vstackverfügbar.

Antworten (1)

Integrieren Sie einfach alle Filter in einen Befehl:

ffmpeg -i input.mp4 \
-filter_complex "[0:v]crop=in_w/2:in_h:0:0 [top]; \ 
[0:v]crop=in_w/2:in_h:in_w/2:0[bottom]; \
[top][bottom]vstack[outv]" \
-map "[outv]" -map 0:a -c:a copy output_3dv.mp4

Bearbeiten: Dieser Befehl unten skaliert und füllt die Ausgabe auf 2000 x 2000 auf

ffmpeg -i input.mp4 \
-filter_complex "[0:v]crop=in_w/2:in_h:0:0 [top]; \
[0:v]crop=in_w/2:in_h:in_w/2:0[bottom]; \
[top][bottom]vstack,\
scale=iw*min(2000/iw\,2000/ih):ih*min(2000/iw\,2000/ih), \
pad=2000:2000:(ow-iw)/2:(oh-ih)/2[outv]" \
-map "[outv]" -map 0:a -c:a copy output_3dv.mp4
Ich habe ein Quellvideo mit dem Namen input.mp4, das ich zuerst in left.mp4und umwandle right.mp4. Wenn ich verstehe, geht Ihr Befehl davon aus, dass diese Dateien überhaupt existieren.
modifiziert für Einzeleingabe
Kannst du den Ausgang auch gleichzeitig skalieren und auffüllen?
sicher. was willst du machen?
Ich möchte die quadrierte Ausgabe auffüllen (gleiche Breite wie Höhe). Momentan laufe ich -vf "pad=width=in_h:height=in_h:x=in_w/2:y=0:color=black"über die Ausgabe. Und zusätzlich hätte ich gerne eine feste Breite (und Höhe) von zB 2000 Pixel
Wollten Sie das Video auch skalieren?