Opened 3 months ago

Closed 3 months ago

Last modified 3 months ago

#11303 closed defect (fixed)

M4A AAC unconditional tagged Constant Bit Rate

Reported by: Me Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mov
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Issue:

The meta data of an aac audio file (.m4a) always reports the file to be constant bitrate. This is true for variable bitrate aac audio files that are created with ffmpeg (libfdk_aac) and aac files that are just copied with ffmpeg.

Commandline for creation of an m4a file:

ffmpeg -i test_input.flac -c:a libfdk_aac -vbr 5 out_file.m4a

Check bitrate:

mediainfo out_file.m4a
General
Complete name                            : out_file.m4a
Format                                   : MPEG-4
Format profile                           : Apple audio with iTunes info
Codec ID                                 : M4A  (M4A /isom/iso2)
File size                                : 7.33 MiB
Duration                                 : 4 min 51 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 211 kb/s
Album                                    : test album
Album/Performer                          : test album artist
Track name                               : test title
Track name/Position                      : 1
Performer                                : test artist
Genre                                    : test genre
Recorded date                            : 2000
Writing application                      : Lavf61.1.100
Comment                                  : test comment

Audio
ID                                       : 1
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 4 min 51 s
Source duration                          : 4 min 51 s
Source_Duration_LastFrame                : -16 ms
Bit rate mode                            : Constant
Bit rate                                 : 210 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 7.28 MiB (99%)
Source stream size                       : 7.28 MiB (99%)
Default                                  : Yes
Alternate group                          : 1

Commandline for copying a vbr aac audio source:

Create a vbr m4a-file:

ffmpeg -i test_input.flac -f caf - | fdkaac -m 5 -o fdkaac.m4a -

Confirm vbr:

mediainfo fdkaac.m4a


General
Complete name                            : fdkaac.m4a
Format                                   : MPEG-4
Format profile                           : Apple audio with iTunes info
Codec ID                                 : M4A  (M4A /mp42/isom)
File size                                : 7.33 MiB
Duration                                 : 4 min 51 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 211 kb/s
Album                                    : test album
Album/Performer                          : test album artist
Track name                               : test title
Track name/Position                      : 1
Performer                                : test artist
Genre                                    : test genre
Recorded date                            : 2000
Encoded date                             : UTC 2024-11-16 10:21:08
Tagged date                              : UTC 2024-11-16 10:21:08
Writing application                      : fdkaac 1.0.0, libfdk-aac 4.0.1, VBR mode 5
Comment                                  : test comment

Audio
ID                                       : 1
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 4 min 51 s
Bit rate mode                            : Variable
Bit rate                                 : 210 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 7.28 MiB (99%)
Encoded date                             : UTC 2024-11-16 10:21:08
Tagged date                              : UTC 2024-11-16 10:21:08

Copy the file with ffmpeg:

myffmpeg -i fdkaac.m4a -c:a copy copy_ffmpeg.m4a

Confirm metadata:

mediainfo copy_ffmpeg.m4a
General
Complete name                            : copy_ffmpeg.m4a
Format                                   : MPEG-4
Format profile                           : Apple audio with iTunes info
Codec ID                                 : M4A  (M4A /isom/iso2)
File size                                : 7.33 MiB
Duration                                 : 4 min 51 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 211 kb/s
Album                                    : test album
Album/Performer                          : test album artist
Track name                               : test title
Track name/Position                      : 1
Performer                                : test artist
Genre                                    : test genre
Recorded date                            : 2000
Writing application                      : Lavf61.1.100
Comment                                  : test comment

Audio
ID                                       : 1
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 4 min 51 s
Source duration                          : 4 min 51 s
Bit rate mode                            : Constant
Bit rate                                 : 210 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 7.28 MiB (99%)
Source stream size                       : 7.28 MiB (99%)
Default                                  : Yes
Alternate group                          : 1

Without changing the actual audio stream the metadata is set to constant bitrate even though the input is a variable bitrate.


The issue was observed/reproduced with:

ffmpeg version 7.0.2
ffmpeg version N-71064-gd5e603ddc0-static
ffmpeg version 4.4.2-0ubuntu0.22.04.1

Log file (shortend):

ffmpeg version 7.0.2 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)
  configuration: --prefix=/home/test/ffmpeg-static/target --pkg-config-flags=--static --extra-cflags=-I/home/test/ffmpeg-static/target/include --extra-ldflags=-L/home/test/ffmpeg-static/target/lib --extra-ldexeflags=-static --extra-libs='-lpthread -lm -lz' --bindir=/home/test/ffmpeg-static/bin --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libxvid --enable-libtheora --enable-libvpx --enable-libwebp --enable-libsvtav1 --enable-libdav1d --enable-libaom --enable-libfreetype --enable-libass
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'fdkaac.m4a'.
Reading option '-c:a' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'copy'.
Reading option 'copy_ffmpeg.m4a' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url fdkaac.m4a.
Successfully parsed a group of options.
Opening an input file: fdkaac.m4a.
[AVFormatContext @ 0x1ba33e40] Opening 'fdkaac.m4a' for reading
[file @ 0x1ba34440] Setting default whitelist 'file,crypto,data'
Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'ftyp' parent:'root' sz: 32 8 7689874
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] ISO: File Type Major Brand: M4A 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'free' parent:'root' sz: 8 40 7689874
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'mdat' parent:'root' sz: 7636157 48 7689874
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'moov' parent:'root' sz: 53677 7636205 7689874
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'mvhd' parent:'moov' sz: 108 8 53669
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] time scale = 44100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'trak' parent:'moov' sz: 52972 116 53669
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'tkhd' parent:'trak' sz: 92 8 52964
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'mdia' parent:'trak' sz: 52872 100 52964
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'mdhd' parent:'mdia' sz: 32 8 52864
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'hdlr' parent:'mdia' sz: 33 40 52864
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] ctype=[0][0][0][0]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stype=soun
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'minf' parent:'mdia' sz: 52799 73 52864
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'smhd' parent:'minf' sz: 16 8 52791
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'dinf' parent:'minf' sz: 36 24 52791
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'dref' parent:'dinf' sz: 28 8 28
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stbl' parent:'minf' sz: 52739 60 52791
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stsd' parent:'stbl' sz: 103 8 52731
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] size=87 4CC=mp4a codec_type=1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] audio channels 2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] version =0, isom =1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'esds' parent:'stsd' sz: 51 8 51
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] MPEG-4 description: tag=0x03 len=34
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] MPEG-4 description: tag=0x04 len=20
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] esds object type id 0x40
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] MPEG-4 description: tag=0x05 len=2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] Specific MPEG-4 header len=2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] mp4a config channels 2 obj 2 ext obj 0 sample rate 44100 ext sample rate 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stts' parent:'stbl' sz: 24 111 52731
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] track[0].stts.entries = 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] sample_count=12535, sample_duration=1024
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stsc' parent:'stbl' sz: 40 135 52731
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] track[0].stsc.entries = 2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stsz' parent:'stbl' sz: 50160 175 52731
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] sample_size = 0 sample_count = 12535
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'stco' parent:'stbl' sz: 2404 50335 52731
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 0, offset 30, dts 0, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 1, offset 38, dts 1024, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 2, offset 40, dts 2048, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 3, offset 48, dts 3072, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 4, offset 50, dts 4096, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 5, offset 58, dts 5120, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 6, offset 60, dts 6144, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 7, offset 68, dts 7168, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 8, offset 70, dts 8192, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 9, offset 78, dts 9216, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 10, offset 80, dts 10240, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 11, offset 88, dts 11264, size 8, distance 0, keyframe 1

.....
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 12530, offset 7484bd, dts 12830720, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 12531, offset 7484c5, dts 12831744, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 12532, offset 7484cd, dts 12832768, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 12533, offset 7484d5, dts 12833792, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] AVIndex stream 0, sample 12534, offset 7484dd, dts 12834816, size 8, distance 0, keyframe 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'udta' parent:'moov' sz: 589 53088 53669
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'meta' parent:'udta' sz: 581 8 581
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'hdlr' parent:'meta' sz: 33 8 569
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] ctype=[0][0][0][0]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stype=mdir
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'ilst' parent:'meta' sz: 536 41 569
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]nam' parent:'ilst' sz: 34 8 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]ART' parent:'ilst' sz: 35 42 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'aART' parent:'ilst' sz: 41 77 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]alb' parent:'ilst' sz: 34 118 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]day' parent:'ilst' sz: 28 152 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]gen' parent:'ilst' sz: 34 180 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]cmt' parent:'ilst' sz: 36 214 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'trkn' parent:'ilst' sz: 32 250 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'[169]too' parent:'ilst' sz: 66 282 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] type:'----' parent:'ilst' sz: 188 348 528
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] on_parse_exit_offset=7689874
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] Before avformat_find_stream_info() pos: 7689874 bytes read:86445 seeks:1 nb_streams:1
For transform of length 64, inverse, mdct_float, flags: [aligned, out_of_place], found 3 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 32, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 2 matches:
    1: fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 512
    2: fft32_asm_float_avx - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 480
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 64, inverse, mdct_float, flags: [aligned, out_of_place], found 3 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 32, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 2 matches:
    1: fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 512
    2: fft32_asm_float_avx - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 480
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 120, inverse, mdct_float, flags: [aligned, out_of_place], found 6 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_pfa_15xM_inv_float_c - type: mdct_float, len: [30, ∞], factors[2]: [15, any], flags: [unaligned, out_of_place, inv_only], prio: 304
    3: mdct_pfa_5xM_inv_float_c - type: mdct_float, len: [10, ∞], factors[2]: [5, any], flags: [unaligned, out_of_place, inv_only], prio: 144
    4: mdct_pfa_3xM_inv_float_c - type: mdct_float, len: [6, ∞], factors[2]: [3, any], flags: [unaligned, out_of_place, inv_only], prio: 112
    5: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    6: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 60, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 1 matches:
    1: fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: [60, ∞], factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 655
For transform of length 4, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 1 matches:
    1: fft4_fwd_asm_float_sse2 - type: fft_float, len: 4, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 352
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 120, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 60, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
            fft4_fwd_asm_float_sse2 - type: fft_float, len: 4, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 128, inverse, mdct_float, flags: [aligned, out_of_place], found 3 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 64, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 3 matches:
    1: fft_sr_asm_float_fma3 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 448
    2: fft_sr_asm_float_avx2 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 447
    3: fft_sr_asm_float_avx - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 416
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 128, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_sr_asm_float_fma3 - type: fft_float, len: 64, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 480, inverse, mdct_float, flags: [aligned, out_of_place], found 6 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_pfa_15xM_inv_float_c - type: mdct_float, len: [30, ∞], factors[2]: [15, any], flags: [unaligned, out_of_place, inv_only], prio: 304
    3: mdct_pfa_5xM_inv_float_c - type: mdct_float, len: [10, ∞], factors[2]: [5, any], flags: [unaligned, out_of_place, inv_only], prio: 144
    4: mdct_pfa_3xM_inv_float_c - type: mdct_float, len: [6, ∞], factors[2]: [3, any], flags: [unaligned, out_of_place, inv_only], prio: 112
    5: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    6: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 240, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 1 matches:
    1: fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: [60, ∞], factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 655
For transform of length 16, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 2 matches:
    1: fft16_asm_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 512
    2: fft16_asm_float_avx - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 480
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 480, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 240, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
            fft16_asm_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 512, inverse, mdct_float, flags: [aligned, out_of_place], found 3 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 256, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 3 matches:
    1: fft_sr_asm_float_fma3 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 448
    2: fft_sr_asm_float_avx2 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 447
    3: fft_sr_asm_float_avx - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 416
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 512, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_sr_asm_float_fma3 - type: fft_float, len: 256, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 960, inverse, mdct_float, flags: [aligned, out_of_place], found 6 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_pfa_15xM_inv_float_c - type: mdct_float, len: [30, ∞], factors[2]: [15, any], flags: [unaligned, out_of_place, inv_only], prio: 304
    3: mdct_pfa_5xM_inv_float_c - type: mdct_float, len: [10, ∞], factors[2]: [5, any], flags: [unaligned, out_of_place, inv_only], prio: 144
    4: mdct_pfa_3xM_inv_float_c - type: mdct_float, len: [6, ∞], factors[2]: [3, any], flags: [unaligned, out_of_place, inv_only], prio: 112
    5: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    6: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 480, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 1 matches:
    1: fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: [60, ∞], factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 655
For transform of length 32, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 2 matches:
    1: fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 512
    2: fft32_asm_float_avx - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 480
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 960, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 480, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
            fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 1024, inverse, mdct_float, flags: [aligned, out_of_place], found 3 matches:
    1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]: [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
    2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: 96
    3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio: -130976
For transform of length 512, inverse, fft_float, flags: [aligned, inplace, preshuf, asm_call], found 3 matches:
    1: fft_sr_asm_float_fma3 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 448
    2: fft_sr_asm_float_avx2 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 447
    3: fft_sr_asm_float_avx - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call], prio: 416
Transform tree:
    mdct_inv_float_avx2 - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
        fft_sr_asm_float_fma3 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
For transform of length 1024, forward, mdct_float, flags: [aligned, out_of_place], found 2 matches:
    1: mdct_fwd_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only], prio: 96
    2: mdct_naive_fwd_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only], prio: -130976
For transform of length 512, forward, fft_float, flags: [aligned, inplace, preshuf], found 5 matches:
    1: fft_sr_ns_float_fma3 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf], prio: 448
    2: fft_sr_ns_float_avx2 - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf], prio: 447
    3: fft_sr_ns_float_avx - type: fft_float, len: [64, 2097152], factor: 2, flags: [aligned, inplace, out_of_place, preshuf], prio: 416
    4: fft_pfa_ns_float_c - type: fft_float, len: [6, ∞], factors[2]: [7, 5, 3, 2, any], flags: [unaligned, inplace, out_of_place, preshuf], prio: 112
    5: fft512_ns_float_c - type: fft_float, len: 512, factor: 2, flags: [unaligned, inplace, out_of_place, preshuf], prio: 96
Transform tree:
    mdct_fwd_float_c - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only]
        fft_sr_ns_float_fma3 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 0, dts 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] demuxer injecting skip 2048 / discard 0
[aac @ 0x1ba34e40] skip 2048 / discard 0 samples due to side data
[aac @ 0x1ba34e40] skip whole frame, skip left: 1024
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0: start_time: 0.0464399 duration: 291.062132
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] format: start_time: 0.04644 duration: 291.062132 (estimate from stream) bitrate=211 kb/s
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] After avformat_find_stream_info() pos: 56 bytes read:119213 seeks:2 frames:1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fdkaac.m4a':
  Metadata:
    major_brand     : M4A 
    minor_version   : 0
    compatible_brands: M4A mp42isom
    creation_time   : 2024-11-16T10:21:08.000000Z
    title           : test title
    artist          : test artist
    album_artist    : test album artist
    album           : test album
    date            : 2000
    genre           : test genre
    comment         : test comment
    track           : 1
    encoder         : fdkaac 1.0.0, libfdk-aac 4.0.1, VBR mode 5
    iTunSMPB        :  00000000 00000800 000002B4 0000000000C3D14C 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  Duration: 00:04:51.06, start: 0.046440, bitrate: 211 kb/s
  Stream #0:0[0x1](und), 1, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 209 kb/s (default)
      Metadata:
        creation_time   : 2024-11-16T10:21:08.000000Z
        vendor_id       : [0][0][0][0]
Successfully opened the file.
Parsing a group of options: output url copy_ffmpeg.m4a.
Applying option c:a (select encoder/decoder ('copy' to copy stream without reencoding)) with argument copy.
Successfully parsed a group of options.
Opening an output file: copy_ffmpeg.m4a.
[out#0/ipod @ 0x1ba3be40] No explicit maps, mapping streams automatically...
[aost#0:0/copy @ 0x1ba37700] Created audio stream from input stream 0:0
[file @ 0x1ba37b00] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Output #0, ipod, to 'copy_ffmpeg.m4a':
  Metadata:
    major_brand     : M4A 
    minor_version   : 0
    compatible_brands: M4A mp42isom
    iTunSMPB        :  00000000 00000800 000002B4 0000000000C3D14C 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    title           : test title
    artist          : test artist
    album_artist    : test album artist
    album           : test album
    date            : 2000
    genre           : test genre
    comment         : test comment
    track           : 1
    encoder         : Lavf61.1.100
  Stream #0:0(und), 0, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 209 kb/s (default)
      Metadata:
        creation_time   : 2024-11-16T10:21:08.000000Z
        vendor_id       : [0][0][0][0]
[out#0/ipod @ 0x1ba3be40] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80] Starting thread...
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 1, dts 23220
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 2, dts 46440
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 3, dts 69660
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 4, dts 92880
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 5, dts 116100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 6, dts 139320
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 7, dts 162540
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 8, dts 185760
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 9, dts 208980
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 10, dts 232200
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 11, dts 255420
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12, dts 278639
...
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12530, dts 290946032
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12531, dts 290969252
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12532, dts 290992472
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12533, dts 291015692
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33e40] stream 0, sample 12534, dts 291038912
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80] EOF while reading input
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80] Terminating thread with return code 0 (success)
[out#0/ipod @ 0x1ba3be40] All streams finished
[out#0/ipod @ 0x1ba3be40] Terminating thread with return code 0 (success)
[AVIOContext @ 0x1ba37bc0] Statistics: 7687474 bytes written, 2 seeks, 33 writeouts
[out#0/ipod @ 0x1ba3be40] Output file #0 (copy_ffmpeg.m4a):
[out#0/ipod @ 0x1ba3be40]   Output stream #0:0 (audio): 12535 packets muxed (7636149 bytes); 
[out#0/ipod @ 0x1ba3be40]   Total: 12535 packets (7636149 bytes) muxed
[out#0/ipod @ 0x1ba3be40] video:0KiB audio:7457KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.672080%
size=    7507KiB time=00:04:51.01 bitrate= 211.3kbits/s speed=2.7e+03x    
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80] Input file #0 (fdkaac.m4a):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80]   Input stream #0:0 (audio): 12535 packets read (7636149 bytes); 
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ba33b80]   Total: 12535 packets (7636149 bytes) demuxed
[AVIOContext @ 0x1ba3c600] Statistics: 7754157 bytes read, 2 seeks

Change History (2)

comment:1 by MasterQuestionable, 3 months ago

Component: undeterminedavformat
Keywords: mov VBR metadata added; aac variable bitrate removed
Resolution: duplicate
Status: newclosed
Summary: AAC files are always reported as constant bitrateM4A AAC unconditional tagged Constant Bit Rate

comment:2 by James, 3 months ago

Keywords: VBR metadata removed
Resolution: duplicatefixed
Version: unspecifiedgit-master
Note: See TracTickets for help on using tickets.