[FFmpeg-trac] #8338(avformat:new): can't copy GoPro metadata

FFmpeg trac at avcodec.org
Tue Aug 6 05:32:11 EEST 2024


#8338: can't copy GoPro metadata
-------------------------------------+------------------------------------
             Reporter:  importon     |                    Owner:  (none)
                 Type:  enhancement  |                   Status:  new
             Priority:  wish         |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  mov          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------
Comment (by Kamil Filipek):

 I have seeked information on difference between reported difference in
 handling the tmcd stream, by versions `4.0.2` & `4.2.1` with `4.2.1`,
 being a version reporting the error `Could not find tag for codec %s in
 stream #%d, codec not currently supported in container`.

 This line is generated by code in `libavformat/movenc.c`. Diffing `4.2.1`
 with `4.0.2` reveals to me:
 - In commit `981178f3b0b547a228804ff36641b2237eb75a16` streams with `gpmd`
 tag have been permitted into the MP4 container, as "GoPro Binary Data".
 (This is the stream which is detected by ffprobe and doesn't report any
 issues when copy is attempted)
 - `tmcd` stream appears often associated with the .mov container and
 attempting to repackage the streams into .mov passes without issues.

 Compared original .mp4 file
 {{{
   Duration: 00:01:31.69, start: 0.000000, bitrate: 44716 kb/s
   Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
 yuvj420p(pc, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 44456 kb/s, 29.97 fps,
 29.97 tbr, 30k tbn (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro H.265
         vendor_id       : [0][0][0][0]
         encoder         : GoPro H.265 encoder
         timecode        : 11:07:03:02
   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 189 kb/s (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro AAC
         vendor_id       : [0][0][0][0]
         timecode        : 11:07:03:02
   Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74) (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro TCD
         timecode        : 11:07:03:02
   Stream #0:3[0x4](eng): Data: bin_data (gpmd / 0x646D7067), 52 kb/s
 (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro MET
 }}}

 With .mov file in which only video stream should have been altered.
 {{{
   Duration: 00:01:31.69, start: 0.000000, bitrate: 10166 kb/s
   Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
 yuvj420p(pc, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 9915 kb/s,
 29.97 fps, 29.97 tbr, 30k tbn (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro H.265
         vendor_id       : FFMP
         encoder         : Lavc61.3.100 hevc_nvenc
         timecode        : 11:07:03:02
   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 189 kb/s (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro AAC
         vendor_id       : [0][0][0][0]
   Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74) (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro TCD
         timecode        : 11:07:03:02
   Stream #0:3[0x4](eng): Data: bin_data (gpmd / 0x646D7067), 52 kb/s
 (default)
       Metadata:
         creation_time   : 2024-03-09T11:07:43.000000Z
         handler_name    : GoPro MET
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/8338#comment:16>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list