Як використовувати ffmpeg для додавання метаданих до файлу AAC без повторного кодування?


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 для обробки файлу тим же способом, оригінальні метадані успішно копіюються в новий.

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 без перекодування?

З іншого боку, чи є інший загальний інструмент, який я міг би використовувати для встановлення метаданих після обробки файлу?

Дуже дякую. Кріс.

Відповіді:


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 за допомогою "UTF-8-кодований INI" mex / demux метод. (Витягніть метадані як utf8 файл & amp; змінити & повторно вставити).


Середовище Debian GNU / Linux.
Chris C.

Документація ffmpeg не зрозуміла, як використовувати мультиплексор / демультиплексор метаданих, хоча посилання на документ показує отриманий формат файлу. Чи можете ви навести приклад командного рядка про те, як це буде зроблено? Дякую.
Chris C.

@ChrisC не виглядає добре. Не пробираючись через aac & amp; специфікації ffmpeg, щоб перевірити це виглядає як метадані честь ffmpeg перераховані тут ~ wiki.multimedia.cx/index.php?title=FFmpeg_Metadata#Basic_Usage і не підтримується. Використовуючи cli для інших форматів, дотримуйтесь шаблону 'ffmpeg -i track05.wav -metadata title = "Трек # 5" -метадана author = "Невідомий виконавець" -акодек alac -y track05.m4a наприклад. Узагальненою схемою є ffmpeg -i & lt; SOURCE & gt; -метадані key = "value" & lt; SOURCE & gt ;. Це саме той процес:
bootload

Дозволяє отримати дуже конкретні. Який формат метаданих потрібно кодувати? Ми говоримо про ID3? З яким форматом ви нарешті працюватимете?
bootload

Я подивився навколо, щоб побачити, що підтримує AAC. Можливо, офіційний формат не існує, але в Debian ID3V1 і ID3V2 обидва працюють. Banshee, здається, додає теги ID3V2 під час використання свого редактора.
Chris C.

1

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

MP4Box -add old.aac new.mp4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.