ffmpeg - .m4a 输出的默认格式是什么?

ffmpeg - what is the default format for .m4a output?

我有两个命令,其中一个我将输出格式指定为 -f mp4:

ffmpeg -i input.wav -ac 1 -c:a libfdk_aac -profile:a aac_he -vbr 2 -f mp4 test_export_1.m4a

还有一个让 ffmpeg 根据扩展名猜测:

ffmpeg -i input.wav -ac 1 -c:a libfdk_aac -profile:a aac_he -vbr 2 test_export_2.m4a

这给了我两个不同的结果。

第一个:

$ffprobe test_export_1.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_export_1.m4a':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.29.100
  Duration: 00:00:07.13, start: 0.000000, bitrate: 40 kb/s
    Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 39 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

第二个:

$ffprobe test_export_2.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_export_2.m4a':
  Metadata:
    major_brand     : M4A 
    minor_version   : 512
    compatible_brands: isomiso2
    encoder         : Lavf58.29.100
  Duration: 00:00:07.13, start: 0.000000, bitrate: 40 kb/s
    Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 39 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

品牌为 isom 的第一个游戏无法在 Android 设备上播放。第二个工作正常。为什么这些输出不同,我如何指定正确的格式以获得 major_brand : M4A 像第二个?我正在使用 pydub 到 运行 命令,这需要格式标志。

.m4a 不是推荐的 ISO 扩展名,但通常由 Apple 使用。与 .mp4 相比,它具有有限的可接受编解码器列表。格式标志为 -f ipod.