控制剪辑成片时长

更新时间: 2023-04-14 16:55:44

本文档介绍了在普通剪辑场景下,可以通过哪些方式来对成片的时长进行控制。

一、设置主轨道

1.1 背景

痛点场景:当您已经录制好一段音频素材,并期望以这段音频素材为主,搭配未知数量与时长的视频素材或图片素材生成最终成片。您仅要求视频中图像(视频、图片)素材的展示时长能与音频素材对齐即可,而又不希望在每个图像素材的时间参数上的配置上投入太多工作。

解决方案:在上述场景中,通过指定这段音频素材所在的轨道为“主轨道”,其它轨道的时长会按照“主轨道”的时长进行一定的自适应,也即如果某一轨道的时长超过了主轨道时长,这条轨道则会按照主轨道时长进行截断。

有益效果:

  1. 这样您就可以在不了解素材时长信息的情况下完成剪辑目标;

  2. 一定程度上也能够减轻您在配置 In、Out、TimelineIn 和 TimelineOut 等时间相关的时间线参数上的工作量。

1.2 介绍

您可以通过在时间线 Timeline 中设置MainTrack字段为true指定某一条视频轨或音频轨为主轨道,进而控制成片时长。

主轨道的具体逻辑为:

  1. 最终成片时长与指定的主轨道时长相同;

  2. 如果除主轨道以外的轨道时长较长,会依据主轨道时长进行截断。

说明
  • 在一次剪辑中最多只能指定一条轨道为主轨道,如果指定多条轨道为主轨道,会以第一条被指定的为准;

  • 目前仅支持设置视频轨与音频轨为主轨道。

1.3 示例

下面的时间线 Timeline 示例中:

  1. 一共有 2 条剪辑轨道,其中 1 条视频轨,1 条音频轨;

  2. 视频轨中添加了 4 个视频素材,总时长为 20 秒,音频轨未设置时间信息参数,但传入的音频素材 “your_audio.mp3” 时长为 15 秒;

  3. 指定音频轨为主轨道。

{
    "VideoTracks": [{
        "VideoTrackClips": [{
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
            "Out": 5
        }, {
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
            "Out": 5
        }, {
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video3.mp4",
            "Out": 5
        }, {
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video4.mp4",
            "Out": 5
        }]
    }],
    "AudioTracks": [{
        "MainTrack": true,
        "AudioTrackClips": [{
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_audio.mp3"
        }]
    }]
}

成片时长:通过此配置剪辑输出的最终成片时长为 15 秒,与指定为主轨道的音频轨时长相同。

说明

您可以固定好音频素材,仅通过替换不同的图像素材(视频、图片),同时不必考虑所使用素材的时间参数配置工作,来生成符合需求的不同成片。

二、设置 MaxDuration

2.1 背景

在当前的短视频场景下,大部分的剪辑成片时长都会被设置为一个较短的固定值,比如 15 秒、20 秒。

痛点场景:现在您已经拥有了大量视频、音频素材等,计划通过这些素材的混搭剪辑生成不同的成片;希望这批混剪生成的成片能够具有统一的时长,但同样也不希望在每个素材的时长参数配置上投入过多的工作。

解决方案:在上述的场景中,您可以通过 MaxDuration 参数指定成片的最大时长,在这次剪辑中,视频轨、音频轨、字幕轨与特效轨均会按照指定的 MaxDuration 值进行自适应设置:

  1. 如果素材时长超过 MaxDuration 值,则会自动截断;

  2. 如果未指定全局图片、横幅字幕的展示时长信息,那么它们的展示时长也会自动被设置为 MaxDuration。

有益效果:

  1. 方便您快速生成具有固定时长的成片;

  2. 减轻您在配置 In、Out、TimelineIn 和 TimelineOut 等时间相关的时间线参数上的工作量;

  3. 提升您在大批量剪辑时的剪辑效率。

2.2 介绍

在调用 SubmitMediaProducingJob 接口提交剪辑任务时,您可以通过在入参 OutputMediaConfig 中设置MaxDuration来限制成片的最大时长。

MaxDuraiton的具体逻辑为:

  1. 如果某一条参与剪辑的轨道的时长大于MaxDuration的值,那么这一条轨道将会按照设置的MaxDuration值进行截断,也即成片时长不会大于MaxDuration

  2. 如果参与剪辑的所有轨道时长均小于MaxDuration,那么成片时长与不设置MaxDuration时相同。

说明
  • 如果同时设置了MaxDuration与指定了主轨道,那么MaxDuration会生效,主轨道会失效。

2.3 示例

下面的示例包含 OutputMediaConfig 示例与时间线 Timeline 示例。

OutputMediaConfig 示例中:

  1. 设置了MaxDuration值为 15 秒。

{
    "MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_output.mp4",
    "MaxDuration": 15
}

时间线 Timeline 示例中:

  1. 一共有 4 条轨道,其中 2 条视频轨,1 条音频轨和 1 条字幕轨;

  2. 第 1 条视频轨中放了一个类型为全局图片的 jpg 图片素材;

  3. 第 2 条视频轨中连续添加了 2 个视频素材,并且没有设置时间相关的信息;

  4. 音频轨中添加了一个音频素材,并且没有设置时间相关的信息;

  5. 字幕轨中添加了一个横幅文字,并且同样没有设置时间参数。

{
    "VideoTracks": [{
        "VideoTrackClips": [{
            "Type": "GlobalImage",
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg"
        }]
    }, {
        "VideoTrackClips": [{
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4"
        }, {
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4"
        }]
    }],
    "AudioTracks": [{
        "AudioTrackClips": [{
            "MediaUrl": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_audio.mp3"
        }]
    }],
    "SubtitleTracks": [{
        "SubtitleTrackClips": [{
            "Type": "Text",
            "Content": "我是横幅文字",
            "Alignment": "CenterCenter"
        }]
    }]
}

成片时长:通过此配置剪辑输出的最终成片时长为 15 秒,与MaxDuration设置的值相同。其中:

  1. 全局图片展示时长被自动适配为 15 秒;

  2. 考虑到大部分场景下的实际素材(视频素材、音频素材)时长会大于 15 秒,在本用例的表现为,包含两个视频素材的视频轨与包含一个音频素材的音频轨均被自动截取为 15 秒;

  3. 横幅文字的展示时长被自动适配为 15 秒。

阿里云首页 智能媒体服务 相关技术圈