Audio players can fail to play MPEG-4 .m4a files. HTTPS://WWW.OnlineConverter.com/repair-m4a can make media players play MPEG-4 files.

HTTPS://WWW.OnlineConverter.com/repair-m4a calls making a compatible version repairing an audio M4A file.

A solution to play a big .M4A MPEG-4 file

This 241528803-octet (230-MB) file was too big for OnLineConverter.com to accept: 2026_03_18_14_55_06.m4a
Webpages propose a successful process to listen to 2026_03_18_14_55_06.m4a


This successful process consists of

  • not reusing a useless header;
  • using FAAD (Freeware Advanced Audio (AAC) Decoder);
    and
  • using FFMPEG.

    To not reuse a useless header, I effectively deleted a header up to and including mdat by using dd which is not the only program which can accomplish. 2026_03_18_14_55_06.m4a had mdat at its 32nd octet. I detected its location using a hex editor. A webpage recommends using dd and its skip=whatever parameter: in this case 32, but in different cases e.g. 44 or 28. Use a hex editor to find skip=your_requirement.

    I used commands like . . .

    dd ibs=1 skip=32 if=2026_03_18_14_55_06.m4a of=raw.m4a
    241528771+0 records in
    471735+1 records out
    241528771 bytes (242 MB, 230 MiB) copied, 897.297 s, 269 kB/s

    thereby producing raw.m4a sized 241528771 octets (i.e. 32 octets smaller than the original).




    faad -a newname.m4a raw.m4a
    *********** Ahead Software MPEG-4 AAC Decoder V2.8.6 ******************

    Build: Oct 10 2017
    Copyright 2002-2004: Ahead Software AG
    http://www.audiocoding.com
    bug tracking: https://sourceforge.net/p/faac/bugs/
    Floating point version

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License.

    **************************************************************************

    raw.m4a file info:
    RAW

    ---------------------
    | Config: 2 Ch |
    ---------------------
    | Ch | Position |
    ---------------------
    | 00 | Left front |
    | 01 | Right front |
    ---------------------

    Writing output MPEG-4 AAC ADTS file.

    Decoding raw.m4a took: 23.44 sec. 0.00x real-time.




    ffmpeg -i newname.m4a -c:a aac 2026_03_18_14_55_06__mdat_deleted_by_dd_faad_ffmpeg.M4A
    via FFMPEG Version 7.1.1 (Copyright 2000-2025 the FFmpeg developers) . . .
    configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
    libavutil 59. 39.100 / 59. 39.100
    libavcodec 61. 19.101 / 61. 19.101
    libavformat 61. 7.100 / 61. 7.100
    libavdevice 61. 3.100 / 61. 3.100
    libavfilter 10. 4.100 / 10. 4.100
    libswscale 8. 3.100 / 8. 3.100
    libswresample 5. 3.100 / 5. 3.100
    libpostproc 58. 3.100 / 58. 3.100
    [aac @ 00000264872e9940] Estimating duration from bitrate, this may be inaccurate
    Input #0, aac, from 'newname.m4a':
    Duration: 04:11:25.91, bitrate: 130 kb/s
    Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 130 kb/s
    Stream mapping:
    Stream #0:0 -> #0:0 (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
    Output #0, ipod, to '2026_03_18_14_55_06__mdat_deleted_by_dd_faad_ffmpeg.M4A':
    Metadata:
    encoder : Lavf61.7.100
    Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
    encoder : Lavc61.19.101 aac
    [out#0/ipod @ 00000264872e9e00] video:0KiB audio:234965KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 1.082542%
    size= 237509KiB time=04:11:35.54 bitrate= 128.9kbits/s speed=54.5x
    [aac @ 000002648787d080] Qavg: 9227.900




    (2026_03_18_14_55_06__mdat_deleted_by_dd_faad_ffmpeg.M4A includes many minutes which I do not need, so I used FFMPEG again to restrict to its first 2 hours and 15 minutes and 3 seconds . . .)

    ffmpeg -ss 00:00:00 -to 02:15:36 -i 2026_03_18_14_55_06__mdat_deleted_by_dd_faad_ffmpeg.M4A -c:a aac 2026_03_18_14_55_06_We_can_t_accept_documents_where_we_re_not_sure_of_the_legalities_I_m_not_going_to_refer_to_a_book_arsa_bean_cuirte_mdat_deleted_by_dd_faad_ffmpeg.M4A
    . . .
    configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
    libavutil 59. 39.100 / 59. 39.100
    libavcodec 61. 19.101 / 61. 19.101
    libavformat 61. 7.100 / 61. 7.100
    libavdevice 61. 3.100 / 61. 3.100
    libavfilter 10. 4.100 / 10. 4.100
    libswscale 8. 3.100 / 8. 3.100
    libswresample 5. 3.100 / 5. 3.100
    libpostproc 58. 3.100 / 58. 3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2026_03_18_14_55_06__mdat_deleted_by_dd_faad_ffmpeg.M4A':
    Metadata:
    major_brand : M4A
    minor_version : 512
    compatible_brands: M4A isomiso2
    encoder : Lavf61.7.100
    Duration: 04:11:35.55, start: 0.000000, bitrate: 128 kb/s
    Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
    handler_name : SoundHandler
    vendor_id : [0][0][0][0]
    Stream mapping:
    Stream #0:0 -> #0:0 (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
    Output #0, ipod, to '2026_03_18_14_55_06_We_can_t_accept_documents_where_we_re_not_sure_of_the_legalities_I_m_not_going_to_refer_to_a_book_arsa_bean_cuirte_mdat_deleted_by_dd_faad_ffmpeg.M4A':
    Metadata:
    major_brand : M4A
    minor_version : 512
    compatible_brands: M4A isomiso2
    encoder : Lavf61.7.100
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
    handler_name : SoundHandler
    vendor_id : [0][0][0][0]
    encoder : Lavc61.19.101 aac
    [out#0/ipod @ 00000192e80e9c40] video:0KiB audio:126626KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 1.082934%
    size= 127998KiB time=02:15:36.00 bitrate= 128.9kbits/s speed=41.3x
    [aac @ 00000192e8109980] Qavg: 13161.502

    (For 2026_03_18_14_55_06_We_can_t_accept_documents_where_we_re_not_sure_of_the_legalities_I_m_not_going_to_refer_to_a_book_arsa_bean_cuirte_mdat_deleted_by_dd_faad_ffmpeg.M4A I used GNU dd Version 8.32.)