Вопрос или проблема
Я изменил звуковую дорожку 360-видео, используя Openshot. В результате выходной файл потерял метаданные 360. Я пытаюсь использовать ffmpeg для их замены с помощью следующей команды:
ffmpeg.exe -i input.mp4 -movflags use_metadata_tags
-metadata Spherical=true
-metadata Stitched=true
-metadata "Projection Type"=equirectangular
-codec copy
output.mp4
Метаданные Spherical и Stitched отображаются в выходном файле (просмотрено с помощью exiftool), но “Projection Type” не отображается. Если я удаляю кавычки, появляется ошибка. Как мне добавить пользовательский тег метаданных с пробелом?
Похоже, что Exiftool не приветствует ключи тегов с пробелами. Чтобы отобразить это в приложении, Projection Type должен быть ProjectionType.
В ffmpeg он отображается так или иначе.
Ответ или решение
Для добавления пользовательских метаданных к файлу MP4 с использованием ffmpeg, у вас уже есть частично верное решение. Давайте разберем вашу проблему подробнее и решим ее.
Вы упомянули, что хотите добавить метаданные для 360-видео, включая «Projection Type», но при этом сталкиваетесь с проблемами из-за наличия пробела в названии. Вот как правильно использовать ffmpeg для этой задачи:
-
Проблема с пробелами в ключах метаданных. Действительно, использование пробелов в ключах метаданных может вызывать ошибки или нежелательное поведение. Ваша версия с использованием кавычек, например,
"Projection Type"
, действительно не сработает, так как ffmpeg не всегда корректно обрабатывает такие ключи. -
Рекомендация по именованию. В большинстве случаев, для избежания проблем с программами, которые обрабатывают метаданные (например, ExifTool), рекомендуется использовать более простые ключи без пробелов. Например, вместо «Projection Type» вы можете использовать «ProjectionType».
Вот окончательная команда для вашего сценария, учитывая предлагаемые рекомендации:
ffmpeg.exe -i input.mp4 -movflags use_metadata_tags \
-metadata Spherical=true \
-metadata Stitched=true \
-metadata ProjectionType=equirectangular \
-codec copy \
output.mp4
Объяснение параметров:
-i input.mp4
: указывает входной файл.-movflags use_metadata_tags
: говорит ffmpeg использовать метаданные.-metadata
: позволяет задавать метаданные, которые вы хотите добавить. Используйте ключи без пробелов.-codec copy
: сохраняет аудио и видео в исходном качестве без повторного кодирования.output.mp4
: имя выходного файла с обновленными метаданными.
Проверка добавленных метаданных:
После выполнения команды, вы можете использовать ExifTool для проверки того, были ли успешно добавлены метаданные:
exiftool output.mp4
Заключение:
Избегайте использования пробелов в ключах метаданных для повышения совместимости и упрощения обработки. Если метаданные показываются в ffmpeg, но не отображаются в ExifTool, попробуйте использовать альтернативные ключи без пробелов.