[FFmpeg-user] Problem playing back M4A files created by ffmpeg on embedded Linux devices.

Umba Yumba umba_yumba at hotmail.com
Wed May 24 07:45:53 EEST 2023


I have Yamaha Receiver and a portable speaker that both accept USB storage as a
source of media. Both of them claim that they can play MPEG-4 AAC.

The following file formats can be used by the units:

File           Sampling       Bitrate (kbps)
            frequency (kHz)
---------------   ---------------     --------------
MP3         32/44.1/48     8 to 320
MPEG-4 AAC  32/44.1/48      8 to 320

I created 3 files with the following commands:

ffmpeg -i source.mp4 -y file1.mp3
ffmpeg -i source.mp4 -y file2.m4a
ffmpeg -i source.mp4 -y -c:a copy file3.m4a

file1.mp3 is played with no problem when copied to USB device, however
source.mp4, files2.m4a and files3.m4a do not play at all on my devices with
embedded Linux OS. At the same time there is no problem playing all files using
VLC Player.  Yamaha Receiver also can play all M4A files presented by MiniDLNA
server. Any idea what can be done on ffmpeg side to have M4A files played
directly from USB storage by my devices?

Below is info about ffmpeg version and the files.

ffmpeg -version
ffmpeg version N-109859-g052674f3ce Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (GCC)
configuration: --pkg-config-flags=--static --extra-libs='-lpthread -lm' --ld=g++ --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-nonfree
libavutil      58.  1.100 / 58.  1.100
libavcodec     60.  2.100 / 60.  2.100
libavformat    60.  2.100 / 60.  2.100
libavdevice    60.  0.100 / 60.  0.100
libavfilter     9.  1.100 /  9.  1.100
libswscale      7.  0.100 /  7.  0.100
libswresample   4.  9.100 /  4.  9.100

ffprobe -hide_banner -i source.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2023-04-14T09:59:05.000000Z
  Duration: 00:04:29.69, start: 0.000000, bitrate: 129 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 4 kb/s (default)
    Metadata:
      creation_time   : 2023-04-14T09:59:05.000000Z
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]

ffprobe -hide_banner -i file1.mp3
Input #0, mp3, from 'file1.mp3':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    encoder         : Lavf60.2.100
  Duration: 00:04:29.74, start: 0.025057, bitrate: 128 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc60.2.

ffprobe -hide_banner -i file2.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file2.m4a':
  Metadata:
    major_brand     : M4A
    minor_version   : 512
    compatible_brands: M4A isomiso2
    encoder         : Lavf60.2.100
  Duration: 00:04:29.71, start: 0.000000, bitrate: 131 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 129 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]

ffprobe -hide_banner -i file3.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file3.m4a':
  Metadata:
    major_brand     : M4A
    minor_version   : 512
    compatible_brands: M4A isomiso2
    encoder         : Lavf60.2.100
  Duration: 00:04:29.71, start: 0.000000, bitrate: 129 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]



More information about the ffmpeg-user mailing list