我正在使用AWS中的VOD(video on demand)模板进行媒体转换。它创建一个Lambda函数,该函数又将Job推送到AWS MediaConvert中。最近,AWS增加了对Rotate
属性的支持,该属性设置为AUTO
时会从源文件中读取元数据,并在转换期间对视频进行适当的旋转。它正在旋转视频,但是在此过程中似乎缩小了视频。见下文。
您可以看到,与其旋转整个视频,不如将其旋转以适合宽高比容器。源文件是来自iPhone的.mov。
正在寻求有关如何使MediaConvert旋转完整视频而不是尝试旋转整个视频,然后缩小以适合原始源视频尺寸的帮助。
答案 0 :(得分:1)
我不敢评论您的答案,但我发现修改代码以处理人像视频非常有用。令人惊讶的是,即使是主仓库中最新版本的代码也无法很好地处理人像视频,因此您的PR应该已经被接受。 我对您的代码进行了分叉,并进行了其他一些更改,其中包括:
所有视频格式对我来说都很好! Link to my forked github repo
答案 1 :(得分:0)
如果您的1920x1080视频的元数据为90度,并且您使用的作业指定的输出分辨率为1920x1080,那么这会导致视频首先旋转为1080x1920视频,然后将其旋转成柱框+缩放比例形成1920x1080的输出分辨率。就像这张图片一样,它看起来像是旋转的,装箱的,并且在垂直方向上有些收缩。
为了防止这种情况,最好不要指定输出的宽度和高度,以使其遵循旋转光源的尺寸。
答案 2 :(得分:0)
事实证明,@ Kumar Swaminathan的答案基本上是正确的。 AWS的“视频点播”模板不包含用于人像分辨率的MediaConvert模板,导致转换的步骤根本无法处理旋转。解决问题的正确方法似乎是:
Rotate
时将AUTO
标记为"Rotate": "AUTO"
传递给MediaConvert rotate
mediainfo属性,然后选择新的肖像配置文件之一进行编码更新
我实现了对肖像视频的支持,并向AWS提交了PR。 https://github.com/awslabs/video-on-demand-on-aws/pull/29