#4591: attachments mjpeg are discovered wrongly as video stream and therefore 
h264
encoding is broken
-------------------------------------+-------------------------------------
             Reporter:  TheoMeister  |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  important    |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  mkv          |               Blocked By:
  regression                         |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by winterlint_):

 Still an issue. Reproduce:







 {{{
 # Fetch
 yt-dlp --embed-info-json --embed-thumbnail --merge-output-format mkv
 --output 'in.%(ext)s' https://youtu.be/C0DPdy98e4c
 # Mux
 ffmpeg -i in.mkv -map 0 -c copy out.mkv
 }}}

 {{{
 --- $ mediainfo in.mkv
 +++ $ mediainfo out.mkv
  General
  Complete name                            : in.mkv
  Format                                   : Matroska
 -Attachments                              : info.json / cover.jpg
 +Attachments                              : info.json

 -Video
 +Video #1
  ID                                       : 1
  Format                                   : AV1

 +Video #2
 +ID                                       : 3
 +Format                                   : V_MJPEG
 +Matrix coefficients                      : BT.470 System B/G
 +FILENAME                                 : cover.jpg
 +MIMETYPE                                 : image/jpeg

  Audio
  ID                                       : 2
  Format                                   : Opus
 }}}

 This breaks MKV as an archival format. Issue is caused by ffmpeg
 inappropriately treating an attachment with mimetype `image/jpeg` as a
 video track.

 {{{
 $ ffmpeg -hide_banner -i in.mkv
 Input #0, matroska,webm, from 'in.mkv':
   Metadata:
     MAJOR_BRAND     : dash
     MINOR_VERSION   : 0
     COMPATIBLE_BRANDS: iso6av01mp41
     ENCODER         : Lavf60.16.100
   Duration: 00:00:17.59, start: 0.000000, bitrate: 167 kb/s
   Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709), 640x480, 25 fps, 25
 tbr, 1k tbn (default)
     Metadata:
       HANDLER_NAME    : ISO Media file produced by Google Inc.
       VENDOR_ID       : [0][0][0][0]
       DURATION        : 00:00:16.600000000
   Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 00:00:17.588000000
   Stream #0:2: Attachment: none
     Metadata:
       filename        : info.json
       mimetype        : application/json
   Stream #0:3: Video: mjpeg (Baseline), yuvj420p(pc,
 bt470bg/unknown/unknown), 480x360 [SAR 1:1 DAR 4:3], 90k tbr, 90k tbn
 (attached pic)
     Metadata:
       filename        : cover.jpg
       mimetype        : image/jpeg
 }}}

 Suggestion, ffmpeg should never convert attachments into tracks without
 explicit user action, no matter the mimetype.

 External page with a person with same issue:
 [https://superuser.com/questions/1858881/ffmpeg-copy-attached-cover-image-
 cover-jpg-of-video-file-during-encode]

 No solution exists.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/4591#comment:12>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to