このトピックでは、通常編集シナリオで生成される動画の長さを制御するために使用できる方法について説明します。
1. メイン トラックを設定する
1.1 背景
課題: 音声ファイルを録音し、長さ不明の動画または画像を音声ファイルと組み合わせて動画を生成したいと考えています。動画または画像の表示時間を音声の長さに合わせたいと考えています。各動画または画像の時間パラメータの設定に多くの労力を費やしたくありません。
解決策: 前述のシナリオでは、音声素材が配置されているトラックをメイン トラックとして設定できます。他のトラックの長さは、メイン トラックの長さに基づいて調整されます。トラックの長さがメイン トラックの長さを超える場合、トラックはメイン トラックの長さに基づいて切り詰められます。
メリット:
この方法では、素材の長さを知らなくても編集を完了できます。
In、Out、TimelineIn、TimelineOut などのタイムライン パラメータを設定する作業量が削減されます。
1.2 概要
タイムライン 内の MainTrack
フィールドを true
に設定することで、動画または音声トラックをメイン トラックとして指定できます。
メイン トラックについては、以下の情報に注意してください。
最終的な動画の長さは、指定されたメイン トラックの長さと同じです。
トラックの長さがメイン トラックの長さを超える場合、トラックはメイン トラックの長さに基づいて切り詰められます。
動画内でメイン トラックとして指定できるトラックは 1 つだけです。複数のトラックがメイン トラックとして指定されている場合、最初のトラックが優先されます。
動画または音声トラックのみをメイン トラックとして設定できます。
1.3 例
次の タイムライン の例:
1 つのビデオ トラックと 1 つのオーディオ トラックを含む、2 つのトラックが存在します。
合計 20 秒の 4 つの動画がビデオ トラックに追加されます。オーディオ トラックには時間関連のパラメータは設定されていませんが、「your_audio.mp3」音声ファイルの長さは 15 秒です。
オーディオ トラックはメイン トラックとして指定されています。
{
"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 秒で、メイン トラックとして指定されたオーディオ トラックの長さと同じです。
固定音声ファイルを使用し、素材の時間パラメータを設定することなく、動画と画像のみを置き換えることができます。これにより、さまざまなビジネス要件を満たす動画を生成できます。
2. MaxDuration を指定する
2.1 背景
ショート動画が普及している時代において、15 秒や 20 秒などの固定長の動画を制作したい場合があります。
課題: 大量の動画と音声素材があり、これらの素材を使用して固定長のさまざまな動画を生成したいと考えていますが、各素材の時間関連パラメータの設定に多くの労力を費やしたくありません。
解決策: 前述のシナリオでは、MaxDuration パラメータを設定して、動画の最大長を指定できます。この動画では、動画トラック、音声トラック、字幕トラック、およびエフェクト トラックは、指定された MaxDuration パラメータに基づいて自動的に調整されます。
素材の長さが MaxDuration の値を超える場合、素材は自動的に切り詰められます。
グローバル画像またはバナー テキストの表示時間を指定しない場合、これらの素材の表示時間も自動的に MaxDuration の値に設定されます。
メリット:
固定長の動画を効率的に生成できます。
In、Out、TimelineIn、TimelineOut などのタイムライン パラメータを設定する作業量が削減されます。
多数の動画を効率的に編集できます。
2.2 概要
SubmitMediaProducingJob オペレーションを呼び出して編集ジョブを送信するときに、OutputMediaConfig パラメータの MaxDuration
フィールドを設定して、最終的な動画の最大長を指定できます。
MaxDuraiton
に関する以下の制限に注意してください。
トラックの長さが
MaxDuration
で指定された長さを超える場合、トラックはMaxDuration
の値に基づいて切り詰められます。最終的な動画の長さは、MaxDuration
で指定された長さを超えません。すべてのトラックの長さが
MaxDuration
で指定された長さよりも短い場合、最終的な動画の長さは、MaxDuration
が指定されていない場合と同じです。
MaxDuration
とメイン トラックの両方が指定されている場合、MaxDuration
が有効になり、メイン トラックは無効になります。
2.3 例
次のセクションでは、OutputMediaConfig と Timeline の設定例を示します。
MaxDuration
パラメータは 15 秒に設定されています。 // MaxDurationを15秒に設定
{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_output.mp4",
"MaxDuration": 15
}
Timeline の例:
2 つのビデオ トラック、オーディオ トラック、字幕トラックの合計 4 つのトラックが存在します。
最初のビデオ トラックでは、JPG 形式の画像がグローバル画像として指定されています。
2 つの動画が 2 番目のビデオ トラックに連続して追加され、時間関連のパラメータは指定されていません。
音声素材がオーディオ トラックに追加され、時間関連のパラメータは指定されていません。
バナー テキストが字幕トラックに追加され、時間関連のパラメータは指定されていません。
{
"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": "Banner text", // バナーテキスト
"Alignment": "CenterCenter"
}]
}]
}
最終的な動画の長さ: 出力される動画の長さは 15 秒で、MaxDuration
で指定された長さと同じです。
グローバル画像の表示時間は自動的に 15 秒に設定されます。
ほとんどのシナリオでは、動画と音声素材は 15 秒を超えています。この場合、2 つの動画を含むビデオ トラックと 1 つの音声素材を含むオーディオ トラックは自動的に 15 秒に切り詰められます。
バナー テキストの表示時間は自動的に 15 秒に設定されます。
3. トラックの自動速度調整
3.1 背景
課題: メイン トラックを設定した後、他のトラックはデフォルトでメイン トラックの長さに基づいて切り詰められます。ただし、トラックが切り詰められると、コンテンツの整合性が損なわれ、最終的な動画が使用できなくなります。たとえば、ビデオ トラックがメイン トラックとして設定され、オーディオ トラックが切り詰められると、完全な文の最後の数語が失われる可能性があります。別のシナリオでは、オーディオ トラックをメイン トラックとして設定します。動画がオーディオ トラックよりも長い場合、動画は切り詰められます。ただし、動画コンテンツがオーディオ トラックよりも短い場合、音声が再生されていないときに動画コンテンツが存在しないため、最終的な動画の品質に影響します。
解決策: 前述のシナリオでは、メイン トラックを指定し、他のトラックの自動速度調整を設定できます。ビデオ トラックの長さがメイン トラックの長さを超える場合、ビデオの速度が自動的に増加してビデオ トラックの長さが短縮されます。ビデオ トラックの長さがメイン トラックの長さよりも短い場合、ビデオの速度が自動的に減少してビデオ トラックの長さが増加します。
メリット:
動画の長さが音声の長さと同じであることを確認する必要はありません。動画の長さが音声の長さと異なる場合、動画コンテンツの整合性を保証できます。
一部のトラックのコンテンツが不足している場合は、トラックの速度を落として黒い画面を防ぐことができます。
3.2 概要
タイムライン パラメータでは、現在のトラックがメイン トラックよりも長い場合は TrackShortenMode
を設定し、現在のトラックがメイン トラックよりも短い場合は TrackExpandMode
を設定できます。これらの 2 つのモードは、自動速度調整を示す AutoSpeed
のみサポートしています。 // 自動速度調整を示すAutoSpeedのみサポート
注:
自動速度調整は素材の位置合わせの精度に影響を与えるため、自動速度調整とトラック間の素材の位置合わせを同時に設定することはできません。
ループ再生はトラック全体を自動的に補完するため、ループ再生では自動速度調整は有効になりません。
3.3 例
例 1: ビデオ トラックがメイン トラックです。音声が動画よりも長い場合、動画が終了したときに音声が終了するように、音声の速度が自動的に増加します。 // 音声が動画よりも長い場合、動画が終了したときに音声が終了するように、音声の速度が自動的に増加します
{
"VideoTracks": [{
"MainTrack": true,
"VideoTrackClips": [{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
"In": 0,
"Out": 10
}, {
"Type": "Image",
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg",
"Duration": 4
}, {
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
"In": 0,
"Out": 5
}]
}],
"AudioTracks": [{
"TrackShortenMode": "AutoSpeed", // 音声が長い場合、速度を上げて短縮
"AudioTrackClips": [{
"Content": "Freshippo just opened a store in Huilongguan. It is the grand opening day, and there is quite a crowd at the store. Freshippo offers some great deals on snacks and drinks. Come check it out.", // 盒馬鮮生が回龍観にオープンしました。開店初日で、店内は大変賑わっています。盒馬鮮生では、軽食や飲み物がお得な価格で提供されています。ぜひお越しください。
"Type": "AI_TTS",
"Voice": "zhiqing",
"Effects": [{
"Type": "Volume",
"Gain": 1
}, {
"FontSize": 34,
"Y": 0.658,
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Type": "AI_ASR",
"Font": "FZHei-B01S"
}]
}]
}]
}
例 2: オーディオ トラックがメイン トラックです。動画が音声よりも長い場合、動画の速度が自動的に増加します。動画が音声よりも短い場合、動画の速度が自動的に減少します。これにより、音声が終了したときに動画が終了することが保証されます。 // 音声が終了したときに動画が終了することが保証されます
{
"VideoTracks": [{
"TrackExpandMode": "AutoSpeed", // 動画が短い場合、速度を下げて延長
"TrackShortenMode": "AutoSpeed", // 動画が長い場合、速度を上げて短縮
"VideoTrackClips": [{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video1.mp4",
"In": 0,
"Out": 10
},
{
"Type": "Image",
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_image1.jpg",
"Duration": 4
},
{
"MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/your_video2.mp4",
"In": 0,
"Out": 5
}
]
}],
"AudioTracks": [{
"MainTrack": true,
"AudioTrackClips": [{
"Content": "Freshippo just opened a store in Huilongguan. It is the grand opening day, and there is quite a crowd at the store. Freshippo offers some great deals on snacks and drinks. Come check it out.", // 盒馬鮮生が回龍観にオープンしました。開店初日で、店内は大変賑わっています。盒馬鮮生では、軽食や飲み物がお得な価格で提供されています。ぜひお越しください。
"Type": "AI_TTS",
"Voice": "zhiqing",
"Effects": [{
"Type": "Volume",
"Gain": 1
},
{
"FontSize": 34,
"Y": 0.658,
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Type": "AI_ASR",
"Font": "FZHei-B01S"
}
]
}]
}]
}