AWS 元素媒体转换自动旋转视频?
AWS elemental media convert auto rotating video?
我正在使用 AWS elemental media convert 将 mp4 视频转换为 HLS。一切正常,但输出视频旋转了 90 度。有没有我可以用来阻止这种情况发生的设置。我正在 iPhone.
上拍摄视频
根据 AWS 博客 post (https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/),不支持自动旋转。
我也找不到手动轮换的选项,但可能在我不知情的情况下存在。
Why should you stay on Amazon Elastic Transcoder?
For the small set of features listed below, you still need to use
Amazon Elastic Transcoder.
These features are:
- WebM (VP8/VP9) input and output
- Animated GIF output
- MP4 auto-rotation flag support
- MP3, FLAC, Vorbis, and WAV audio-only output
- Encryption support using KMS integration
旋转信息在哪里?
视频文件中嵌入了可以提取的元数据。我用过 MediaInfo (https://mediaarea.net/en/MediaInfo), ffprobe I think does the same thing as well (https://ffmpeg.org/ffprobe.html).
文件元数据包含大量信息,其中之一是 "Rotation" 详细信息。 ("Rotation":“90.000”,)。我假设 ElasticTranscoder 会自动利用它来将您的文件置于正确的方向。
我希望看到 MediaConvert 至少将此选项作为输入参数。这样我们就可以将其传递给工作电话。它需要提取此元数据的步骤,但至少该选项会在那里。
AWS 正在使用您的视频文件中的元数据来确定相机旋转。然后,转码器会在转码期间自动使用此信息 "right" 视频。我们发现应对这种非直观过程的最简单方法是向弹性转码器提供旋转信息 - 例如,如果根据 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
AWS Elemental Media Convert 现在添加了对旋转的支持。
在 Inputs->Video Selector 下,您会找到一个名为 Rotate (clockwise)(InputRotate) 指定如何旋转视频。您可以选择自动旋转或指定旋转。您可以指定顺时针旋转 0、90、180 或 270 度。
如果您的输入视频容器是 .mov 或 .mp4 并且您的输入有旋转元数据,您可以选择自动让服务根据指定的旋转旋转您的视频元数据。旋转必须在 90、180 或 270 度的一个度范围内。如果旋转元数据指定任何其他旋转,则服务将默认为无旋转。
使用旋转 (InputRotate) 指定服务如何旋转您的视频。您可以选择自动旋转或指定旋转。您可以指定顺时针旋转 0、90、180 或 270 度。
默认情况下,媒体转换不进行旋转,即使您的输入视频具有旋转元数据也是如此。该服务不通过轮换元数据。
我也遇到了同样的问题。过了很久,我们注意到 ios 在 video itself
中设置了一个 Rotation
元键。因为它并不总是 90。它因记录它的相机而异 (front/back) 也许
所以要检查视频元中的旋转值,您可以使用 mediainfo.js
通过使用图书馆。您可以获取视频信息并将相同的旋转值传递给 AWS media convert / elastic transcoder JSON 无论您使用什么服务。通过这样做,它解决了我的问题。
我正在使用 AWS elemental media convert 将 mp4 视频转换为 HLS。一切正常,但输出视频旋转了 90 度。有没有我可以用来阻止这种情况发生的设置。我正在 iPhone.
上拍摄视频根据 AWS 博客 post (https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/),不支持自动旋转。
我也找不到手动轮换的选项,但可能在我不知情的情况下存在。
Why should you stay on Amazon Elastic Transcoder?
For the small set of features listed below, you still need to use Amazon Elastic Transcoder.
These features are:
- WebM (VP8/VP9) input and output
- Animated GIF output
- MP4 auto-rotation flag support
- MP3, FLAC, Vorbis, and WAV audio-only output
- Encryption support using KMS integration
旋转信息在哪里?
视频文件中嵌入了可以提取的元数据。我用过 MediaInfo (https://mediaarea.net/en/MediaInfo), ffprobe I think does the same thing as well (https://ffmpeg.org/ffprobe.html).
文件元数据包含大量信息,其中之一是 "Rotation" 详细信息。 ("Rotation":“90.000”,)。我假设 ElasticTranscoder 会自动利用它来将您的文件置于正确的方向。
我希望看到 MediaConvert 至少将此选项作为输入参数。这样我们就可以将其传递给工作电话。它需要提取此元数据的步骤,但至少该选项会在那里。
AWS 正在使用您的视频文件中的元数据来确定相机旋转。然后,转码器会在转码期间自动使用此信息 "right" 视频。我们发现应对这种非直观过程的最简单方法是向弹性转码器提供旋转信息 - 例如,如果根据 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
AWS Elemental Media Convert 现在添加了对旋转的支持。
在 Inputs->Video Selector 下,您会找到一个名为 Rotate (clockwise)(InputRotate) 指定如何旋转视频。您可以选择自动旋转或指定旋转。您可以指定顺时针旋转 0、90、180 或 270 度。
如果您的输入视频容器是 .mov 或 .mp4 并且您的输入有旋转元数据,您可以选择自动让服务根据指定的旋转旋转您的视频元数据。旋转必须在 90、180 或 270 度的一个度范围内。如果旋转元数据指定任何其他旋转,则服务将默认为无旋转。 使用旋转 (InputRotate) 指定服务如何旋转您的视频。您可以选择自动旋转或指定旋转。您可以指定顺时针旋转 0、90、180 或 270 度。
默认情况下,媒体转换不进行旋转,即使您的输入视频具有旋转元数据也是如此。该服务不通过轮换元数据。
我也遇到了同样的问题。过了很久,我们注意到 ios 在 video itself
中设置了一个 Rotation
元键。因为它并不总是 90。它因记录它的相机而异 (front/back) 也许
所以要检查视频元中的旋转值,您可以使用 mediainfo.js
通过使用图书馆。您可以获取视频信息并将相同的旋转值传递给 AWS media convert / elastic transcoder JSON 无论您使用什么服务。通过这样做,它解决了我的问题。