Behalten Sie bei Verwendung des Videofilters für 360 Video in ffmpeg gleichseitige Rechteckdaten bei

662
JFK

Ich habe ein 360 ° -Video und möchte es mit ffmpeg seitwärts verschieben, sodass der Standardansichtspunkt beim Öffnen des Videos in einem Player verschoben wird. Ich habe diese Frage ( Wie kann ich ein Video horizontal in ffmpeg verschieben? ) Gefunden werden, die mir dabei geholfen hat, die Verschiebung durchzuführen. Wenn ich jedoch auf diese Weise das Video verschiebe, verschieben sich die Seitendaten des Videos (das die Information enthält, dass es im gleichwinkligen Format vorliegt.) ) ist weg.

Dies ist der relevante Teil aus ffprobemeiner Eingabedatei:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.83.100 Duration: 00:00:05.01, start: 0.000000, bitrate: 57592 kb/s Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p(pc), 3840x1920 [SAR 1:1 DAR 2:1], 57515 kb/s, 29.95 fps, 29.95 tbr, 29948 tbn, 59.90 tbc (default) Metadata: handler_name : VideoHandler Side data: spherical: equirectangular (0.000000/0.000000/0.000000)

Dann benutze ich den Overlay-Filter wie im Link oben beschrieben:

ffmpeg -i test.mp4 -filter_complex "[0:v][0:v]overlay=960:0[bg]; [bg][0:v]overlay=960-W,format=yuvj420p[out]" -map "[out]" -map 0:a -c:v libx264 -crf 0 -c:a copy test_shifted.mp4

Die Ergebnisdatei enthält nicht die gleichseitigen Daten:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_shifted.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.83.100 Duration: 00:00:05.01, start: 0.000000, bitrate: 245636 kb/s Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuvj420p(pc), 3840x1920 [SAR 1:1 DAR 2:1], 245758 kb/s, 29.95 fps, 29.95 tbr, 14974 tbn, 59.90 tbc (default) Metadata: handler_name : VideoHandler

Ich untersuchte diese Frage ( https://stackoverflow.com/questions/44760588/preserving-side-data-information-for-360-video-transcoding-using-ffmpeg ) und versuchte die dort genannten Ansätze ( keepsideflag, -strict unofficial), aber die question selbst befasst sich mit dem Kopieren von Streams und nichts scheint zu funktionieren, wenn der Filter für den Videostream verwendet wird.

Ich verwende ffmpeg version 3.4.4-0ubuntu0.18.04.1. Wenn mir jemand helfen kann, meine Metadaten zu behalten, wäre ich sehr dankbar!

3

0 Antworten auf die Frage