2013-02-19 6 views
9

Ich versuche, einige Videos mit einem iDevice zu reparieren. Die Videos haben eine Rotation in den Metadaten, die nur von Apple und seiner Software verstanden wird, aber niemand sonst. Das zu beheben ist ziemlich einfach, aber ich möchte auch die anderen Metadaten in den Dateien behalten wie die Geolocation.ffmpeg kopiert keine benutzerdefinierten Metadaten

ich ein paar Versionen versucht, alle mit dem gleichen Ergebnis, wie zB:

ffmpeg -i input.mov -vf vflip,hflip -map_metadata 0 -metadata:s:v:0 rotate=0 -acodec copy output.mp4 

Diese funktionieren soll, gibt es bereits die korrekte Vorschau von Metadaten:

ffmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers 
built on Feb 8 2013 23:55:22 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn) 
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid 
libavutil  52. 13.100/52. 13.100 
libavcodec  54. 86.100/54. 86.100 
libavformat 54. 59.106/54. 59.106 
libavdevice 54. 3.102/54. 3.102 
libavfilter  3. 32.100/3. 32.100 
libswscale  2. 1.103/2. 1.103 
libswresample 0. 17.102/0. 17.102 
libpostproc 52. 2.100/52. 2.100 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2013-02-17 00.39.36.mov': 
    Metadata: 
    major_brand  : qt 
    minor_version : 0 
    compatible_brands: qt 
    creation_time : 2013-02-16 23:39:25 
    model   : iPhone 5 
    model-deu  : iPhone 5 
    encoder   : 6.1 
    encoder-deu  : 6.1 
    date   : 2013-02-17T00:39:25+0100 
    date-deu  : 2013-02-17T00:39:25+0100 
    location  : +48.2683+007.7205+172.710/ 
    location-deu : +48.2683+007.7205+172.710/ 
    make   : Apple 
    make-deu  : Apple 
    Duration: 00:00:09.67, start: 0.000000, bitrate: 16764 kb/s 
    Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1920x1080, 16696 kb/s, 24 fps, 24 tbr, 600 tbn, 1200 tbc 
    Metadata: 
     rotate   : 180 
     creation_time : 2013-02-16 23:39:25 
     handler_name : Core Media Data Handler 
    Stream #0:1(und): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 61 kb/s 
    Metadata: 
     creation_time : 2013-02-16 23:39:25 
     handler_name : Core Media Data Handler 
w:1920 h:1080 pixfmt:yuv420p tb:1/600 fr:24/1 sar:0/1 sws_param:flags=2 
[libx264 @ 0x7fc248829a00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX 
[libx264 @ 0x7fc248829a00] profile High, level 4.0 
[libx264 @ 0x7fc248829a00] 264 - core 125 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 

Output #0, mp4, to 'output.mp4': 
Metadata: 
    major_brand  : qt 
    minor_version : 0 
    compatible_brands: qt 
    creation_time : 2013-02-16 23:39:25 
    model   : iPhone 5 
    model-deu  : iPhone 5 
    encoder-deu  : 6.1 
    date   : 2013-02-17T00:39:25+0100 
    date-deu  : 2013-02-17T00:39:25+0100 
    location  : +48.2683+007.7205+172.710/ 
    location-deu : +48.2683+007.7205+172.710/ 
    make   : Apple 
    make-deu  : Apple 
    encoder   : Lavf54.59.106 
Stream #0:0(und): Video: h264 ([33][0][0][0]/0x0021), yuv420p, 1920x1080, q=-1--1, 12288 tbn, 24 tbc 
Metadata: 
    handler_name : Core Media Data Handler 
    creation_time : 2013-02-16 23:39:25 
    rotate   : 0 
Stream #0:1(und): Audio: aac ([64][0][0][0]/0x0040), 44100 Hz, mono, 61 kb/s 
Metadata: 
    creation_time : 2013-02-16 23:39:25 
    handler_name : Core Media Data Handler 
Stream mapping: 
    Stream #0:0 -> #0:0 (h264 -> libx264) 
    Stream #0:1 -> #0:1 (copy) 

Aber die resultierenden Datei einige dieser Metadaten-Tags hält nur:

ffmpeg -i output.mp4 

zeigt:

fmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers 
    built on Feb 8 2013 23:55:22 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn) 
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.1.2 --enable-shared --enable-pthreads - -enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid 
libavutil  52. 13.100/52. 13.100 
libavcodec  54. 86.100/54. 86.100 
libavformat 54. 59.106/54. 59.106 
libavdevice 54. 3.102/54. 3.102 
libavfilter  3. 32.100/3. 32.100 
libswscale  2. 1.103/2. 1.103 
libswresample 0. 17.102/0. 17.102 
libpostproc 52. 2.100/52. 2.100 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4': 
Metadata: 
    major_brand  : isom 
    minor_version : 512 
    compatible_brands: isomiso2mp41 
    creation_time : 2013-02-16 23:39:25 
    date   : 2013-02-17T00:39:25+0100 
    encoder   : Lavf54.59.106 
Duration: 00:00:09.67, start: 0.000000, bitrate: 3286 kb/s 
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v/0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 3219 kb/s, 24 fps, 24 tbr, 12288 tbn, 24 tbc 
    Metadata: 
    creation_time : 2013-02-16 23:39:25 
    handler_name : VideoHandler 
    Stream #0:1(und): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 61 kb/s 
    Metadata: 
    creation_time : 2013-02-16 23:39:25 
    handler_name : SoundHandler 

Ich versuchte auch in der Folge ohne Änderung mit

-metadata:g location=+48.2683+007.7205+172.710/ 

von Hand den einen Tag Ich habe Interesse hinzuzufügen.

Ausgabe als .mov ändert nichts, auch nicht.

Gibt es einen Trick, um nicht standardmäßige Metadaten hinzuzufügen? Wie bekomme ich den Standort zurück?

Vielen Dank im Voraus an alle, die einen Einblick geben können.

+0

Sie die ffmpeg Konsolenausgabe getrimmt, die potentiell nützliche Informationen ausschneidet. – LordNeckbeard

+0

Ich habe jetzt alle Ausgaben hinzugefügt, hoffentlich hilft es, das Problem zu finden – e110c0

Antwort

1

Der FFmpeg mp4 Muxer schreibt nur eine Auswahlliste bekannter Metadatentypen. Einige Muxer, wie AVI, schreiben alle Metadatenfelder mit benutzerdefinierten Tags (teilweise, um solche Remuxing-Anwendungsfälle zuzulassen), aber movenc.c tut dies noch nicht (siehe Code-Blöcke in Zeile 2911 oder 3064). Sie könnten es möglicherweise selbst implementieren.