[FFmpeg-trac] #6800(avformat:new): Keep MOV tags in "meta" atom during transcode

FFmpeg trac at avcodec.org
Thu Nov 2 22:24:10 EET 2017


#6800: Keep MOV tags in "meta" atom during transcode
-------------------------------------+-------------------------------------
             Reporter:  Zenitram     |                     Type:
               Status:  new          |  enhancement
            Component:  avformat     |                 Priority:  normal
             Keywords:  bounty tags  |                  Version:  git-
             Blocking:               |  master
Analyzed by developer:  0            |               Blocked By:
                                     |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 Some tags in "moov"/"udta" atom (e.g. "©nam", but not "©src") are kept
 during a transcode from MOV to MOV, but all tags in "moov"/"meta" atom are
 discarded, despite the fact they are listed in the Output section during
 transcode:

 How to reproduce:
 {{{
 % ffmpeg -i input.mov output.mov
 ffmpeg version N-88514-gd5995c531d Copyright (c) 2000-2017 the FFmpeg
 developers
   built with gcc 7.2.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
 --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-
 libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy
 --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx
 --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp
 --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid
 --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-
 libmfx
   libavutil      56.  0.100 / 56.  0.100
   libavcodec     58.  1.100 / 58.  1.100
   libavformat    58.  0.102 / 58.  0.102
   libavdevice    58.  0.100 / 58.  0.100
   libavfilter     7.  0.101 /  7.  0.101
   libswscale      5.  0.101 /  5.  0.101
   libswresample   3.  0.101 /  3.  0.101
   libpostproc    55.  0.100 / 55.  0.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     title           : test nam
     encoder         : Lavf58.0.102
     net.mediaarea.blablablabla01: test    1
     net.mediaarea.blablabla02: test       2
   Duration: 00:00:00.04, start: 0.000000, bitrate: 465 kb/s
     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
 320x240 [SAR 1:1 DAR 4:3], 264 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
 (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc58.1.100 libx264
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [libx264 @ 000001f556dceb20] using SAR=1/1
 [libx264 @ 000001f556dceb20] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
 [libx264 @ 000001f556dceb20] profile High, level 1.3
 [libx264 @ 000001f556dceb20] 264 - core 152 r2851 ba24899 - H.264/MPEG-4
 AVC codec - Copyleft 2003-2017 - 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=7
 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=25
 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, mov, to 'output.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     title           : test nam
     net.mediaarea.blablabla02: test       2
     net.mediaarea.blablablabla01: test    1
     encoder         : Lavf58.0.102
     Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p,
 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc58.1.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 frame=    1 fps=0.0 q=28.0 Lsize=       2kB time=00:00:00.00
 bitrate=219179.5kbits/s speed=0.00311x
 video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 60.074905%
 [libx264 @ 000001f556dceb20] frame I:1     Avg QP:15.87  size:   646
 [libx264 @ 000001f556dceb20] mb I  I16..4: 90.7%  4.7%  4.7%
 [libx264 @ 000001f556dceb20] 8x8 transform intra:4.7%
 [libx264 @ 000001f556dceb20] coded y,uvDC,uvAC intra: 2.8% 12.7% 7.0%
 [libx264 @ 000001f556dceb20] i16 v,h,dc,p: 83% 11%  6%  0%
 [libx264 @ 000001f556dceb20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 29% 29%
 7%  0%  0%  0%  0%  0%
 [libx264 @ 000001f556dceb20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 40% 53%  5%
 0%  1%  0%  0%  0%  1%
 [libx264 @ 000001f556dceb20] i8c dc,h,v,p: 49% 11% 39%  0%
 [libx264 @ 000001f556dceb20] kb/s:129.20
 }}}

 same with " -map_metadata 0".

 metadata from "meta" atom should be kept (mapped to the output file),
 preferably by default ("ffmpeg -i input.mov output.mov") or with "
 -map_metadata 0".

 File with "udta" and "meta" atoms attached.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6800>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list