Я використовую 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 без перекодування?
З іншого боку, чи є інший загальний інструмент, який я міг би використовувати для встановлення метаданих після обробки файлу?
Дуже дякую. Кріс.