Элементарное медиа AWS конвертирует автоматически вращающееся видео

Я конвертирую MP4-видео в HLS, используя AWS элементное конвертирование медиа. Все работает хорошо, но выходное видео поворачивается на 90 градусов. Есть ли настройка, которую я могу использовать, чтобы не допустить этого? Я снимаю видео на iPhone.

6 ответов

В разделе " Входы" -> "Селектор видео" вы найдете параметр " Повернуть (по часовой стрелке)"(InputRotate), чтобы указать, как повернуть видео. Вы можете выбрать автоматический поворот или указать поворот. Вы можете указать поворот на 0, 90, 180 или 270 градусов по часовой стрелке.

Если ваш входной видеоконтейнер .mov или.mp4 и ваш вход имеет метаданные поворота, вы можете выбрать "Автоматически", чтобы служба поворачивала ваше видео в соответствии с поворотом, указанным в метаданных. Поворот должен быть в пределах одного градуса: 90, 180 или 270 градусов. Если в метаданных вращения указано любое другое вращение, служба по умолчанию не будет вращать. Используйте Rotate (InputRotate), чтобы указать, как сервис поворачивает ваше видео. Вы можете выбрать автоматический поворот или указать поворот. Вы можете указать поворот на 0, 90, 180 или 270 градусов по часовой стрелке.

По умолчанию медиаконвертер не вращается, даже если входное видео имеет метаданные поворота. Сервис не передает метаданные ротации.

В AWS Elemental Media Convert добавлена ​​поддержка ротации.

Согласно сообщению в блоге AWS ( https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/) автоматическое вращение не поддерживается.

Я не могу найти вариант для ручного вращения, но это может существовать без моего ведома.

Почему вы должны остаться на Amazon Elastic Transcoder?

Для небольшого набора функций, перечисленных ниже, вам все равно нужно использовать Amazon Elastic Transcoder.

Эти функции:

  • WebM (VP8 / VP9) вход и выход
  • Анимированный GIF-вывод
  • Поддержка флага автоповорота MP4
  • Выход только для MP3, FLAC, Vorbis и WAV
  • Поддержка шифрования с использованием интеграции KMS

Где информация о вращении?

В видеофайлах есть встроенные метаданные, которые можно извлечь. Я использовал MediaInfo ( https://mediaarea.net/en/MediaInfo), ffprobe, я думаю, делает то же самое ( https://ffmpeg.org/ffprobe.html).

В метаданных файла содержится много информации, одна из которых - это детали "Поворот". ("Вращение": "90.000",). Я предполагаю, что ElasticTranscoder автоматически использует это, чтобы поместить ваш файл в правильную ориентацию.

Я хотел бы видеть MediaConvert, по крайней мере, иметь эту опцию в качестве входного параметра. Таким образом, мы могли бы передать это на работу. Требуется шаг извлечения этих метаданных, но по крайней мере вариант будет там.

AWS использует метаданные в вашем видеофайле для определения поворота камеры. Затем транскодеры автоматически используют эту информацию для "правого" видео во время транскодирования. Самый простой метод, который мы нашли для противодействия этому неинтуитивному процессу, состоит в том, чтобы передать эластичному транскодеру информацию о вращении - если поворот согласно iOS, например, составляет 270 градусов, введите транскодер 270 как вращение - полученное видео будет правильным.

Хотя MediaConvert сегодня не поддерживает автоповорот, вы все равно можете обработать содержимое в MediaConvert и затем добавить метаданные поворота в полученный файл.

Если вы хотите добавить информацию о ротации обратно в вывод MediaConvert, попробуйте использовать для этого ffmpeg или exiftool. Вот несколько примеров команд:

ffmpeg -i EMC_OUTPUT.MOV -metadata:s:v rotate="-90" -c copy rotated.mov

Или же

exiftool "-Rotation=90” rotated.mov

Я тоже сталкиваюсь с той же проблемой. Спустя много времени мы заметили, что ios установил Rotationмета ключ в video itself. Поскольку это не всегда 90. Это зависит от того, какой камерой он записан (спереди/сзади), может быть.

Итак, чтобы проверить значение поворота в метаданных видео, вы можете использовать mediainfo.js.

С помощью библиотеки. вы можете получить информацию о видео и передать одно и то же значение поворота в AWS media convert/эластичный транскодер JSON, какой бы сервис вы ни использовали. Делая это, он решает проблему для меня.

Другие вопросы по тегам