Tous les produits
Search
Centre de documentation

Intelligent Media Services:Modèles de sous-titres

Dernière mise à jour :Aug 11, 2026

Cette rubrique explique comment modifier les paramètres de la Timeline lors de l'appel de l'opération SubmitMediaProducingJob pour traiter les sous-titres et leurs modèles.

Remarques d'utilisation

  • La production intelligente prend en charge le montage, le compositing, le rendu des effets et l'utilisation de modèles pour les flux en direct, les fichiers VOD et les éléments provenant d'Object Storage Service (OSS). Pour plus d'informations, consultez la section Présentation de la production intelligente.

  • Créez une vidéo à partir d'une ou plusieurs vidéos, de fichiers audio, d'images et d'éléments de sous-titrage en configurant les paramètres de Timeline et en appelant l'opération SubmitMediaProducingJob.

  • Une timeline est créée lorsque vous ajoutez des éléments et configurez des effets pour créer une vidéo. Elle se compose de pistes, d'éléments et d'effets. Pour plus de détails, reportez-vous à la section Configurations de Timeline.

  • Pour savoir comment utiliser le SDK IMS afin de modifier des fichiers audio et vidéo, consultez la section Premiers pas.

Ajouter des sous-titres à une vidéo

Remarque
  1. Ajoutez des sous-titres à une vidéo en créant une piste distincte (SubtitleTracks) ou via la configuration des Effects.

  2. Définissez les heures de début et de fin des sous-titres à l'aide des paramètres TimelineIn et TimelineOut. Si ces deux paramètres ne sont pas spécifiés, les sous-titres de la piste sont générés pour couvrir toute la durée de la vidéo. Par défaut, les sous-titres ajoutés via Effects sont générés pour correspondre à la durée du clip vidéo auquel ils sont associés.

  3. Utilisez \N ou \n pour afficher les sous-titres sur plusieurs lignes.

Effet

Exemple de timeline

{
	"VideoTracks": [{
		"VideoTrackClips": [{
			"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h3.mp4",
			"Effects": [{
				"Type": "Background",
				"SubType": "Blur",
				"Radius": 0,1
			}]
		}]
	}],
	"SubtitleTracks": [{
		"SubtitleTrackClips": [{
			"Type": "Text",
			"X": 0,
			"Y": 200,
			"Content": "Heading",
			"Alignment": "TopCenter",
			"FontSize": 80,
			"FontColorOpacity": 1,
			"EffectColorStyle": "CS0003-000011",
			"FontFace": {
				"Bold": true
			}
		}, {
			"Type": "Text",
			"X": 0,
			"Y": 320,
			"Font": "KaiTi",
			"Content": "Subheading",
			"Alignment": "TopCenter",
			"FontSize": 45,
			"FontColor": "#ffffff",
			"FontFace": {
				"Italic": true,
				"Underline": true
			}
		}, {
			"Type": "Text",
			"X": 50,
			"Y": 740,
			"Font": "AlibabaPuHuiTi",
			"Content": "Rotation",
			"FontColor": "#FFD700",
			"Outline": 4,
			"Angle": 350,
			"OutlineColour": "#000000",
			"FontSize": 60,
			"FontFace": {
				"Bold": true
			}
		}, {
			"Type": "Text",
			"X": 0,
			"Y": 900,
			"Font": "AlibabaPuHuiTi",
			"Content": "Subtitles\nYou can add line breaks to display subtitles in multiple lines.",
			"Outline": 1,
			"OutlineColour": "000000",
			"Alignment": "TopCenter",
			"FontSize": 40,
			"FontColor": "#ffffff",
			"FontFace": {
				"Bold": true,
				"Italic": false,
				"Underline": false
			}
		}, {
			"Type": "Text",
			"X": 0,
			"Y": 1000,
			"Font": "KaiTi",
			"Content": "Start and end times of subtitles",
			"Alignment": "TopCenter",
			"FontSize": 40,
			"FontColor": "#ffffff",
			"TimelineIn": 5,
			"TimelineOut": 25,
			"FontFace": {
				"Bold": false,
				"Italic": true,
				"Underline": false
			}
		}]
	}]
}

Configurer la taille de police, la police système, la police personnalisée, le contour, l'ombre et l'angle de rotation des sous-titres

Remarque
  1. Le paramètre FontSize indique la taille de police des sous-titres. Lors de l'ajout de sous-titres via Effects, il est recommandé d'utiliser FixedFontSize pour définir la taille, afin que celle-ci reste indépendante des dimensions de la vidéo.

  2. Font spécifie la police système, tandis que FontURL indique le chemin vers l'objet OSS contenant les polices personnalisées. Si les deux paramètres sont définis, le système privilégie FontURL pour le rendu des sous-titres.

  3. Des paramètres tels que Outline, OutlineColour, Shadow et BackColour permettent de générer des effets simples de contour et d'ombre sur une seule couche. Pour mettre en œuvre des effets de contour multicouches complexes, inspirez-vous de l'exemple de configuration de word art personnalisé présenté dans l'Exemple 3.

  4. Ajustez l'angle de rotation des sous-titres dans le sens antihoraire à l'aide du paramètre Angle.

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h2.mp4",
          "Effects": [
            {
              "Type": "Background",
              "SubType": "Blur",
              "Radius": 0,1
            }
          ]
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "Type": "Text",
          "X": 0,
          "Y": 200,
          "Content": "Heading in font size of 80",
          "Alignment": "TopCenter",
          "FontSize": 80,
          "FontColorOpacity": 1,
          "EffectColorStyle": "CS0003-000023",
          "FontFace": {
            "Bold": true
          }
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 320,
          "Font": "KaiTi",
          "Content": "Subheading in italics",
          "Alignment": "TopCenter",
          "FontSize": 45,
          "FontColor": "#ffffff",
          "FontFace": {
            "Italic": true,
            "Underline": true
          }
        },
        {
          "Type": "Text",
          "X": 50,
          "Y": 740,
          "Font": "AlibabaPuHuiTi",
          "Content": "Rotation",
          "FontColor": "#FFD700",
          "Outline": 4,
          "Angle": 350,
          "OutlineColour": "#000000",
          "FontSize": 60,
          "FontFace": {
            "Bold": true
          }
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 900,
          "Content": "Banner subtitle in a custom font \nAdd a black stroke with a width of 1",
          "FontUrl": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/font/fangzhengfangsong.ttf",
          "Outline": 1,
          "OutlineColour": "000000",
          "Alignment": "TopCenter",
          "FontSize": 40,
          "FontColor": "#ffffff",
          "FontFace": {
            "Bold": true,
            "Italic": false,
            "Underline": false
          }
        },
        {
          "Type": "Text",
          "X": 20,
          "Y": 20,
          "Font": "KaiTi",
          "Content": "Add \n shadow \n effects",
          "Alignment": "BottomRight",
          "FontSize": 40,
          "FontColor": "#ffffff",
          "Shadow": 3,
          "BackColour": "#000000",
          "FontFace": {
            "Bold": false,
            "Italic": true,
            "Underline": false
          }
        }
      ]
    }
  ]
}

Configurer le word art

Remarque
  1. Configurez facilement des effets de word art grâce au champ EffectColorStyleId. Pour consulter la liste des effets disponibles, reportez-vous à la section Effets de word art.

  2. Personnalisez l'apparence de vos sous-titres en utilisant le champ SubtitleEffects pour configurer plusieurs couches d'effets de contour et d'ombre. Pour plus de détails, consultez la section SubtitleEffect.

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaUrl": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h3.mp4",
          "In": 0,
          "Out": 8
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "TimelineIn": 0,
          "TimelineOut": 2,
          "Type": "Text",
          "Y": 0,2,
          "Font": "WenQuanYi Zen Hei Mono",
          "Content": "Smart editing",
          "Alignment": "TopCenter",
          "FontSize": 200,
          "FontColor": "#FFFFFF",
          "SubtitleEffects": [
            {
              "Color": "#0420B6",
              "Type": "Shadow",
              "XBord": 0,07,
              "YBord": 0,07,
              "YShift": 0,06
            },
            {
              "Color": "#F2213F",
              "Type": "Shadow",
              "XBord": 0,07,
              "YBord": 0,07,
              "YShift": 0,03
            },
            {
              "Color": "#000000",
              "Type": "Shadow",
              "XShift": 0,01,
              "YShift": 0,01
            },
            {
              "Color": "#000000",
              "Type": "Outline",
              "XBord": 0,01,
              "YBord": 0,01
            }
          ]
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 2,
          "Type": "Text",
          "Y": 0,6,
          "Content": "Advanced word art",
          "Alignment": "TopCenter",
          "FontSize": 150,
          "EffectColorStyle": "CS0001-000011"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,1,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0001-000004"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,3,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0001-000005"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,5,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0001-000014"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,7,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0001-000007"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,1,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0002-000002"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,3,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0002-000004"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,5,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0002-000009"
        },
        {
          "TimelineIn": 2,
          "TimelineOut": 5,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,7,
          "Content": "System word art",
          "FontSize": 150,
          "EffectColorStyle": "CS0002-000016"
        },
        {
          "Comment": "Add a shadow effect on the left side",
          "TimelineIn": 5,
          "TimelineOut": 8,
          "Type": "Text",
          "FontSize": 150,
          "Content": "Custom word art",
          "Y": 0,1,
          "Alignment": "TopCenter",
          "Font": "HappyZcool-2016",
          "FontColor": "#F688AA",
          "SubtitleEffects": [
            {
              "Color": "#F5D2CC",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": -0,04,
              "Opacity": 1
            }
          ]
        },
        {
          "Comment": "Add a shadow effect on the right side",
          "TimelineIn": 5,
          "TimelineOut": 8,
          "Type": "Text",
          "FontSize": 150,
          "Content": "Custom word art",
          "Y": 0,3,
          "Alignment": "TopCenter",
          "Font": "HappyZcool-2016",
          "FontColor": "#F688AA",
          "SubtitleEffects": [
            {
              "Color": "#A33952",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": 0,04,
              "Opacity": 1
            },
            {
              "Color": "#F5D2CC",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": -0,04,
              "Opacity": 1
            }
          ]
        },
        {
          "Comment": "Add the first layer of a glow effect",
          "TimelineIn": 5,
          "TimelineOut": 8,
          "Type": "Text",
          "FontSize": 150,
          "Content": "Custom word art",
          "Y": 0,5,
          "Alignment": "TopCenter",
          "Font": "HappyZcool-2016",
          "FontColor": "#F688AA",
          "SubtitleEffects": [
            {
              "Color": "#FFFFA0",
              "Type": "Shadow",
              "Blur": 0,08,
              "XBord": 0,08,
              "YBord": 0,08
            },
            {
              "Color": "#A33952",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": 0,04,
              "Opacity": 1
            },
            {
              "Color": "#F5D2CC",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": -0,04,
              "Opacity": 1
            }
          ]
        },
        {
          "Comment": "Add the second layer of a glow effect",
          "TimelineIn": 5,
          "TimelineOut": 8,
          "Type": "Text",
          "FontSize": 150,
          "Content": "Custom word art",
          "Y": 0,7,
          "Alignment": "TopCenter",
          "Font": "HappyZcool-2016",
          "FontColor": "#F688AA",
          "SubtitleEffects": [
            {
              "Color": "#F688AA",
              "Type": "Shadow",
              "Blur": 0,3,
              "XBord": 0,15,
              "YBord": 0,15
            },
            {
              "Color": "#FFFFA0",
              "Type": "Shadow",
              "Blur": 0,08,
              "XBord": 0,08,
              "YBord": 0,08
            },
            {
              "Color": "#A33952",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": 0,04,
              "Opacity": 1
            },
            {
              "Color": "#F5D2CC",
              "Type": "Shadow",
              "XBord": 0,
              "YBord": 0,
              "XShift": -0,04,
              "Opacity": 1
            }
          ]
        }
      ]
    }
  ]
}

Configurer des effets pour une partie des sous-titres

Remarque

Ajoutez un code de substitution dans le champ Content pour appliquer des effets à une portion spécifique du texte. Respectez les consignes suivantes lors de l'insertion de ce code :

  • Tout code de substitution doit commencer par deux barres obliques inversées (\\).

  • Encadrez toujours le code de substitution par des accolades { }. Plusieurs instructions peuvent figurer entre une paire d'accolades.

  • Le code de substitution s'applique aux sous-titres. Pour rétablir la configuration initiale, insérez le code correspondant permettant d'annuler la substitution.

Le tableau suivant détaille les paramètres utilisables dans le code de substitution.

Paramètre

Description

Exemple de contenu

  • \\1c&[BBGGRR]&

  • \\3c&[BBGGRR]&

  • \\4c&[BBGGRR]&

  • 1c, 3c et 4c correspondent respectivement aux couleurs de la police, de la bordure et de l'ombre.

  • [BBGGRR] indique la valeur hexadécimale BGR. L'ordre BGR est l'inverse de l'ordre RGB.

"{\\1c&00FF7F&}Green{\\1c} text"

  • \\bord [Width]

  • \\xbord [Width]

  • \\ybord [Width]

bord, xbord et ybord définissent la largeur de la bordure, ainsi que ses largeurs respectives sur les axes x et y. Unité : pixels.

"Text {\\bord3\\3c&EBCE87&} stroke{\\bord\\3c}"

\\b1 \\b0

b1 active le gras, tandis que b0 le désactive.

"{\\b1}Bold{\\b0} text",

\\i1 \\i0

i1 active l'italique, tandis que i0 le désactive.

"{\\i1}Italicize{\\i0} text"

\\u1 \\u0

u1 active le soulignement, tandis que u0 le désactive.

"{\\u1}Underline{\\u0} text"

\\s1 \\s0

s1 active le barré, tandis que s0 le désactive.

"{\\s1}Strikethrough{\\s0} text"

\\fs[Font size]

Taille de police du sous-titre. Unité : pixels.

"Size {\\fs100}100{\\fs} text"

\\fn[Font]

Police du sous-titre. Les polices personnalisées ne peuvent pas être spécifiées via ce paramètre.

"{\\fnKaiTi}Heiti{\\fn} text"

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/v1.mp4"
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "Type": "Text",
          "X": 0,
          "Y": 150,
          "Font": "FZKai-Z03S",
          "Content": "{\\1c&0801ea&\\3c&f7fcff&}Crimson{\\1c\\3c} text", 
          "Alignment": "TopCenter",
          "FontSize": 65,
          "FontColor": "#F5FFFA",
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 300,
          "Font": "FZKai-Z03S",
          "Content": "Font size {\\fs}100{\\fs100}",
          "Alignment": "TopCenter",
          "FontColor": "#F5FFFA",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 450,
          "Font": "FZKai-Z03S",
          "Content": "Text {\\bord3\\3c&CD0000&}stroke{\\bord\\3c}",
          "Alignment": "TopCenter",
          "FontSize": 65,
          "FontColor": "#F5FFFA",
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 600,
          "Content": "Text {\\bord3\\3c&701919&}background{\\bord\\3c}",
          "Comment": "For opaque background, set BoderStyle to 3 ",
          "Font": "FZKai-Z03S",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Alignment": "TopCenter",
          "FontColor": "#F5FFFA",
          "BorderStyle": 3,
          "Outline": 0,
          "OutlineColour": "#0000CD"
        },
        {
          "Type": "Text",
          "Y": 750,
          "Font": "FZKai-Z03S",
          "Content": "{\\fnKaiTi}KaiTi{\\fn} font",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "FontColor": "#F5FFFA",
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 900,
          "Font": "FZKai-Z03S",
          "Content": "{\\b1}Bold {\\b0} text",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "FontColor": "#F5FFFA",
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 1050,
          "Font": "FZKai-Z03S",
          "Content": "{\\i1}Italicize{\\i0} text",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "FontColor": "#F5FFFA",
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 1200,
          "Font": "FZKai-Z03S",
          "Content": "{\\u1}Underline{\\u0} text",
          "FontColor": "#F5FFFA",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 1350,
          "Font": "FZKai-Z03S",
          "Content": "{\\s1}Strikethrough{\\s0} text",
          "FontColor": "#F5FFFA",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "Y": 1500,
          "Font": "FZKai-Z03S",
          "Content": "Effect {\\1c&00FF00&\\b1\\fs100\\i1}combination{\\1c\\b0\\fs\\i0}",
          "FontColor": "#F5FFFA",
          "FontSize": 65,
          "TimelineIn": 0,
          "TimelineOut": 10,
          "Alignment": "TopCenter",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        }
      ]
    }
  ]
}

Configurer le retour à la ligne automatique

Remarque
  1. Afin de garantir l'affichage intégral des sous-titres, définissez AdaptMode sur AutoWrap pour activer le retour à la ligne automatique lorsque le texte dépasse les limites de la fenêtre. Vous pouvez également spécifier TextWidth en pixels absolus ou en pourcentage de la fenêtre de lecture pour contrôler le renvoi à la ligne dans une plage de largeur définie.

  2. La valeur "AdaptMode": "AutoWrapAtSpaces" empêche les coupures de mots au milieu des termes anglais.

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/v1.mp4"
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "Type": "Text",
          "X": 0,
          "Y": 200,
          "Font": "FZKai-Z03S",
          "Content": "If you do not set auto line wrapping, the subtitle will exceed the playback window if the text is too long.",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 600,
          "Font": "FZKai-Z03S",
          "Content": "Auto line wrapping is triggered when the text exceeds the playback window.",
          "AdaptMode": "AutoWrap",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 1000,
          "Font": "FZKai-Z03S",
          "Content": "Set TextWidth to enable auto line wrapping within a given width range.",
          "TextWidth": 0,7,
          "AdaptMode": "AutoWrap",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 1400,
          "Content": "Subtitles only automatically wrap at spaces.",
          "AdaptMode": "AutoWrapAtSpaces",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100"
        }
      ]
    }
  ]
}

Configurer l'alignement des sous-titres

  • Le positionnement des sous-titres varie selon le mode d'alignement choisi. Le tableau ci-dessous présente les modes d'alignement ainsi que leurs positions par défaut.

    Alignement

    Mode d'alignement

    Position par défaut

    TopLeft

    Alignement à gauche

    Coin supérieur gauche.

    TopCenter

    Alignement centré

    Centre supérieur.

    TopRight

    Alignement à droite

    Coin supérieur droit.

    CenterLeft

    Alignement à gauche

    Centré horizontalement, avec un alignement du texte à gauche.

    CenterCenter

    Alignement centré

    Centré horizontalement et verticalement.

    CenterRight

    Alignement à droite

    Centré horizontalement, avec un alignement du texte à droite.

    BottomLeft

    Alignement à gauche

    Coin inférieur gauche.

    BottomCenter

    Alignement centré

    Centre inférieur.

    BottomRight

    Alignement à droite

    Coin inférieur droit.

  • Le tableau suivant détaille trois modes d'alignement (Left, Center et Right) permettant un positionnement précis de vos sous-titres.

    Alignement

    Mode d'alignement

    Point de référence de positionnement

    Left

    Alignement à gauche

    Sommet supérieur gauche de la zone de texte du sous-titre.

    Center

    Alignement centré

    Point médian du bord supérieur de la zone de texte du sous-titre.

    Right

    Alignement à droite

    Sommet supérieur droit de la zone de texte du sous-titre.

  • L'illustration suivante met en évidence les différents points de référence de positionnement selon les modes d'alignement.

    image

Effet

Exemple de timeline

{
    "VideoTracks": [
        {
            "VideoTrackClips": [
                {
                    "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h3.mp4"
                }
            ]
        }
    ],
    "SubtitleTracks": [
        {
            "SubtitleTrackClips": [
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nTopLeft",
                    "Alignment": "TopLeft",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nTopCenter",
                    "Alignment": "TopCenter",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nTopRight",
                    "Alignment": "TopRight",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nCenterLeft",
                    "Alignment": "CenterLeft",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nCenterCenter",
                    "Alignment": "CenterCenter",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nCenterRight",
                    "Alignment": "CenterRight",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nBottomLeft",
                    "Alignment": "BottomLeft",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nBottomCenter",
                    "Alignment": "BottomCenter",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nBottomRight",
                    "Alignment": "BottomRight",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 0,
                    "TimelineOut": 4
                }
            ]
        },
        {
            "SubtitleTrackClips": [
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nLeft",
                    "X": 100,
                    "Y": 500,
                    "Alignment": "TopLeft",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 4,
                    "TimelineOut": 8
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "Content": "Alignment\nCenter",
                    "X": 950,
                    "Y": 500,
                    "Alignment": "Center",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 4,
                    "TimelineOut": 8
                },
                {
                    "Type": "Text",
                    "Font": "FZKai-Z03S",
                    "X": 1820,
                    "Y": 500,
                    "Content": "Alignment\nRight",
                    "Alignment": "Right",
                    "FontSize": 70,
                    "FontColor": "#F5FFFA",
                    "Outline": 2,
                    "OutlineColour": "#0e0100",
                    "TimelineIn": 4,
                    "TimelineOut": 8
                }
            ]
        }
    ]
}

Configurer les effets de sous-titres

Remarque
  1. Spécifiez le moment d'affichage des effets d'entrée et de sortie des sous-titres, ainsi que la vitesse de l'effet en boucle.

  2. L'effet d'entrée/sortie et l'effet en boucle ne peuvent pas être utilisés simultanément.

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/v1.mp4"
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "Type": "Text",
          "X": 0,
          "Y": 200,
          "Font": "HappyZcool-2016",
          "Content": "Entrance effect for 2 seconds",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100",
          "AaiMotionInEffect": "rotateflip_in",
          "AaiMotionIn": 2
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 600,
          "Font": "HappyZcool-2016",
          "Content": "Exit effect for 2 seconds",
          "AdaptMode": "AutoWrap",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100",
          "AaiMotionOutEffect": "slide_down_out",
          "AaiMotionOut": 2
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 1000,
          "Font": "HappyZcool-2016",
          "Content": "Loop effect at a 2x speed",
          "TextWidth": 0,7,
          "AdaptMode": "AutoWrap",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100",
          "AaiMotionLoopEffect": "rainbrush_display",
          "Ratio": 2
        },
        {
          "Type": "Text",
          "X": 0,
          "Y": 1400,
          "Font": "HappyZcool-2016",
          "Content": "Entrance and exit effects",
          "AdaptMode": "AutoWrapAtSpaces",
          "Alignment": "TopCenter",
          "FontSize": 70,
          "FontColor": "#F5FFFA",
          "Outline": 2,
          "OutlineColour": "#0e0100",
          "AaiMotionInEffect": "zoomin_i",
          "AaiMotionIn": 2,
          "AaiMotionOutEffect": "dissolve_out",
          "AaiMotionOut": 2
        }
      ]
    }
  ]
}

Configurer l'arrière-plan des sous-titres

Remarque

Utilisez le champ Box dans SubtitleEffects pour ajouter un arrière-plan uni à vos sous-titres. Cette configuration permet également d'intégrer du word art, des retours à la ligne et d'autres styles.

Effet

Exemple de timeline

{
    "VideoTracks": [
      {
        "VideoTrackClips": [
          {
            "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/v1.mp4"
          }
        ]
      }
    ],
    "SubtitleTracks": [
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 150,
            "Font": "HappyZcool-2016",
            "Content": "Set the width and height offsets and radius of the solid color background.",
            "AdaptMode": "AutoWrap",
            "Alignment": "TopCenter",
            "FontSize": 70,
            "FontColor": "#F5FFFA",
            "SubtitleEffects": [
              {
                "Type": "Box",
                "Color": "1E90FF",
                "XShift": 20,
                "YShift": -20,
                "Bord": 20,
                "Radius": 20
              }
            ]
          }
        ]
      },
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 500,
            "Font": "HappyZcool-2016",
            "Content": "Configure the opacity of the subtitle background.",
            "AdaptMode": "AutoWrap",
            "Alignment": "TopCenter",
            "FontSize": 70,
            "FontColor": "#F5FFFA",
            "SubtitleEffects": [
              {
                "Type": "Box",
                "Color": "1E90FF",
                "Opacity": "0.5",
                "Bord": 20
              }
            ]
          }
        ]
      },
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 850,
            "Font": "HappyZcool-2016",
            "Content": "Configure the solid color background when the subtitle needs line wrapping.",
            "AdaptMode": "AutoWrap",
            "TextWidth": 0,6,
            "Alignment": "TopCenter",
            "FontSize": 70,
            "FontColor": "#F5FFFA",
            "SubtitleEffects": [
              {
                "Type": "Box",
                "Color": "1E90FF",
                "Bord": 20
              }
            ]
          }
        ]
      },
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 1200,
            "Font": "HappyZcool-2016",
            "Content": "Configure a solid color background, display effect, and word art for the subtitle.",
            "AdaptMode": "AutoWrapAtSpaces",
            "Alignment": "TopCenter",
            "FontSize": 70,
            "EffectColorStyle": "CS0003-000006",
            "AaiMotionInEffect": "zoomin_i",
            "AaiMotionIn": 2,
            "AaiMotionOutEffect": "dissolve_out",
            "AaiMotionOut": 2,
            "SubtitleEffects": [
              {
                "Type": "Box",
                "Color": "1E90FF",
                "Bord": 20
              }
            ]
          }
        ]
      },
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 1550,
            "Font": "HappyZcool-2016",
            "Content": "Set an image as the background texture and the text box radius.",
            "AdaptMode": "AutoWrapAtSpaces",
            "Alignment": "TopCenter",
            "FontSize": 70,
            "EffectColorStyle": "CS0003-000006",
            "AaiMotionInEffect": "zoomin_i",
            "AaiMotionIn": 2,
            "AaiMotionOutEffect": "dissolve_out",
            "AaiMotionOut": 2,
            "SubtitleEffects": [
              {
                "Type": "Box",
                "Color": "1E90FF",
                "Bord": 20,
                "Radius": 20,
                "ImageURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/image/subtitle_background.png"
              }
            ]
          }
        ]
      }
    ]
  }

Configurer les bulles de texte

Remarque
  1. Indiquez l'ID du style de bulle via BubbleStyleId. Pour découvrir les styles disponibles, consultez la section Textes en bulle.

  2. Ajustez la largeur et la hauteur de la bulle de texte à l'aide des paramètres BubbleWidth et BubbleHeight. Les coordonnées X et Y représentent respectivement la position du coin supérieur gauche de la bulle par rapport au coin supérieur gauche de la vidéo.

  3. Le style Box dans SubtitleEffects permet d'ajouter des images pour créer un effet de bulle personnalisé. Dans ce style, spécifiez Width et Height pour indiquer les dimensions de l'image originale de la bulle, et utilisez TextArea pour définir la position et la taille de la zone de texte par rapport à la bulle. Les quatre champs de TextArea indiquent les coordonnées du coin supérieur gauche de la zone de texte par rapport à la bulle, ainsi que sa largeur et sa hauteur relatives.

  4. Lorsque vous utilisez la fonctionnalité de texte en bulle, le texte est automatiquement renvoyé à la ligne et mis à l'échelle à l'intérieur de la bulle.

Effet

Exemple de timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaUrl": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h3.mp4"
        }
      ]
    }
  ],
  "SubtitleTracks": [
    {
      "SubtitleTrackClips": [
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0001-000001"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,2,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0001-000002"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,4,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0001-000003"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,6,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0001-000004"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,1,
          "Y": 0,8,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0001-000005"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0002-000001"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,2,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0002-000002"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,4,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0002-000003"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,6,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0002-000004"
        },
        {
          "TimelineIn": 0,
          "TimelineOut": 4,
          "Type": "Text",
          "X": 0,6,
          "Y": 0,8,
          "FontSize": 150,
          "BubbleHeight": 0,18,
          "Alignment": "TopCenter",
          "BubbleStyleId": "BS0002-000005"
        },
        {
          "TimelineIn": 4,
          "TimelineOut": 8,
          "Type": "Text",
          "Content": "Custom bubble text",
          "FontColor": "#000000",
          "X": 0,1,
          "Y": 0,3,
          "BubbleWidth": 0,8,
          "Alignment": "TopCenter",
          "SubtitleEffects": [
            {
              "Type": "Box",
              "Width": 1050,
              "Height": 250,
              "TextArea": "0.1.0.2.0.8.0.6",
              "ImageURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/image/round_rectangle.png"
            }
          ]
        }
      ]
    }
  ]
}

Configurer le défilement des sous-titres

Remarque
  • Défilement vertical : Si vous laissez TimelineOut vide, le système estime automatiquement la durée des sous-titres en fonction du cycle de défilement. Vous pouvez spécifier les positions de début (ScrollStartY) et de fin (ScrollEndY) du défilement, les durées de pause au début (ScrollStartFreeze) et à la fin (ScrollEndFreeze), les décalages initiaux (ScrollStartShift) et finaux (ScrollEndShift), ainsi que la vitesse de défilement (ScrollSpeed).

  • Défilement horizontal : Indiquez les positions de début (ScrollStartX) et de fin (ScrollEndX) du défilement, la vitesse de défilement (ScrollSpeed) et si le défilement doit être répété en boucle (ScrollLoop).

  • Les sous-titres peuvent s'aligner avec d'autres éléments multimédias. Par exemple, lors de la configuration du défilement vertical, attribuez la valeur ClipId à ScrollSubtitle. Pour aligner une image d'arrière-plan, un fond sonore ou un texte de bannière sur les sous-titres défilants, définissez ReferenceClipId sur ScrollSubtitle. L'heure de début du défilement vertical doit correspondre à la durée de l'ouverture de la piste vidéo.

Effet

Exemple de timeline

{
	"VideoTracks": [{
			"VideoTrackClips": [{
					"Type": "Image",
					"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/image/a1.png",
					"AdaptMode": "Cover",
					"Comment": "Opening",
					"Width": 1,
					"Height": 1,
					"Duration": 3
				},
				{
					"Type": "Image",
					"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/image/back.png",
					"AdaptMode": "Cover",
					"Comment": "Background image",
					"Width": 1,
					"Height": 1,
					"ReferenceClipId": "ScrollSubtitle"
				},
				{
					"Type": "Image",
					"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/image/01.jpg",
					"AdaptMode": "Cover",
					"Comment": "Outro",
					"Width": 1,
					"Height": 1,
					"Duration": 3
				}
			]
		},
		{
			"VideoTrackClips": [{
				"Type": "GlobalImage",
				"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/aliyun_logo_white.png",
				"Comment": "logo",
				"X": 10,
				"Y": 10,
				"Width": 247,
				"Height": 74
			}]
		}
	],
	"SubtitleTracks": [{
			"SubtitleTrackClips": [{
				"TimelineIn": 3,
				"ClipId": "ScrollSubtitle",
				"Type": "Text",
				"Content": "Alibaba Cloud Intelligent Media Services is a comprehensive multimedia processing solution that integrates cloud computing, big data, and AI technologies. It provides users with efficient and convenient features such as video on demand, live streaming, content review, and smart editing. It aims to help enterprises and developers build and manage multimedia applications, enhance user experience, and reduce operational costs.\n\nKey features:\n\nVideo on demand: Offers a one-stop service from video upload, transcoding, storage, to distribution. It supports multiple format conversions and automatically selects the best node based on the viewer’s location to ensure smooth playback.\n\nReal-time communication: Utilizes WebRTC technology to provide low-latency, high-definition audio and video calling or conferencing services, suitable for online education, telemedicine, and other various scenarios.\n\nLive streaming: Covers the entire process from streaming, transcoding, recording, to playback, with support for ultra-large-scale concurrent viewing, meeting the demands of large events like sports competitions and concerts.\n\nContent review: Employs AI algorithms to automatically detect violations such as pornography and violence in images, text, and videos, helping enterprises respond to regulatory requirements.\n\nSmart editing and special effects: Automatically analyzes video content through AI technology to generate highlight reels or add elements like subtitles and background music to enhance the viewing experience.\n\nData analysis: Provides detailed access statistics reports, helping users understand viewer behavior and preferences to optimize content strategies.\n\nApplicable scenarios:\n\nOnline education platforms\n\nSocial entertainment platforms\n\nCorporate training systems\n\nE-commerce product showcases\n\nNews media content publishing\n\nAdvantages:\n\nHighly scalable: Resources can be flexibly adjusted according to business needs.\n\nSafe and reliable: Implements multiple encryption measures to protect data security.\n\nCost-effective: Uses a pay-as-you-go model to control expenses.\n\nEasy integration: Offers a rich set of APIs for easy integration with other systems.\n\nIn summary, Alibaba Cloud Intelligent Media Services, with its powerful technological capabilities and service offerings, has seen widespread application across multiple sectors, supporting businesses in accelerating their digital transformation.",
				"Comment": "Vertical scrolling",
				"FontSize": 50,
				"FontColorOpacity": 1,
				"Spacing": 0,
				"LineSpacing": 10,
				"AdaptMode": "AutoWrap",
				"FontColor": "#ffffff",
				"Font": "Alibaba PuHuiTi",
				"X": 0,1,
				"TextWidth": 0,8,
				"ScrollStartY": 1120,
				"ScrollEndY": 200,
				"ScrollSpeed": 75,
				"ScrollLoopTime": 1,
				"ScrollStartShift": 800,
				"ScrollEndShift": 400,
				"ScrollStartFreeze": 2,
				"ScrollEndFreeze": 2
			}]
		},
		{
			"SubtitleTrackClips": [{
				"ReferenceClipId": "ScrollSubtitle",
				"Type": "Text",
				"Content": "Alibaba Cloud Intelligent Media Services",
				"Comment": "Horizontal scrolling",
				"Font": "Alibaba PuHuiTi",
				"AdaptMode": "AutoWrap",
				"FontSize": 50,
				"TextWidth": 0,8,
				"ScrollDirection": "Left",
				"ScrollStartX": 620,
				"ScrollEndX": 50,
				"ScrollSpeed": 100,
				"ScrollLoop": true,
				"Y": 1200
			}]
		}
	],
	"AudioTracks": [{
		"AudioTrackClips": [{
			"ReferenceClipId": "ScrollSubtitle",
      "Comment": "Background music",
			"MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/music/m2.wav",
			"LoopMode": true,
			"In": 4,
			"Out": 24
		}]
	}]
}

Utiliser FECanvas pour uniformiser la taille de police des sous-titres dans des vidéos de différentes résolutions

Remarque

FontSize définit le nombre de pixels occupés par la hauteur du texte d'un sous-titre dans une vidéo. Par défaut, l'application d'une même valeur FontSize à des vidéos de résolutions différentes entraîne souvent des proportions incohérentes. Par exemple, une valeur FontSize de 100 peut paraître grande dans une vidéo 480P, mais relativement petite dans une vidéo 720P. Pour maintenir une taille de police cohérente quelle que soit la résolution de la vidéo, configurez FECanvas dans la Timeline.

Effet

Exemple de timeline

{
    "FECanvas": {
        "Height": 1280,
        "Width": 720
      },
    "VideoTracks": [
      {
        "VideoTrackClips": [
          {
            "MediaURL": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/h2.mp4",
            "Effects": [
              {
                "Type": "Background",
                "SubType": "Blur",
                "Radius": 0,1
              }
            ]
          }
        ]
      }
    ],
    "SubtitleTracks": [
      {
        "SubtitleTrackClips": [
          {
            "Type": "Text",
            "X": 0,
            "Y": 200,
            "Content": "Heading in font size of 80",
            "Alignment": "TopCenter",
            "FontSize": 80,
            "FontColorOpacity": 1,
            "EffectColorStyle": "CS0003-000023",
            "FontFace": {
              "Bold": true
            }
          },
          {
            "Type": "Text",
            "X": 0,
            "Y": 320,
            "Font": "KaiTi",
            "Content": "Subheading in italics",
            "Alignment": "TopCenter",
            "FontSize": 45,
            "FontColor": "#ffffff",
            "FontFace": {
              "Italic": true,
              "Underline": true
            }
          },
          {
            "Type": "Text",
            "X": 50,
            "Y": 740,
            "Font": "AlibabaPuHuiTi",
            "Content": "Rotation",
            "FontColor": "#FFD700",
            "Outline": 4,
            "Angle": 350,
            "OutlineColour": "#000000",
            "FontSize": 60,
            "FontFace": {
              "Bold": true
            }
          },
          {
            "Type": "Text",
            "X": 0,
            "Y": 900,
            "Content": "Banner subtitle in a custom font \nAdd a black stroke with a width of 1",
            "FontUrl": "https://ice-document-materials.oss-cn-shanghai.aliyuncs.com/test_media/font/fangzhengfangsong.ttf",
            "Outline": 1,
            "OutlineColour": "000000",
            "Alignment": "TopCenter",
            "FontSize": 40,
            "FontColor": "#ffffff",
            "FontFace": {
              "Bold": true,
              "Italic": false,
              "Underline": false
            }
          },
          {
            "Type": "Text",
            "X": 20,
            "Y": 20,
            "Font": "KaiTi",
            "Content": "Add \n shadow \n effects",
            "Alignment": "BottomRight",
            "FontSize": 40,
            "FontColor": "#ffffff",
            "Shadow": 3,
            "BackColour": "#000000",
            "FontFace": {
              "Bold": false,
              "Italic": true,
              "Underline": false
            }
          }
        ]
      }
    ]
  }