Как использовать ffmpeg для добавления метаданных в файл AAC без перекодирования?

я использую ffmpeg для извлечения аудио потока из видео файла:

ffmpeg -i video.mp4 -vn -acodec copy audio.aac

это производит чистый аудиофайл, но без каких-либо метаданных.

чтобы добавить метаданные, ffmpeg имеет параметр командной строки:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac

это работает без ошибок, но когда выходной файл проверяется с помощью ffprobe, он не имеет тегов метаданных вообще.

если выходной контейнер изменен на mp4, метаданные могут быть установлены и отображаются в выходных данных файл:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4

вот интересный бит; если я использую Banshee для редактирования метаданных существующего .файл aac, затем используйте ffmpeg для обработки файла таким же образом, исходные метаданные успешно копируются в новый.файл AAC.

ffmpeg -i metadata.aac -vn -acodec copy audio.aac

но, попытки изменить метаданные не имеют никакого эффекта:

ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac

так кажется .контейнер aac может содержать метаданные, а ffmpeg может копировать их из ввода в вывод, но не может изменять их, когда кодек копирования используемый.

кто-нибудь знает способ заставить ffmpeg изменить метаданные в контейнере aac без повторного кодирования?

кроме того, есть ли еще один общий инструмент, который я мог бы использовать для установки метаданных после обработки файла?

спасибо.
Крис.

5
задан BinaryMisfit
источник

3 ответов

цель состояла в том, чтобы создать аудио-только файл из видеофайла без перекодирования и ввести метаданные, распознаваемые медиаплеерами. Среда-Debian GNU / Linux.

Я хотел бы поблагодарить @bootload за то, что поставил меня на правильный путь к поиску ответа.

ffmpeg не поддерживает добавление тегов метаданных .Выходные файлы AAC, однако, вот два возможных обходных пути.

  1. утилиты командной строки id3 и id3v2 (доступно из стандартных репозиториев) может применять теги id3 к a .аудиофайл ААС. Nautilus распознал стили тегов v1 и v2, поэтому они должны работать. Те же теги были распознаны медиаплеером Banshee.
id3v2 -t "My Title" audio.aac
  1. ffmpeg можно добавить метаданные в контейнер MP4, но .расширение mp4 в Nautilus появится в виде виде видеофайла. Apple Inc. использует нестандартные расширения контейнера MP4 для различения видеофайлов (.m4v) из аудиофайлов (.m4a). Эти расширения распознаются в Debian Nautilus и ffmpeg. Итак,
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

создаст файл только для аудио, распознанный Nautilus, и ffmpeg может безопасно добавить метаданные в контейнер.

11
отвечен Chris C. 2017-01-01 08:23:26
источник

какая аппаратной? Это для устройства Apple iP*? Если так попробовать http://atomicparsley.sourceforge.net/ в противном случае попробуйте http://ffmpeg.org/ffmpeg.html#Examples с помощью "UTF-8-encoded INI" метод mex/demux. (Извлеките метаданные как файл utf8 и измените и вставьте повторно).

3
отвечен bootload 2011-10-26 02:48:35
источник

MP4Box (часть пакета "gpac") конверты AAC файлы с контейнерами MP4 без изменения исходных данных. Метаданные могут быть добавлены с помощью любого программного обеспечения для пометки:

MP4Box -add old.aac new.mp4
1
отвечен Gid 2013-08-18 23:22:31
источник

Другие вопросы aac ffmpeg metadata