[FFmpeg-trac] #11517(avformat:new): Remuxing AAC in mpegts to non-seekable matroska fails with "Error parsing AAC extradata, unable to determine samplerate"

FFmpeg trac at avcodec.org
Mon Mar 17 17:13:28 EET 2025


#11517: Remuxing AAC in mpegts to non-seekable matroska fails with "Error parsing
AAC extradata, unable to determine samplerate"
-------------------------------------+-------------------------------------
             Reporter:  Tomas        |                     Type:  defect
  Härdin                             |
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:  git-
             Keywords:  matroska,    |  master
  mkv                                |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 When remuxing AAC stored in mpegts to matroska and writing the result to a
 pipe, matroskaenc is unable to extract AAC metadata to determine the
 samplerate and consequently the conversion fails.

 How to reproduce:
 Using current master (94beaf4872)
 {{{
 $ ffmpeg -t 1 -f lavfi -i sine -codec aac -f mpegts - | ffmpeg -i - -map 0
 -codec copy -f matroska - > /dev/null
 ffmpeg version N-118848-g94beaf4872 Copyright (c) 2000-2025 the FFmpeg
 developers
   built with gcc 6.3.1 (GCC) 20170510 (for GNAT GPL 2017 20170515)
   configuration: --enable-libsrt --enable-gnutls --enable-libx264
 --enable-gpl --enable-libmp3lame
   libavutil      59. 60.100 / 59. 60.100
   libavcodec     61. 33.102 / 61. 33.102
   libavformat    61.  9.107 / 61.  9.107
   libavdevice    61.  4.100 / 61.  4.100
   libavfilter    10.  9.100 / 10.  9.100
   libswscale      8. 13.102 /  8. 13.102
   libswresample   5.  4.100 /  5.  4.100
   libpostproc    58.  4.100 / 58.  4.100
 ffmpeg version N-118848-g94beaf4872 Copyright (c) 2000-2025 the FFmpeg
 developers
   built with gcc 6.3.1 (GCC) 20170510 (for GNAT GPL 2017 20170515)
   configuration: --enable-libsrt --enable-gnutls --enable-libx264
 --enable-gpl --enable-libmp3lame
   libavutil      59. 60.100 / 59. 60.100
   libavcodec     61. 33.102 / 61. 33.102
   libavformat    61.  9.107 / 61.  9.107
   libavdevice    61.  4.100 / 61.  4.100
   libavfilter    10.  9.100 / 10.  9.100
   libswscale      8. 13.102 /  8. 13.102
   libswresample   5.  4.100 /  5.  4.100
   libpostproc    58.  4.100 / 58.  4.100
 [out @ 0x32c4480] The "sample_fmts" option is deprecated: set the
 supported sample formats
 [out @ 0x32c4480] The "all_channel_counts" option is deprecated: accept
 all channel counts
 Input #0, lavfi, from 'sine':
   Duration: N/A, start: 0.000000, bitrate: 705 kb/s
   Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
 Press [q] to stop, [?] for help
 [mpegts @ 0x32c7200] frame size not set
 Output #0, mpegts, to 'pipe:':
   Metadata:
     encoder         : Lavf61.9.107
   Stream #0:0: Audio: aac (LC), 44100 Hz, mono, fltp, 69 kb/s
     Metadata:
       encoder         : Lavc61.33.102 aac
 [out#0/mpegts @ 0x32c7100] video:0KiB audio:9KiB subtitle:0KiB other
 streams:0KiB global headers:0KiB muxing overhead: 31.643881%
 size=      12KiB time=00:00:01.00 bitrate=  94.8kbits/s speed=  20x
 [aac @ 0x32c4000] Qavg: 1558.835
 Input #0, mpegts, from 'fd:':
   Duration: N/A, start: 1.400000, bitrate: 71 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
   Stream #0:0[0x100]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz,
 mono, fltp, 71 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 [matroska @ 0x434c980] Error parsing AAC extradata, unable to determine
 samplerate.
 [out#0/matroska @ 0x434fc40] Could not write header (incorrect codec
 parameters ?): Invalid argument
 Conversion failed!
 }}}

 This all relates to the writing of MATROSKA_ID_AUDIOOUTSAMPLINGFREQ. But
 since it appears to be optional perhaps the muxer shouldn't error out?
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11517>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list