Выведите ffmpeg в определенный формат

У меня есть медиа-файл со следующим форматом в соответствии с ffprobe:

  Metadata:
    major_brand     : M4A 
    minor_version   : 0
    compatible_brands: M4A mp42isom
    creation_time   : 2013-03-21 07:05:30
  Duration: 00:00:00.42, start: 0.000000, bitrate: 118 kb/s
    Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 100 kb/s (default)
    Metadata:
      creation_time   : 2013-03-21 07:05:30
      handler_name    : Core Media Audio

Возможно ли иметь вывод ffmpeg именно в этот формат?

1 ответ

Решение

Вы можете кодировать поток AAC с этими параметрами, используя такую ​​команду:

ffmpeg -i in.wav -map 0:a -acodec libfdk_aac -ar 44100 -ac 2 -ab 100k out.m4a

Любой поддерживаемый формат ввода может быть использован вместо wav,

Если ваш ffmpeg не настроен с libfdk_aac ты можешь использовать -acodec libfaac или же -acodec aac -strict experimental вместо. См. Руководство по кодированию AAC ffmpeg для получения более подробной информации о различных кодерах AAC.

Контейнер будет иметь основной бренд M4A но не те точные значения для minor_version и compatibility_brands. Если вам нужны эти значения, вы можете изменить их с помощью mp4box. Например, это установит основной бренд на M4A с минорной версией 0 и удали iso2 (добавлено ffmpeg) из списка совместимых брендов:

mp4box -brand "M4A :0" -rb iso2 out.m4a
Другие вопросы по тегам