すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Services:一般的なシナリオ

最終更新日:Nov 09, 2025

このトピックでは、一般的なシナリオにおけるインテリジェントな図文マッチングの合成パラメーター、詳細設定、および SDK 呼び出しの例について説明します。

重要
  • スクリプトベースの自動ビデオ制作とインテリジェントな図文マッチングは、タスクを送信するために同じ API を共有します。パラメーターを通じてこれら 2 つを区別する方法については、「パラメーターの違いの説明」をご参照ください。

  • 注:このインターフェイスでは、すべてのメディアアセットの OSS URL のリージョンは、OpenAPI エンドポイントのリージョンと一致している必要があります。

  • サポートされているリージョン:中国 (上海)、中国 (北京)、中国 (杭州)、中国 (深圳)、米国 (西部)、シンガポール。

  • 実際の使用では、ドキュメント内の [your-bucket]、[your-region-id]、[your-file-name]、[your-file-path]、およびメディアアセット ID (例: 「****9d46c8b4548681030f6e****」) などのすべてのパラメーター例を実際の値に置き換えてください。

説明
  • このトピックをよりよく理解するために、まず「インテリジェントワンクリックビデオ制作操作ガイド」を通じて [インテリジェント図文マッチング - 一般的なシナリオ] の概念と使用プロセスについて学習することをお勧めします。

  • インテリジェント図文マッチング - 一般的なシナリオには 2 つの制作モードが含まれます。このトピックでは、次のモードについて詳しく説明します。

    • ブロードキャストモード

    • ストーリーボードスクリプト

使用方法

InputConfig パラメーターの説明

InputConfig を構成して、ビデオ素材、ナレーション、バックグラウンドミュージック、ステッカーなどの基本素材のパラメーター構成を指定できます。

パラメーター

タイプ

説明

値の例

必須

サポートされているモード

MediaArray

List<String>

  • メディアアセットをアップロードして編集素材を指定します。メディアアセット ID または素材の OSS URL のリストを渡すことをサポートし、合計ビデオ時間は最大 2 時間です。

  • サポートされている素材フォーマットについては、「ビデオフォーマット」をご参照ください。

["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"]

MediaArray または MediaSearchInput のいずれかが必要です

すべて

MediaSearchInput

MediaSearchInput

検索ライブラリと主題説明テキストを指定して、編集素材をインテリジェントに検索およびマッチングします。

{"LibSearchCondition":{"SearchLibs":["ims-default-search-lib","test-20"],"SearchText":"Alibaba Cloud assistant is learning how to livestream"}}

すべて

TitleArray

List<String>

タイトル配列、各制作で 1 つがランダムに選択されます

最大 50 タイトル、各タイトルは 50 文字を超えないこと

["タイトル 1","タイトル 2"]

いいえ

すべて

SubHeadingArray

List<SubHeading>

字幕設定

[{"Level":1,"TitleArray":["レベル 1 字幕 1","レベル 1 字幕 2"]},{"Level":3,"TitleArray":["レベル 3 字幕"]}]

いいえ

すべて

SpeechTextArray

List<String>

  • ナレーションスクリプト配列、各制作で 1 つがランダムに選択されます。

  • 最大 50 エントリ、各ナレーションスクリプトは 1000 文字を超えないこと。

  • SSML マークアップ言語 を通じて音声合成を制御することをサポートします

    重要

    現在、<break>、<s>、<sub>、<w>、<phoneme>、<say-as> のみをサポートしています。CosyVoice 関連のトーンは <break>、<s>、<sub> のみをサポートします

["ナレーションコンテンツ 1","ナレーションコンテンツ 2"]

いいえ

  • ブロードキャストモード

SceneInfo

SceneInfo

シーン情報、シーン関連のパラメーターに使用されます。

パラメーター例:ブロードキャストモード」、「パラメーター例:ストーリーボードスクリプト」をご参照ください。

はい

  • ストーリーボードスクリプト

StickerArray

List<Sticker>

  • ステッカー配列、各制作で 1 つがランダムに選択されます。最大 50、メディアアセット ID または OSS URL をサポートします。

  • ランダム選択ルール:10 個のステッカーが提供され、制作するビデオの数が 20 に設定されている場合、1 から 10 までの乱数が生成されます。たとえば 3 の場合、ステッカーは 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7... の順序で選択されます。

  • サポートされている素材フォーマットについては、「イメージフォーマット」をご参照ください。

[{"MediaId":"****9d46c8b4548681030f6e****","X":10,"Y":100,"Width":300,"Height":300,"Opacity":0.6}]

いいえ

すべて

BackgroundMusicArray

List<String>

  • バックグラウンドミュージック配列、各制作で 1 つがランダムに選択されます。最大 50、メディアアセット ID または OSS URL をサポートします。

  • ランダム選択ルール:10 個のバックグラウンドミュージックトラックが提供され、制作するビデオの数が 20 に設定されている場合、1 から 10 までの乱数が生成されます。たとえば 3 の場合、バックグラウンドミュージックトラックは 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7... の順序で選択されます。

  • サポートされている素材フォーマットについては、「オーディオフォーマット」をご参照ください。

["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"]

いいえ

すべて

BackgroundImageArray

List<String>

  • バックグラウンドイメージ配列、各制作で 1 つがランダムに選択されます。最大 50、メディアアセット ID または OSS URL をサポートします。

  • ランダム選択ルール:10 個のバックグラウンドイメージが提供され、制作するビデオの数が 20 に設定されている場合、1 から 10 までの乱数が生成されます。たとえば 3 の場合、バックグラウンドイメージは 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7... の順序で選択されます。

  • サポートされている素材フォーマットについては、「イメージフォーマット」をご参照ください。

["****b4549d46c88681030f6e****","****549d46c88b4681030f6e****"]

いいえ

すべて

MediaSearchInput パラメーターの説明

パラメーター

タイプ

説明

必須

LibSearchCondition

LibSearchCondition

検索ライブラリの検索条件設定

必須

LibSearchCondition パラメーターの説明

パラメーター

タイプ

説明

値の例

必須

SearchLibs

List<String>

検索ライブラリリスト

["ims-default-search-lib"]

はい

SearchText

String

主題説明テキスト。ターゲットのマッチング素材のテーマコンテンツを説明するために使用され、最大テキスト長は 20 文字です。

海、サンゴ礁、アザラシ、イルカ、海洋環境

はい

SceneInfo パラメーターの説明

パラメーター

タイプ

説明

必須

Scene

String

マッチングシーンタイプ。一般的なシナリオでは、固定値 "General" を渡す必要があります。

はい

ShotInfo

ShotInfo

ストーリーボードスクリプトを設定します。

説明

このパラメーターはストーリーボードスクリプトモードにのみ適用されます。ブロードキャストモードを使用する場合、このパラメーターは不要です。

いいえ

ShotInfo パラメーターの説明

説明

このパラメーターはストーリーボードスクリプトモードにのみ適用されます。ブロードキャストモードを使用する場合、このパラメーターは不要です。

パラメーター

タイプ

説明

必須

ShotScripts

List<ShotScript>

ストーリーボードスクリプト配列

はい

ShotScript パラメーターの説明

説明

このパラメーターはストーリーボードスクリプトモードにのみ適用されます。ブロードキャストモードを使用する場合、このパラメーターは不要です。

パラメーター

タイプ

説明

値の例

必須

ScriptText

String

単一ショットのスクリプトテキスト。ショットの内容を説明するために使用されます。

彼は最近、新しい魔法の薬を開発しています。

いいえ

SpeechText

String

  • 単一ショットのナレーションスクリプト、100 文字を超えないこと

  • SSML マークアップ言語 を通じて音声合成を制御することをサポートします

    重要

    現在、<break>、<s>、<sub>、<w>、<phoneme>、<say-as> のみをサポートしています

老魔法使いのダニーは奇妙な楽器をいじっています。彼は最近、新しい魔法の薬を開発しています。

いいえ

Duration

Float

  • ショットの持続時間 (秒)。値は 1 秒以上である必要があります

  • ナレーションがない場合にのみ有効です。ナレーションが存在する場合、ショットの持続時間はナレーションの持続時間に基づいて自動的に計算されます。

5

いいえ

Volume

Float

  • 入力ビデオのボリューム。ここでボリュームが設定されている場合 (Volume)、現在のショットのビデオボリュームはこのボリュームに合わせられます。このグループに対しては、EditingConfig.MediaConfig.Volume はもはや有効ではありません。

  • 値の範囲:[0, 10.0]、小数点以下 2 桁をサポートします。

0.5

いいえ

パラメーター例:ブロードキャストモード

{
  // MediaArray または MediaSearchInput のいずれかを選択
  "MediaArray": [
    "****9d46c886b45481030f6e****",
    "****c886810b4549d4630f6e****",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.mp4",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test2.png"
  ],
  // MediaArray または MediaSearchInput のいずれかを選択
  "MediaSearchInput": {
        "LibSearchCondition": {
            "SearchLibs": [
                "ims-default-search-lib",
                "test-20"
            ],
            "SearchText": "Alibaba Cloud assistant is learning how to livestream"
      }
  },
  "TitleArray": [
    "回龍観盒馬鮮生オープン",
    "盒馬鮮生がオープンしました"
  ],
  "SubHeadingArray": [
    {
      "Level": 1,
      "TitleArray": ["字幕 1", "字幕 2"]
    },
    {
      "Level": 3,
      "TitleArray": ["レベル 3 字幕"]
    }
  ],
  "SpeechTextArray": [
    "近くのモールに新しい盒馬鮮生の店がオープンしました。今日はオープニング初日です、急いで盛り上がりに参加しましょう。この盒馬の店は大きくありませんが、モールにはたくさんの人がいます。スナックや飲み物はかなり手頃です。人々は長い列を作っています。ぜひ見に来てください!",
    "近くのモールに新しい盒馬鮮生の店がオープンしました。今日はオープニング初日です、急いで盛り上がりに参加しましょう",
    "<speak>戦いは <phoneme alphabet=\"py\" ph=\"zheng4 hao3\">激しい</phoneme>。今日、我々の主人公、卓球の伝説馬龍は、栄光の頂点に向かって突き進んでいます。準々決勝で強敵の上園俊平と対戦し、馬龍は恐れることなく、すべてのラリーで全力を尽くします。彼の正確なボール配置と冷静な判断力は、この試合で彼に優位をもたらしました。最終的に、馬龍は相手を打ち破り、準決勝に進出しました。</speak>"
  ],
  "Sticker": {
    "MediaId": "****b681034549d46c880f6e****",
    "X": 10,
    "Y": 100,
    "Width": 300,
    "Height": 300,
    "Opacity": 0.6
  },
  "StickerArray": [
    {
      "MediaId": "****9d46c8b4548681030f6e****",
      "X": 10,
      "Y": 100,
      "Width": 300,
      "Height": 300,
      "Opacity": 0.6
    },
    {
      "MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test3.png",
      "X": 10,
      "Y": 100,
      "Width": 300,
      "Height": 300
    }
  ],
  "BackgroundMusicArray": [
    "****b4549d46c88681030f6e****",
    "****549d46c88b4681030f6e****",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test4.mp3"
  ],
  "BackgroundImageArray": [
    "****6c886b4549d481030f6e****",
    "****9d46c8548b4681030f6e****",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png"
  ]
}

パラメーター例:ストーリーボードスクリプト

{
  // MediaArray または MediaSearchInput のいずれかを選択
  "MediaArray": ["****9d46c886b45481030f6e****", "****c886810b4549d4630f6e****"],
  // MediaArray または MediaSearchInput のいずれかを選択
  "MediaSearchInput": {
        "LibSearchCondition": {
            "SearchLibs": [
                "ims-default-search-lib",
                "test-20"
            ],
            "SearchText": "Alibaba Cloud assistant is learning how to livestream"
      }
  },
  "SceneInfo": {
    "Scene": "General", // 一般的なマッチング 
    "ShotInfo": {
      "ShotScripts": [
        {
          "ScriptText": "これは最初のショットのスクリプトテキストです",
          "SpeechText": "これは最初のショットのナレーションスクリプトです、ショットの持続時間はナレーションの持続時間に一致します"
        },
        {
          "ScriptText": "これは 2 番目のショットのスクリプトテキストです、ナレーションスクリプトがない場合、Duration を設定してショットの長さを制御できます",
          "Duration": 5.0, // ナレーションスクリプトがない場合に設定可能
          "Volume": 1.0 // このショットのビデオ素材のボリュームを設定
        },
        {
          "ScriptText": "これは 3 番目のショットのスクリプトテキストです",
          "SpeechText": "<speak>ナレーションスクリプトは ssml をサポートしています。戦いは <phoneme alphabet=\"py\" ph=\"zheng4 hao3\">激しい</phoneme>。今日、我々の主人公、卓球の伝説馬龍は、栄光の頂点に向かって突き進んでいます。<s>準々決勝で強敵の上園俊平と対戦し、馬龍は恐れることなく、すべてのラリーで全力を尽くします</s>彼の正確なボール配置と冷静な判断力は、この試合で彼に優位をもたらしました。最終的に、馬龍は相手を打ち破り、準決勝に進出しました<break time=\"1000ms\"/></speak>"
        }
      ]
    }
  },
   "TitleArray": [
    "回龍観盒馬鮮生オープン",
    "盒馬鮮生がオープンしました"
  ],
  "SubHeadingArray": [
    {
      "Level": 1,
      "TitleArray": ["字幕 1", "字幕 2"]
    },
    {
      "Level": 3,
      "TitleArray": ["レベル 3 字幕"]
    }
  ],
  "StickerArray": [
    {
      "MediaId": "****9d46c8b4548681030f6e****",
      "X": 10,
      "Y": 100,
      "Width": 300,
      "Height": 300
    },
    {
      "MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test3.png",
      "X": 10,
      "Y": 100,
      "Width": 300,
      "Height": 300
    }
  ],
  "BackgroundMusicArray": [
    "****b4549d46c88681030f6e****",
    "****549d46c88b4681030f6e****",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test4.mp3"
  ],
  "BackgroundImageArray": [
    "****6c886b4549d481030f6e****",
    "****9d46c8548b4681030f6e****",
    "http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png"
  ]
}

EditingConfig パラメーターの説明

EditingConfig を構成して、出力ビデオのタイトルフォント、ボリューム、位置、およびその他の合成パラメーターを指定できます。特別な要件がない場合は、このフィールドを空にしてデフォルトの構成を使用することをお勧めします。

説明

一般的なシナリオの「ブロードキャストモード」と「ストーリーボードスクリプト」のパラメーターの説明は同じです。

パラメーター

タイプ

説明

値の例

必須

MediaConfig

JSON

入力ビデオ素材に関連する構成。

パラメーター例」をご参照ください。

いいえ

TitleConfig

JSON

タイトル関連の構成。キャプションパラメーターの構成をサポートします。

パラメーター例」をご参照ください。

いいえ

SubHeadingConfig

JSON

複数レベルの字幕関連の構成。キャプションパラメーターの設定をサポートします。

JSON フィールドの説明:

パラメーター例」をご参照ください。

いいえ

SpeechConfig

JSON

ナレーションスクリプト関連の構成。

パラメーター例」をご参照ください。

いいえ

BackgroundMusicConfig

JSON

バックグラウンドミュージック関連の構成。

{"Volume":0.2}

いいえ

BackgroundImageConfig

JSON

バックグラウンドイメージ関連の構成。InputConfig でバックグラウンドイメージがすでに構成されている場合、このフィールドは有効になりません。

{"SubType":"Blur","Radius":0.5}

いいえ

ProcessConfig

JSON

ミキシング編集処理構成。

パラメーター例」をご参照ください。

いいえ

FECanvas

JSON

フロントエンドページのプレビュー用のキャンバス構成。

{"Width": 1080,"Height": 1920}

いいえ

ProduceConfig

JSON

通常の編集合成構成、フィールドの詳細については、「EditingProduceConfig」をご参照ください。

{"AutoRegisterInputVodMedia":true,"OutputWebmTransparentChannel":true,"CoverConfig":{"StartTime":3.3},"AudioChannelCopy":"left","PipelineId":"***d54a97cff4108b555b01166d4b***","MaxBitrate":5000,"KeepOriginMaxBitrate":false,"KeepOriginVideoMaxFps":false}

いいえ

ProcessConfig パラメーターの説明

パラメーター

タイプ

説明

値の例

必須

SingleShotDuration

Float

長いビデオ素材を編集すると、自動的にセグメントに分割されます。これは分割後の各ショットの持続時間 (秒) です。

5

オプション、デフォルトは 3

EnableClipSplit

Boolean

AI セグメンテーションを実行するかどうかを示します (ビデオシーンの変更に応じて長い素材を自動的に分割します)。true の場合、SingleShotDuration パラメーターは無効になります。

false

オプション、デフォルトは false

AllowVfxEffect

Boolean

特殊効果の追加を許可するかどうか。

true

オプション、デフォルトは false

VfxEffectProbability

Float

各ビデオクリップに効果を適用する確率、値の範囲:0.0 - 1.0、小数点以下 2 桁をサポートします。

0.6

オプション、デフォルトは 0.5

VfxFirstClipEffectList

List<String>

  • VfxFirstClipEffectList が空でない場合、ビデオの最初のクリップの効果は VfxFirstClipEffectList から選択されます。

  • VfxFirstClipEffectList が空の場合、ビデオの最初のクリップの効果は、次の効果からランダムに選択されます:"slightshow"、"starfieldshinee"、"starfieldshinee2"、"starsparkle"、"colorfulripples"、"starfield"。

  • 効果の例については、「特殊効果の例」をご参照ください。

["slightshow","starfieldshinee"]

いいえ

VfxNotFirstClipEffectList

List<String>

  • VfxNotFirstClipEffectList が空でない場合、ビデオの最初のクリップ以外の効果は VfxNotFirstClipEffectList から選択されます。

  • VfxNotFirstClipEffectList が空の場合、ビデオの最初のクリップ以外の効果は、次の効果から選択されます:"zoomslight"、"zoom"、"zoominout"、"slightshake"。

  • 効果の例については、「特殊効果の例」をご参照ください。

["zoomslight","zoom"]

いいえ

AllowTransition

Boolean

トランジション効果の追加を許可するかどうか。

true

オプション、デフォルトは false

TransitionDuration

Float

トランジションの持続時間 (秒)。トランジションの持続時間 > クリップの持続時間 - 1 の場合、そのクリップにはトランジション効果は適用されません。

0.5

オプション、デフォルトは 0.5 秒

TransitionList

List<String>

カスタムトランジション効果リスト。AllowTransition=true の場合、このリストからトランジション効果がランダムに選択されて合成されます。利用可能なトランジション効果の範囲については、「トランジション効果ライブラリ」をご参照ください。このパラメーターが空の場合、トランジション効果は次のものからランダムに選択されます:"linearblur"、"colordistance"、"crosshatch"、"dreamyzoom"、"doomscreentransition_up"

["directional", "linearblur"]

いいえ

UseUniformTransition

Boolean

単一のビデオ内で一貫したトランジション効果を使用するかどうか。

true

オプション、デフォルトは true

AllowFilter

Boolean

カスタムフィルターの追加を許可するかどうか

false

オプション、デフォルトは false

FilterList

List<String>

カスタムフィルター効果リスト。AllowFilter=true の場合、このリストからフィルターがランダムに選択されて合成されます。利用可能なフィルター効果の範囲については、「フィルター効果の例」をご参照ください。このパラメーターが空の場合、フィルター効果は追加されません。

["m1", "m2"]

いいえ

AllowDuplicateMatch

Boolean

マッチしたクリップを再利用できるかどうかを示します。

false

オプション、デフォルトは false

ImageDuration

Float

イメージ素材の持続時間 (秒)。

2

オプション、デフォルトは 2

EditingConfig パラメーター例

EditingConfig のすべてのパラメーターはオプションです。以下はデフォルトの構成です。

{
  "MediaConfig": {
    "Volume": 0 // デフォルトのビデオ素材はミュートされています
  },
  "TitleConfig": {
    "Alignment": "TopCenter",
    "AdaptMode": "AutoWrap",
    "Font": "Alibaba PuHuiTi 2.0 95 ExtraBold",
    "SizeRequestType": "Nominal",
    "Y": 0.1, // 出力が縦長の場合のタイトルの Y 座標値
    "Y": 0.05, // 出力が横長の場合のタイトルの Y 座標値
    "Y": 0.08 // 出力が正方形の場合のタイトルの Y 座標値
  },
  "SpeechConfig": {
    "Volume": 1,  // デフォルトのナレーション音声は元のボリュームを使用します
    "SpeechRate": 0,
    "Voice": null,
    "Style": null,
    "CustomizedVoice": null, // 音声クローン voiceId、このフィールドが入力されている場合、Voice と Style は無効になります。
    "AsrConfig": {
      "Alignment": "TopCenter",
      "AdaptMode": "AutoWrap",
      "Font": "Alibaba PuHuiTi 2.0 65 Medium",
      "SizeRequestType": "Nominal",
      "Spacing": -1,
      "Y": 0.8, // 出力が縦長の場合の字幕の Y 座標値
      "Y": 0.9, // 出力が横長の場合の字幕の Y 座標値
      "Y": 0.85 // 出力が正方形の場合の字幕の Y 座標値
    }
  },
  "SubHeadingConfig": {
    "1": {
      "Y": 0.3,
      "FontSize": 40
    },
    "3": {
      "Y": 0.5,
      "FontSize": 30
    }
  },
  "BackgroundMusicConfig": {
    "Volume": 0.2,   // バックグラウンドミュージックはデフォルトで 20% のボリュームを使用します
    "Style": null
  },
  "ProcessConfig": {
    "SingleShotDuration": 3,      // 分割後のショットの持続時間、SingleShotDuration または EnableClipSplit のいずれかを選択
    "EnableClipSplit": false      // AI セグメンテーションを実行するかどうか、true の場合、SingleShotDuration パラメーターは無効になります
    "AllowVfxEffect": false,	  // 特殊効果を追加するかどうか
    "AllowTransition": false,	  // トランジション効果を追加するかどうか
    "AllowDuplicateMatch": false, // 図文マッチングモードで、マッチしたクリップを再利用できるかどうか
  }
}

TemplateConfig パラメーターの説明

TemplateConfig は、ワンクリックビデオ制作の共通パラメーターであり、ワンクリックビデオ制作テンプレートを設定するために使用されます。詳細なパラメーターの説明と使用例については、「TemplateConfig パラメーターの説明」をご参照ください。

OutputConfig パラメーターの説明

説明
  • OutputConfig を構成して、出力ビデオの出力アドレス、命名規則、幅と高さ、出力ビデオの数、およびその他の合成パラメーター構成を指定できます。

  • 一般的なシナリオの「ブロードキャストモード」と「ストーリーボードスクリプト」のパラメーターの説明は同じです。

パラメーター

タイプ

説明

値の例

必須

MediaURL

String

出力ビデオアドレス。プレースホルダー {index} を含む必要があります。

フォーマット:http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4

例:http://example.oss-cn-shanghai.aliyuncs.com/example/example_{index}.mp4

GeneratePreviewOnly=false で、出力ビデオが OSS に保存される場合に必須

StorageLocation

String

出力メディアファイルの VOD への保存場所を指定します。

フォーマット:[your-vod-bucket].oss-[your-region-id].aliyuncs.com

例:outin-****6c886b4549d481030f6e****.oss-cn-shanghai.aliyuncs.com

GeneratePreviewOnly=false で、出力ビデオが VOD に保存される場合に必須

FileName

String

出力ファイル名。プレースホルダー {index} を含む必要があります。

フォーマット:[your-file-name]__{index}.mp4

例:example_{index}.mp4

GeneratePreviewOnly=false で、出力ビデオが VOD に保存される場合に必須

GeneratePreviewOnly

Boolean

  • GeneratePreviewOnly = true の場合、現在のタスクはプレビュー用のタイムラインのみを生成し、実際にはビデオを合成しないことを示します。そのため、出力ビデオアドレスは空にすることができます。

  • ワンクリックビデオ制作タスクが完了した後、「GetBatchMediaPoducingJob」を通じてタスクの結果をクエリできます。返されるサブタスクリストには、編集プロジェクト ID (projectId) が含まれます。その後、「GetEditingProject」を呼び出してプレビュータイムラインを取得できます。

false

オプション、デフォルトは false

Count

Integer

出力ビデオの数

  • ブロードキャストモード:上限は 100 です。

  • ストーリーボードスクリプト:上限は 100 です。

10

オプション、デフォルトは 1

MaxDuration

Float

単一の出力ビデオの最大持続時間制限。

「ナレーションテキスト」パラメーターが定義されている場合、持続時間はナレーションテキストの TTS 持続時間に基づいており、このパラメーターは無効です。

「ナレーションテキスト」がない場合、現在の設定が単一ビデオの最大持続時間として使用され、デフォルトは 15 秒です。

20

オプション、デフォルトは 15 秒

FixedDuration

Float

単一の出力ビデオの固定持続時間。固定持続時間が設定されている場合、ビデオの持続時間はこのパラメーターに合わせられます。

注:

  • ストーリーボードスクリプトモードでは、このパラメーターの設定はサポートされていません。

  • ブロードキャストモードでは、SpeechTextArray が空の場合にこのパラメーターを設定できます。

  • FixedDuration と MaxDuration のいずれか一方のみを選択できます。

20

オプション、デフォルトは 15 秒

Width

Integer

出力幅 (px)

1080

はい

Height

Integer

出力高さ (px)

1920

はい

Video

JSONObject

出力ビデオストリーム関連の構成 (Crf、Codec など)。

{"Crf": 27}

いいえ

パラメーター例

{
 	"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4",
 	"Count": 1,
 	"MaxDuration": 15,
 	"Width": 1080,
 	"Height": 1920,
 	"Video": {"Crf": 27},
        "GeneratePreviewOnly":false
}

SDK 呼び出しの例

前提条件

IMS サーバー SDK をインストール済みであること。詳細については、「準備」をご参照ください。

コード例

ブロードキャストモードを例として使用

コード例を展開して表示

package com.example;

import com.alibaba.fastjson.JSONObject;
import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;

import java.util.*;

/**
 *  必要な Maven 依存関係:
 *   <dependency>
 *      <groupId>com.aliyun</groupId>
 *      <artifactId>ice20201109</artifactId>
 *      <version>2.3.0</version>
 *  </dependency>
 *  <dependency>
 *      <groupId>com.alibaba</groupId>
 *      <artifactId>fastjson</artifactId>
 *      <version>1.2.9</version>
 *  </dependency>
 */

public class SmartMixBatchEditingService {

    static final String regionId = "[your-bucket]"; // スマート図文マッチングは cn-shanghai、cn-beijing、cn-hangzhou をサポートしています
    static final String bucket = "[your-region-id]";
    private Client iceClient;

    public static void main(String[] args) throws Exception {
        SmartMixBatchEditingService smartMixBatchEditingService = new SmartMixBatchEditingService();
        smartMixBatchEditingService.initClient();
        smartMixBatchEditingService.runExample();
    }

    public void initClient() throws Exception {
        // Alibaba Cloud アカウントの AccessKey は、すべての API へのアクセス権限を持っています。API アクセスや日常の操作には RAM ユーザーを使用することをお勧めします。
        // この例では、AccessKey ID と AccessKey Secret を環境変数に保存する方法を示しています。設定方法については、「https://www.alibabacloud.com/help/zh/sdk/developer-reference/v2-manage-access-credentials」をご参照ください。
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();

        Config config = new Config();
        config.setCredential(credentialClient);

        // AccessKey ID と AccessKey Secret をハードコーディングする必要がある場合は、以下のコードを使用してください。ただし、AccessKey の漏洩によりアカウントのすべてのリソースのセキュリティが脅かされる可能性があるため、プロジェクトコードに AccessKey ID と AccessKey Secret を保存しないことを強くお勧めします。
        // config.accessKeyId = <ステップ 2 で作成した AccessKey ID>;
        // config.accessKeySecret = <ステップ 2 で作成した AccessKey Secret>;
        config.endpoint = "ice." + regionId + ".aliyuncs.com";
        config.regionId = regionId;
        iceClient = new Client(config);
    }

    public void runExample() throws Exception {

        // ビデオ素材
        List<String> mediaArray = Arrays.asList(
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-1.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-2.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-3.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-4.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-5.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-6.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-7.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-8.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-9.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-10.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-11.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-12.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-13.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-14.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-15.mp4",
            "http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-16.mp4"
        );

        // ナレーションスクリプト
        String speechText = "広大な青い深海の中で、鮮やかなキャンバスがゆっくりと広がっています。透き通った青い海では、サンゴ礁は水中の森のようで、色とりどりで多様です。それらは海洋生物多様性の重要な礎であり、無数の小魚、貝類、海藻に隠れ家を提供しています。怠惰で愛らしいアシカは、岩の上で暖かい日差しを浴び、自然と調和して暮らしています。イルカは青い海で一緒に泳ぎ、互いに追いかけっこをしたり遊んだりして、自然が与えた敏捷さと知恵を見せつけています。しかし、美しい海洋環境は前例のない課題に直面しています。さまざまなゴミ汚染が海の肌に傷跡のように残り、元々純粋だった生態環境を容赦なく侵食しています。多くの種が食糧不足、病気の増加、個体数の減少という危機に直面しています。私たちはこの美しくも壊れやすい青い故郷を守るために行動を起こし、未来の海がその純粋さと活力を取り戻せるようにしなければなりません。";

        // ビデオタイトル
        String title = "私たちの青い故郷を守る";

        JSONObject inputConfig = new JSONObject();
        inputConfig.put("MediaArray", mediaArray);
        inputConfig.put("SpeechText", speechText);
        inputConfig.put("Title", title);

        // 制作するビデオの数
        int produceCount = 4;

        // ビデオの幅と高さ、縦長ファイルを生成
        int outputWidth = 1080;
        int outputHeight = 1920;

        //// ビデオの幅と高さ、横長ファイルを生成
        //int outputWidth = 1920;
        //int outputHeight = 1080;

        // ビデオの OSS アドレス、{index} プレースホルダーを含む必要があります
        String mediaUrl = "http://" + bucket + ".oss-" + regionId + ".aliyuncs.com/smart_mix/output_{index}.mp4";

        JSONObject outputConfig = new JSONObject();
        outputConfig.put("MediaURL", mediaUrl);
        outputConfig.put("Count", produceCount);
        outputConfig.put("Width", outputWidth);
        outputConfig.put("Height", outputHeight);

        // ワンクリックビデオ制作タスクを送信
        SubmitBatchMediaProducingJobRequest request = new SubmitBatchMediaProducingJobRequest();
        request.setInputConfig(inputConfig.toJSONString());
        request.setOutputConfig(outputConfig.toJSONString());

        SubmitBatchMediaProducingJobResponse response = iceClient.submitBatchMediaProducingJob(request);
        String jobId = response.getBody().getJobId();
        System.out.println("Start smart mix batch job, batchJobId: " + jobId);

        // すべてが完了するまでタスクのステータスをポーリング
        System.out.println("Waiting job finished...");
        int maxTry = 3000;
        int i = 0;
        while (i < maxTry) {
            Thread.sleep(3000);
            i++;
            GetBatchMediaProducingJobRequest getRequest = new GetBatchMediaProducingJobRequest();
            getRequest.setJobId(jobId);
            GetBatchMediaProducingJobResponse getResponse = iceClient.getBatchMediaProducingJob(getRequest);
            String status = getResponse.getBody().getEditingBatchJob().getStatus();
            System.out.println("BatchJobId: " + jobId + ", status:" + status);

            if ("Failed".equals(status)) {
                System.out.println("Batch job failed. JobInfo: " + JSONObject.toJSONString(getResponse.getBody().getEditingBatchJob()));
                throw new Exception("Produce failed. BatchJobId: " + jobId);
            }

            if ("Finished".equals(status)) {
                System.out.println("Batch job finished. JobInfo: " + JSONObject.toJSONString(getResponse.getBody().getEditingBatchJob()));
                break;
            }
        }
    }
}

API 呼び出し入力パラメーターの詳細

InputConfig を展開して表示

{
	"MediaArray": [
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-1.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-2.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-3.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-4.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-5.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-6.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-7.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-8.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-9.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-10.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-11.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-12.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-13.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-14.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-15.mp4",
		"http://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/sea/sea-16.mp4"
	],
	"SpeechText": "広大な青い深海の中で、鮮やかな生命のタペストリーが広がっています。透き通った紺碧の海では、サンゴ礁が水中の森を形成し、色とりどりで多様性に富み、海洋生物多様性の礎となり、無数の小魚、貝類、海藻に隠れ家を提供しています。怠惰で愛らしいアシカは、岩の上で暖かい日差しを浴び、満足げに太陽を楽しみ、自然と調和して暮らしています。イルカは紺碧の海で一緒に泳ぎ、互いに追いかけっこをしたり遊んだりして、自然が与えた敏捷さと知性を見せつけています。しかし、美しい海洋環境は前例のない課題に直面しています。さまざまな形のゴミ汚染が海の肌を傷つけ、かつては原始的だった生態環境を容赦なく侵食しています。多くの種が食糧不足、病気の増加、個体数の減少という危機に直面しています。私たちはこの美しくも壊れやすい青い故郷を守るために行動を起こし、未来の海がその純粋さと活力を取り戻せるようにしなければなりません。",
	"Title":"私たちの青い故郷を守ろう"
}

OutputConfig を展開して表示

{
  "Count": 4,
  "Height": 1080,
  "Width": 1920,
  "MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4"
}

ミキシング編集ロジックと詳細設定

処理ロジック

ブロードキャストモード:

  • 「指定された検索ライブラリ + 設定された主題説明テキスト」を通じてビデオ素材が選択された場合、「主題説明テキスト」を検索条件として使用して、指定された検索ライブラリで対応するビデオクリップをインテリジェントに検索し、入力ビデオとして使用できます。

  • 入力ビデオが長いビデオクリップの場合、まずセグメント化されます。ミキシング編集中に、セグメント化されたビデオクリップが選択されて接合および合成されます。セグメント化後の各ショットのデフォルトの持続時間は 3 秒です。SingleShotDuration パラメーターを使用してショットの持続時間を指定することもできます。

  • ナレーションスクリプトがない場合、ビデオクリップがランダムに選択され、接合されて約 15 秒のビデオが制作されます。

  • ナレーションスクリプトがある場合、インテリジェントな図文マッチングが実行され、ナレーションスクリプトと整合されて複数のビデオがバッチ制作されます。

ストーリーボードスクリプト:

  • 「指定された検索ライブラリ + 設定された主題説明テキスト」を通じてビデオ素材が指定された場合、「主題説明テキスト」を使用して指定された検索ライブラリでインテリジェントに検索し、対応するビデオクリップを入力ビデオとして抽出する必要があります。

  • ストーリーボードスクリプトモードでは、SpeechTextArray/SpeechText を設定する必要はありません。代わりに、SceneInfo.ShotInfo.ShotScripts を使用して、ビデオの各ショットの内容、持続時間、ナレーション、およびその他の情報を制御します。

  • 単一のショットでは、スクリプトテキストを介したインテリジェントなクリッピングとマッチングが優先されます。スクリプトテキストが設定されておらず、ナレーションテキストが設定されている場合、ナレーションテキストを介してマッチングが行われます。

  • 単一のショットでは、ショットの持続時間はナレーションの持続時間またはカスタムの持続時間と整合されます。

詳細設定

詳細設定の詳細については、「バッチワンクリックビデオ制作ミキシング編集ロジックと詳細設定」をご参照ください。

リファレンス