ffmpeg: установить метаданные "год" равными первым 4 символам другой переменной метаданных (fla c) - PullRequest
1 голос
/ 10 февраля 2020

Файлы fla c, с которыми я имею дело, имеют атрибут «Дата выпуска», значение которого имеет формат «ГГГГ-ММ-ДД».

Можно ли мне взять «ГГГГ» из этого и установить переменную года равной ему?


    ffmpeg -i input.flac -metadata year=<b>???</b> -codec copy output.flac


Бонусный вопрос, возможно ли сделать это на месте, не создавая новый файл? Или мне нужно создать новый файл, а затем удалить старый?

1 Ответ

1 голос
/ 10 февраля 2020

Вам придется сделать это в несколько этапов.

  1. Получить метаданные с помощью ffprobe:

    ffprobe -loglevel error -show_entries format_tags="Date released" -of csv=p=0 input.flac
    

    В результате получится что-то вроде 2001-12 -16.

  2. Обработка выходных данных для получения года. Ваша ОС / оболочка / язык сценариев / кодирования неизвестен, поэтому я оставлю эту часть на ваше усмотрение.

  3. Добавьте метаданные:

    ffmpeg -i input.flac -c copy -metadata year=2001 output.flac
    

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

Невозможно с ffmpeg.

Или будет Я должен создать новый файл, а затем удалить старый?

Да.

...