Todos os produtos
Search
Central de documentação

Intelligent Media Services:Modelos de legenda

Última atualização: Jun 28, 2026

Este tópico descreve como editar os parâmetros da Timeline na operação SubmitMediaProducingJob para processar legendas e modelos de legenda.

Observações de uso

  • A produção inteligente oferece suporte a edição, composição, renderização de efeitos e modelos para transmissões ao vivo, arquivos VOD e materiais do Object Storage Service (OSS). Para mais informações, consulte Visão geral da produção inteligente.

  • Produza vídeos a partir de um ou mais vídeos, arquivos de áudio, imagens e materiais de legenda configurando os parâmetros da Timeline e chamando a operação SubmitMediaProducingJob.

  • A timeline é criada ao adicionar materiais e configurar efeitos para gerar um vídeo. Ela consiste em faixas, materiais e efeitos. Para mais detalhes, consulte Configurações da Timeline.

  • Para saber mais sobre o uso do IMS SDK na edição de arquivos de áudio e vídeo, consulte Introdução.

Adicionar legendas a um vídeo

Nota
  1. Adicione legendas a um vídeo criando uma faixa separada (SubtitleTracks) ou definindo-as em Effects.

  2. Defina os horários de início e fim das legendas usando os parâmetros TimelineIn e TimelineOut. Caso esses parâmetros não sejam especificados, as legendas na faixa correspondente terão a duração total do vídeo. Por padrão, legendas adicionadas em Effects duram tanto quanto o clipe de vídeo ao qual pertencem.

  3. Use \N ou \n para exibir legendas em várias linhas.

Efeito

Exemplo 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
			}
		}]
	}]
}

Configurar tamanho da fonte, fonte do sistema, fonte personalizada, contorno, sombra e ângulo de rotação da legenda

Nota
  1. FontSize indica o tamanho da fonte das legendas. Ao adicionar legendas em Effects, recomenda-se usar FixedFontSize para definir o tamanho e evitar que ele mude conforme o tamanho do vídeo.

  2. Font especifica a fonte do sistema, enquanto FontURL define o caminho do objeto OSS com fontes personalizadas. Se ambos estiverem configurados, o sistema priorizará FontURL para renderizar as legendas.

  3. Utilize parâmetros como Outline, OutlineColour, Shadow e BackColour para gerar efeitos simples de contorno e sombra em camada única. Para efeitos complexos de contorno multicamada, consulte o exemplo de configuração de word art personalizado no Exemplo 3.

  4. O parâmetro Angle ajusta o ângulo de rotação das legendas no sentido anti-horário.

Efeito

Exemplo 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
          }
        }
      ]
    }
  ]
}

Configurar word art

Nota
  1. Use o campo EffectColorStyleId para configurar efeitos de word art facilmente. Para obter informações sobre os efeitos, consulte Efeitos de word art.

  2. Para personalizar a aparência das legendas, utilize o campo SubtitleEffects e configure múltiplas camadas de contorno e sombra. Para mais informações, consulte SubtitleEffect.

Efeito

Exemplo 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
            }
          ]
        }
      ]
    }
  ]
}

Configurar efeitos para parte das legendas

Nota

Adicione código de sobrescrita ao campo Content para aplicar efeitos a partes específicas das legendas. Observe os seguintes pontos ao adicionar esse código:

  • Todo código de sobrescrita deve começar com duas barras invertidas (\\).

  • Todo código de sobrescrita deve estar entre chaves ({ }). É possível incluir várias linhas de código em um único par de chaves.

  • O código aplica-se às legendas. Para restaurar as configurações originais, adicione o código correspondente para cancelar a sobrescrita.

A tabela a seguir descreve os parâmetros do código de sobrescrita.

Parâmetro

Descrição

Exemplo de Content

  • \\1c&[BBGGRR]&

  • \\3c&[BBGGRR]&

  • \\4c&[BBGGRR]&

  • 1c, 3c e 4c representam as cores da fonte, da borda e da sombra, respectivamente.

  • [BBGGRR] especifica o valor hexadecimal BGR. BGR é a ordem inversa das cores RGB.

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

  • \\bord [Width]

  • \\xbord [Width]

  • \\ybord [Width]

bord, xbord e ybord definem a largura da borda, a largura da borda no eixo x e a largura da borda no eixo y. Unidade: pixels.

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

\\b1 \\b0

b1 indica negrito e b0 remove o efeito de negrito.

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

\\i1 \\i0

i1 indica itálico e i0 remove o efeito de itálico.

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

\\u1 \\u0

u1 ativa o sublinhado e u0 remove o sublinhado.

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

\\s1 \\s0

s1 ativa o tachado e s0 remove o efeito tachado.

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

\\fs[Tamanho da fonte]

Tamanho da fonte da legenda. Unidade: pixels.

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

\\fn[Fonte]

Fonte da legenda. Não é possível especificar uma fonte personalizada.

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

Efeito

Exemplo 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"
        }
      ]
    }
  ]
}

Configurar quebra de linha automática

Nota
  1. Para garantir a exibição integral das legendas, defina AdaptMode como AutoWrap e ative a quebra de linha automática quando o texto exceder a janela. Além disso, especifique TextWidth em pixels absolutos ou como porcentagem da janela de reprodução para controlar a quebra dentro de uma largura definida.

  2. A configuração "AdaptMode": "AutoWrapAtSpaces" impede quebras de linha no meio de palavras em inglês.

Efeito

Exemplo 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"
        }
      ]
    }
  ]
}

Configurar alinhamento de legendas

  • O posicionamento das legendas varia conforme o modo de alinhamento. A tabela a seguir descreve os modos e as posições padrão.

    Alinhamento

    Modo de alinhamento

    Posição padrão

    TopLeft

    Alinhamento à esquerda

    Canto superior esquerdo.

    TopCenter

    Alinhamento centralizado

    Centro superior.

    TopRight

    Alinhamento à direita

    Canto superior direito.

    CenterLeft

    Alinhamento à esquerda

    Centralizado horizontalmente, com texto alinhado à esquerda.

    CenterCenter

    Alinhamento centralizado

    Centralizado horizontal e verticalmente.

    CenterRight

    Alinhamento à direita

    Centralizado horizontalmente, com texto alinhado à direita.

    BottomLeft

    Alinhamento à esquerda

    Canto inferior esquerdo.

    BottomCenter

    Alinhamento centralizado

    Centro inferior.

    BottomRight

    Alinhamento à direita

    Canto inferior direito.

  • A tabela seguinte detalha três modos de alinhamento — Esquerda, Centro e Direita — que permitem posicionar as legendas com precisão.

    Alinhamento

    Modo de alinhamento

    Ponto de referência de posicionamento

    Left

    Alinhamento à esquerda

    Vértice superior esquerdo da caixa de texto da legenda.

    Center

    Alinhamento centralizado

    Ponto médio da borda superior da caixa de texto da legenda.

    Right

    Alinhamento à direita

    Vértice superior direito da caixa de texto da legenda.

  • A figura abaixo ilustra os diferentes pontos de referência de posicionamento para cada modo de alinhamento.

    image

Efeito

Exemplo 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
                }
            ]
        }
    ]
}

Configurar efeitos de legenda

Nota
  1. Especifique um horário para exibir os efeitos de entrada e saída das legendas e defina a velocidade do efeito de loop.

  2. Os efeitos de entrada/saída e o efeito de loop não podem ser usados simultaneamente.

Efeito

Exemplo 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
        }
      ]
    }
  ]
}

Configurar o fundo da legenda

Nota

Utilize o campo Box em SubtitleEffects para adicionar um fundo de cor sólida às legendas. Também é possível configurar word art, quebra de linha e outros estilos.

Efeito

Exemplo 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"
              }
            ]
          }
        ]
      }
    ]
  }

Configurar balões de texto

Nota
  1. Use BubbleStyleId para especificar o ID de um estilo de balão. Para mais informações sobre estilos de balão, consulte Balões de texto.

  2. Defina BubbleWidth e BubbleHeight para ajustar a largura e a altura do texto do balão. X e Y indicam, respectivamente, as coordenadas do canto superior esquerdo do texto em relação ao canto superior esquerdo do vídeo.

  3. O estilo Box em SubtitleEffects permite adicionar imagens para criar um efeito de balão personalizado. Nesse estilo, especifique Width e Height para indicar a largura e a altura da imagem original do balão. Defina TextArea para determinar a posição e o tamanho da caixa de texto em relação ao balão. Os quatro campos em TextArea indicam as coordenadas do canto superior esquerdo da caixa de texto, além de sua largura e altura relativas ao balão.

  4. Ao usar o recurso de texto em balão, o texto sofre quebra de linha e dimensionamento automáticos dentro do balão.

Efeito

Exemplo 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"
            }
          ]
        }
      ]
    }
  ]
}

Configurar rolagem de legendas

Nota
  • Rolagem vertical: Se TimelineOut permanecer vazio, o sistema estimará automaticamente a duração das legendas com base no ciclo de rolagem. Especifique as posições inicial (ScrollStartY) e final (ScrollEndY) da rolagem, as durações de pausa no início (ScrollStartFreeze) e no fim (ScrollEndFreeze), os deslocamentos inicial (ScrollStartShift) e final (ScrollEndShift) e a velocidade de rolagem (ScrollSpeed).

  • Rolagem horizontal: Defina as posições inicial (ScrollStartX) e final (ScrollEndX) da rolagem, a velocidade (ScrollSpeed) e se a rolagem deve repetir em loop (ScrollLoop).

  • As legendas podem alinhar-se a outros elementos de mídia. Por exemplo, defina ClipId como ScrollSubtitle ao configurar a rolagem vertical. Para alinhar a imagem de fundo, o áudio de fundo ou o texto do banner às legendas em rolagem, defina ReferenceClipId como ScrollSubtitle. O horário de início da rolagem vertical deve corresponder à duração da abertura da faixa de vídeo.

Efeito

Exemplo 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
		}]
	}]
}

Usar FECanvas para manter o tamanho consistente das legendas em vídeos de diferentes resoluções

Nota

FontSize especifica a altura do texto da legenda em pixels. Por padrão, aplicar o mesmo FontSize em vídeos de resoluções diferentes gera proporções inconsistentes. Por exemplo, um FontSize de 100 pode parecer grande em um vídeo 480P, mas pequeno em um vídeo 720P. Para manter a consistência visual entre resoluções distintas, configure FECanvas na Timeline.

Efeito

Exemplo 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
            }
          }
        ]
      }
    ]
  }