开发者社区 问答 正文

在智能媒体服务这边横屏的视频 使用9:16的会被压缩 这个需要怎么处理?

在智能媒体服务这边横屏的视频 使用9:16的会被压缩 这个需要怎么处理?8967043a90295de095424d048f3eba05.png

展开
收起
三分钟热度的鱼 2024-04-17 21:43:42 89 分享 版权
来自: 阿里云视频云
阿里云 AI 助理回答

在智能媒体服务中,如果横屏视频被设置为9:16的竖屏分辨率时,系统会根据素材和成片的宽高进行等比缩放,并将素材居中显示。这种情况下,可能会出现上下黑边或模糊区域的现象。以下是具体的处理方法:


1. 补充上下黑边

当横屏视频被设置为竖屏分辨率(如9:16)时,系统会自动对视频进行等比缩放,并在上下两侧补充黑边以填充空白区域。
无需额外配置,这是默认行为。


2. 补充上下模糊区域

如果您希望上下区域不是纯黑边,而是带有模糊效果的背景,可以通过设置Effect Type:Background来实现。具体操作如下: - 在Timeline中添加背景效果。 - 设置Radius(模糊半径)参数,取值范围为[0.01, 1],用于控制模糊程度。

示例代码片段:

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "http://example.com/test_media/h1.mp4",
          "Effects": [
            {
              "Type": "Background",
              "Radius": 0.5
            }
          ]
        }
      ]
    }
  ]
}

3. 调整输出分辨率

如果您希望避免视频被压缩或变形,可以调整输出分辨率以适配横屏视频的比例。例如: - 在调用SubmitMediaProducingJob接口时,通过OutputMediaConfig中的WidthHeight字段设置合适的分辨率。 - 推荐使用按长短边设置的方式,确保视频不会被拉伸变形。

示例代码片段:

String outputMediaUrl = "https://your-bucket.oss-cn-shanghai.aliyuncs.com/target_video.mp4";
String outputMediaConfig = "{\"MediaURL\":\"" + outputMediaUrl + "\",\"Width\":1080,\"Height\":1920}";
SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest();
request.setTimeline("<your-timeline>");
request.setOutputMediaConfig(outputMediaConfig);
SubmitMediaProducingJobResponse response = iceClient.submitMediaProducingJob(request);

4. 修改预览画布比例

如果您正在使用阿里云视频剪辑Web SDK,可以通过设置defaultAspectRatio参数来调整默认预览画布比例。例如,将画布比例设置为16:9以适配横屏视频。

示例代码片段:

window.AliyunVideoEditor.init({
  defaultAspectRatio: '16:9'
});

5. 重要提醒

  • 确保Timeline正确性:在修改Timeline数据后,必须保证其结构和字段的正确性,否则可能导致服务端接口调用失败。
  • 分辨率适配:如果输入视频既有横屏也有竖屏,推荐使用按长短边设置的方式,避免视频被拉伸或变形。
  • 字体缩放问题:如果合成时字体大小不一致,请确保Timeline中包含FECanvas字段,并设置正确的分辨率(如16:9或9:16)。

通过以上方法,您可以有效解决横屏视频在9:16竖屏分辨率下的压缩问题,并根据需求选择适合的处理方式。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答