13

Я использую 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-контейнере без перекодирования?

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

Большое спасибо. Крис.

3 ответа3

11

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

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

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

  1. Утилиты командной строки id3 и id3v2 (доступны из стандартных репозиториев) могут применять теги id3 к аудиофайлу .aac. 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 может безопасно добавить метаданные в контейнер.

3

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

1

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

MP4Box -add old.aac new.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .