2016-05-25 12 views
0

neu zuordnen Ich bin daran interessiert, mehrere (6) MP4-Videos in ein hochauflösendes Abschlussvideo gemäß den berechneten Nachschlagetabellen neu zu ordnen. Die Idee ist, 6 unabhängige Videos in einem 360 ° Video nach einer equirectangularen Projektion zu konvertieren.Mehrfache Mp4 Videos in ein einzelnes mit ffmpeg

Equirectangular image example Example of equirectangular video here

Gibt es eine Möglichkeit, diese Neuzuordnung mit ffmpeg oder einem anderen Linux-Programm zu tun? Momentan entpacke ich alle Frames aus den Videos, erstelle die equirectangularen Einzelbilder und verbinde sie wieder zu einem Video. Es muss einen besseren Weg dafür sein ...

UPDATE:

Nach Mulyva der Vorschlag, den ich zuerst jedes einzelne Video Neuzuordnung des Remap-Filter. Diejenigen Teile des Panorama-Videos nicht abgedeckt sind wie chromakey Pixel interpretiert werden:

ffmpeg -i videos/camera1.MP4 -i camera0_map_x_radius5.pgm -i camera0_map_y_radius5.pgm -lavfi remap -qscale 1 out0.MP4 

Camera0

Camera1

Dann ich versuche, sie zu überlagern mit dem chomakey Filter:

ffmpeg -i out0.MP4 -i out1.MP4 -filter_complex "[1:v]chromakey=0x12da11:0.2:0.2[chromakey_res];[0:v][chromakey_res]overlay=eof_action=pass[out]" -map "[out]" out.mp4 

Wie Sie sehen können, hat das Endergebnis einen unerwünschten grünen Schatten. Irgendeine Idee, wie man es entfernt?

Result

+0

Haben Sie bei der [remap] sah (https: //trac.ffmpeg. org/wiki/RemapFilter) Filter? – Mulvya

+0

Ja, es tut was ich will teilweise, weil ich mehrere Eingabedateien anstelle eines einzigen habe ... Vielleicht könnte ich mehrere Ausgabevideos erzeugen und dann versuchen, sie zu überlagern, aber ich müsste für jedes Video "transparente" Regionen angeben , dass ich keine Ahnung habe, wie es geht. –

+0

Sie können den 'geq' Filter verwenden, um den schwarzen Randbereichen' 0' Alpha und an anderer Stelle '1' zuzuordnen. Wie [hier] (http://stackoverflow.com/q/38578363/5726027). Abhängig von der Verarbeitungsgeschwindigkeit des Remap-Filters können Sie dies möglicherweise in einem Befehl mit mehreren Remap-Instanzen tun. – Mulvya

Antwort

4

# 1 einzelne Videos generieren.

ffmpeg -i camera0.mp4 -i camera0_map_x_radius5.pgm -i camera0_map_y_radius5.pgm 
     -filter_complex "color=white:2704x2028[c];[0]format=rgb24,split[vm][va]; 
     [va][c]overlay=shortest=1:format=rgb[ac]; 
     [vm][1][2]remap[m]; 
     [ac][1][2]remap[a]; 
     [m][a]alphamerge" 
     -c:v qtrle c0.mov 

Dies erstellt ein neu zugeordnetes Video mit einem ausgerichteten Alphakanal.

# 2 Overlay remapped Videos

ffmpeg -i c0.Mov -i c1.Mov -i c2.mov -i c3.mov -i c4.mov -i c5.mov 
     -filter_complex 
     "[0][1]overlay=eof_action=pass[a]; 
      [a][2]overlay=eof_action=pass[b]; 
      [b][3]overlay=eof_action=pass[c]; 
      [c][4]overlay=eof_action=pass[d]; 
      [d][5]overlay=eof_action=pass" out.mp4 

(Sie können Fifo-Filter benötigen, wenn die Verarbeitung langsam ist)

+0

Fantastisch, genau das brauche ich und die Ergebnisse sind perfekt. Vielen Dank für Ihre Hilfe –