я использую 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 без повторного кодирования?
кроме того, есть ли еще один общий инструмент, который я мог бы использовать для установки метаданных после обработки файла?
спасибо.
Крис.