Configurare i sottotitoli codificati e le traduzioni automatiche

Questa pagina spiega come configurare i sottotitoli codificati generati con l'AI e i sottotitoli codificati tradotti (ovvero le traduzioni) per uno stream live.

I sottotitoli codificati e le traduzioni generati con l'AI sono supportati per i live streaming HLS e DASH.

Prima di iniziare

Questa pagina presuppone che tu abbia completato i passaggi descritti nella sezione Prima di iniziare della guida rapida per il live streaming HLS o della guida rapida per il live streaming MPEG-DASH.

Località supportate

I codici lingua per i sottotitoli codificati creati con l'AI sono supportati in base alla località.

Mostra località

Località Codici lingua supportati
asia-northeast1 en-US
asia-south1 en-IN
en-GB
en-US
asia-southeast1 en-US
australia-southeast1 en-AU
europe-west1 da-DK
nl-NL
en-GB
en-US
fr-FR
de-DE
it-IT
es-ES
europe-west2 en-GB
europe-west3 da-DK
nl-NL
en-GB
en-US
fr-FR
de-DE
it-IT
es-ES
northamerica-northeast1 en-CA
fr-CA
us-central1 en-US
pt-BR
es-CO
es-MX
es-US
us-east1 en-US
pt-BR
es-CO
es-MX
es-US
us-west1 en-US
pt-BR
es-CO
es-MX
es-US

La funzionalità di traduzione creata con l'AI è supportata solo su us-west1 e europe-west1.

Utilizza us-west1 o europe-west1 per tutte le richieste API in questa pagina.

Crea l'endpoint di input

Per creare l'endpoint di input, utilizza il metodo projects.locations.inputs.create.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui creare l'endpoint di input; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • INPUT_ID: un identificatore definito dall'utente per il nuovo endpoint di input da creare (a cui invii il flusso di input). Questo valore deve contenere da 1 a 63 caratteri, iniziare e terminare con [a-z0-9] e può contenere trattini (-) tra i caratteri. Ad esempio: my-input.

Corpo JSON della richiesta:

{
  "type": "RTMP_PUSH"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Copia il valore OPERATION_ID restituito da utilizzare nella sezione successiva.

Controlla il risultato

Utilizza il metodo projects.locations.operations.get per verificare se l'endpoint di input è stato creato. Se la risposta contiene "done: false", ripeti il comando finché la risposta non contiene "done: true". La creazione del primo endpoint di input in una regione può richiedere fino a 10 minuti.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova l'endpoint di input; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • OPERATION_ID: l'identificatore dell'operazione

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "endTime": END_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID",
    "createTime": CREATE_TIME,
    "updateTime": UPDATE_TIME,
    "type": "RTMP_PUSH",
    "uri":  INPUT_STREAM_URI, # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b",
    "tier": "HD"
  }
}

Trova il campo uri e copia il valore INPUT_STREAM_URI restituito da utilizzare in un secondo momento nella sezione Invia il flusso di input.

Crea il canale

Per creare il canale, utilizza il metodo projects.locations.channels.create.

Tieni presente quanto segue nella configurazione del canale:

  • Un ElementaryStream, un TextStream, viene utilizzato per i sottotitoli codificati.

    {
      "key": "webvtt_english_ai",
      "textStream": {
        "codec": "webvtt",
        "displayName": "English (AI captioned)",
        "languageCode": "en-US",
        "mapping": [
          {
            "inputTrack": 1 // audio track number
          }
        ]
      }
    }
    
  • Il campo TextStream codec deve essere impostato su webvtt.

  • Il campo TextStream mapping utilizza inputTrack per indicare la traccia audio di input da cui generare i sottotitoli codificati. La mappatura non deve includere un campo inputCeaChannel, che viene utilizzato solo per i sottotitoli codificati forniti dagli utenti.

  • Imposta languageCode sulla lingua parlata nella traccia audio.

  • Lo stream elementare viene utilizzato per creare un MuxStream con chiave vtt_english_ai.

    {
      "key": "vtt_english_ai",
      "container": "vtt",
      "elementaryStreams": [
        "webvtt_english_ai"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
    

    Questo stream mux viene quindi fatto riferimento sia nei file manifest HLS che DASH.

    {
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_ts",
        "vtt_english_ai"
      ],
      "maxSegmentCount": 5
    }
    

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui creare il canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale da creare; questo valore deve contenere da 1 a 63 caratteri, iniziare e terminare con [a-z0-9] e può contenere trattini (-) tra i caratteri
  • INPUT_ID: l'identificatore definito dall'utente per l'endpoint di input
  • BUCKET_NAME: il nome del bucket Cloud Storage che hai creato per contenere i file manifest e segmento del live streaming

Corpo JSON della richiesta:

{
  "inputAttachments": [
    {
      "key": "my-input",
      "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
    }
  ],
  "output": {
    "uri": "gs://BUCKET_NAME"
  },
  "elementaryStreams": [
    {
      "key": "es_video",
      "videoStream": {
        "h264": {
          "profile": "high",
          "widthPixels": 1280,
          "heightPixels": 720,
          "bitrateBps": 3000000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_audio",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 160000
      }
    },
    {
      "key": "webvtt_english_ai",
      "textStream": {
        "codec": "webvtt",
        "displayName": "English (AI captioned)",
        "languageCode": "en-US",
        "mapping": [
          {
            "inputTrack": 1
          }
        ]
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video_fmp4",
      "container": "fmp4",
      "elementaryStreams": [
        "es_video"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_fmp4",
      "container": "fmp4",
      "elementaryStreams": [
        "es_audio"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_video_ts",
      "container": "ts",
      "elementaryStreams": [
        "es_video",
        "es_audio"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "vtt_english_ai",
      "container": "vtt",
      "elementaryStreams": [
        "webvtt_english_ai"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
  ],
  "manifests": [
    {
      "key": "manifest_dash",
      "fileName": "main.mpd",
      "type": "DASH",
      "muxStreams": [
        "mux_video_fmp4",
        "mux_audio_fmp4",
        "vtt_english_ai"
      ],
      "maxSegmentCount": 5
    },
    {
      "key": "manifest_hls",
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_ts",
        "vtt_english_ai"
      ],
      "maxSegmentCount": 5
    }
  ]
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Recuperare il canale

Puoi controllare il risultato dell'operazione utilizzando il nuovo ID operazione.

Dopo aver creato il canale, utilizza il metodo projects.locations.channels.get per eseguire query sullo stato del canale.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

La risposta completa contiene il seguente campo:

{
  ...
  "streamingState": "STOPPED"
  ...
}

Questa risposta indica che ora puoi avviare il canale.

Avviare il canale

Utilizza il metodo projects.locations.channels.start per avviare il canale. Un canale deve essere avviato prima di poter accettare flussi di input o generare un flusso di output.

L'avvio del primo canale in una regione richiede circa 10 minuti.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per determinare se il canale è stato avviato, recupera le informazioni come fatto in precedenza. La risposta deve contenere quanto segue:

{
  ...
  "streamingState": "AWAITING_INPUT"
  ...
}

Inviare il flusso di input

Ora che il canale è pronto, invia un flusso di input all'endpoint di input per generare il live streaming. Puoi scaricare un file MP4 (o un altro TEST_VOD_FILE) con i sottotitoli codificati e utilizzare ffmpeg per inviarlo all'endpoint di input.

Apri una nuova finestra del terminale. Esegui questo comando utilizzando INPUT_STREAM_URI della sezione Controlla il risultato:

ffmpeg -re -stream_loop -1 -i "TEST_VOD_FILE" \
  -c:v copy -c:a aac -strict 2 -f "flv" "INPUT_STREAM_URI"

Verifica i sottotitoli codificati nel manifest di output

Esegui questo comando per visualizzare i contenuti del manifest HLS generato:

gcloud storage cat gs://BUCKET_NAME/main.m3u8

Le didascalie in inglese in formato WebVTT generate con l'AI vengono visualizzate nel file manifest di output in modo simile al seguente:

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="en-US",NAME="English (AI captioned)",AUTOSELECT=YES,DEFAULT=YES,FORCED=NO,URI="vtt_english_ai/index-1.m3u8"

Interrompere il canale

Devi arrestare un canale prima di aggiornarne la configurazione.

Utilizza il metodo projects.locations.channels.stop per interrompere il canale.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Aggiorna la configurazione del canale per una traduzione

Aggiorna la configurazione del canale in modo da includere i sottotitoli codificati tradotti (ovvero una traduzione).

Tieni presente le seguenti aggiunte alla configurazione del canale:

  • Un ElementaryStream, un TextStream, viene utilizzato per i sottotitoli codificati di una singola lingua tradotta.

    {
      "key": "webvtt_spanish_ai",
      "textStream": {
        "codec": "webvtt",
        "displayName": "Spanish (AI captioned)",
        "languageCode": "es-MX",
        "mapping": [
          {
            "inputTrack": 1, // audio track number
            "fromLanguageCode": "en-US" // original audio in English
          }
        ]
      }
    }
    
  • Imposta languageCode sulla lingua tradotta che preferisci.

  • Imposta fromLanguageCode sulla lingua di origine originale nella traccia audio.

  • Lo stream elementare viene utilizzato per creare un MuxStream con chiave vtt_spanish_ai.

    {
      "key": "vtt_spanish_ai",
      "container": "vtt",
      "elementaryStreams": [
        "webvtt_spanish_ai"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
    

    Questo stream mux viene quindi fatto riferimento sia nei file manifest HLS che DASH.

    {
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_ts",
        "vtt_english_ai",
        "vtt_spanish_ai"
      ],
      "maxSegmentCount": 5
    }
    

Per aggiornare il canale, utilizza il metodo projects.locations.channels.patch.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui creare il canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale da creare; questo valore deve contenere da 1 a 63 caratteri, iniziare e terminare con [a-z0-9] e può contenere trattini (-) tra i caratteri

Corpo JSON della richiesta:

{
  "inputAttachments": [
    {
      "key": "my-input",
      "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
    }
  ],
  "output": {
    "uri": "gs://BUCKET_NAME"
  },
  "elementaryStreams": [
    {
      "key": "es_video",
      "videoStream": {
        "h264": {
          "profile": "high",
          "widthPixels": 1280,
          "heightPixels": 720,
          "bitrateBps": 3000000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_audio",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 160000
      }
    },
    {
      "key": "webvtt_english_ai",
      "textStream": {
        "codec": "webvtt",
        "displayName": "English (AI captioned)",
        "languageCode": "en-US",
        "mapping": [
          {
            "inputTrack": 1
          }
        ]
      }
    },
    {
      "key": "webvtt_spanish_ai",
      "textStream": {
        "codec": "webvtt",
        "displayName": "Spanish (AI captioned)",
        "languageCode": "es-MX",
        "mapping": [
          {
            "inputTrack": 1,
            "fromLanguageCode": "en-US"
          }
        ]
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video_fmp4",
      "container": "fmp4",
      "elementaryStreams": [
        "es_video"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_fmp4",
      "container": "fmp4",
      "elementaryStreams": [
        "es_audio"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_video_ts",
      "container": "ts",
      "elementaryStreams": [
        "es_video",
        "es_audio"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "vtt_english_ai",
      "container": "vtt",
      "elementaryStreams": [
        "webvtt_english_ai"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "vtt_spanish_ai",
      "container": "vtt",
      "elementaryStreams": [
        "webvtt_spanish_ai"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
  ],
  "manifests": [
    {
      "key": "manifest_dash",
      "fileName": "main.mpd",
      "type": "DASH",
      "muxStreams": [
        "mux_video_fmp4",
        "mux_audio_fmp4",
        "vtt_english_ai",
        "vtt_spanish_ai"
      ],
      "maxSegmentCount": 5
    },
    {
      "key": "manifest_hls",
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_ts",
        "vtt_english_ai",
        "vtt_spanish_ai"
      ],
      "maxSegmentCount": 5
    }
  ]
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Puoi controllare il risultato dell'operazione utilizzando il nuovo ID operazione.

Riavvia il canale e invia nuovamente lo stream di input

Come fatto in precedenza, avvia il canale e invia di nuovo il flusso di input.

Verifica la traduzione nel manifest di output

Esegui questo comando per visualizzare i contenuti del manifest HLS generato:

gcloud storage cat gs://BUCKET_NAME/main.m3u8

I sottotitoli codificati in inglese e spagnolo creati con l'AI vengono visualizzati nel manifest di output in modo simile al seguente:

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="en-US",NAME="English (AI captioned)",AUTOSELECT=YES,DEFAULT=YES,FORCED=NO,URI="vtt_english_ai/index-1.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="es-MX",NAME="Spanish (AI captioned)",AUTOSELECT=NO,DEFAULT=NO,FORCED=NO,URI="vtt_spanish_ai/index-1.m3u8"

Configurare le trascrizioni generate con l'AI per la distribuzione

Prima di configurare i sottotitoli codificati e le traduzioni creati con l'AI per la distribuzione, acquisisci familiarità con la procedura per distribuire i live streaming a endpoint remoti.

Per distribuire sottotitoli codificati e traduzioni creati con l'AI agli endpoint remoti, non fare riferimento agli stream di testo nel formato webvtt che sono stati configurati in precedenza durante la creazione di un canale con sottotitoli codificati creati con l'AI e l'aggiornamento del canale per la traduzione. I flussi di testo per la distribuzione devono essere sottotitoli codificati incorporati, con codec impostato su cea608 o cea708.

Nella configurazione del canale, considera quanto segue:

  • Un ElementaryStream, un TextStream, viene utilizzato per i sottotitoli codificati, mentre un altro ElementaryStream, un TextStream, viene utilizzato per la traduzione.

    {
      "key": "embedded_english_ai",
      "textStream": {
        "codec": "cea608",
        "displayName": "English (AI captioned)",
        "languageCode": "en-US",
        "outputCeaChannel": "CC1", // closed caption channel that will contain AI-generated English captions
        "mapping": [
          {
            "inputTrack": 1 // audio track number
          }
        ]
      }
    }
    
    {
      "key": "embedded_spanish_ai",
      "textStream": {
        "codec": "cea608",
        "displayName": "Spanish (AI captioned)",
        "languageCode": "es-MX",
        "outputCeaChannel": "CC2", // closed caption channel that will contain AI-generated Spanish captions
        "mapping": [
          {
            "inputTrack": 1, // audio track number
            "fromLanguageCode": "en-US" // original audio in English
          }
        ]
      }
    }
    
  • Il campo TextStream codec deve essere impostato su cea608 o cea708.

  • Il campo TextStream mapping utilizza inputTrack per indicare la traccia audio di input da cui generare i sottotitoli codificati. La mappatura non deve includere un campo inputCeaChannel, che viene utilizzato solo per i sottotitoli codificati forniti dagli utenti.

  • Imposta outputCeaChannel sul canale dei sottotitoli codificati in modo che contenga le trascrizioni generate con l'AI nel flusso di distribuzione.

  • Imposta languageCode sulla lingua parlata nella traccia audio.

  • I flussi elementari sono inclusi nel campo elementaryStreams dell'oggetto DistributionStream.

    {
      "distributionStreams": [
        {
          "key": "ds1",
          "container": "ts", // to be used with an SRT distribution
          "elementaryStreams": [
            "es_video",
            "es_audio",
            "embedded_english_ai", // distribute both English
            "embedded_spanish_ai"  // and Spanish captions
          ]
        },
        {
          "key": "ds2",
          "container": "flv", // to be used with an RTMP distribution
          "elementaryStreams": [
            "es_video",
            "es_audio",
            "embedded_spanish_ai" // only distribute Spanish captions
          ]
        }
      ]
    }
    

Completa la creazione del canale seguendo la guida alla distribuzione del live streaming all'endpoint remoto.

Configurazioni avanzate

Imposta AutoTranscriptionConfig a livello di canale per perfezionare ulteriormente i flussi di testo generati con l'AI in base alle tue esigenze.

Sincronizzazione della visualizzazione dei sottotitoli codificati

Per impostazione predefinita, i sottotitoli codificati creati con l'AI vengono visualizzati in modo asincrono rispetto all'audio e al video. Imposta il campo DisplayTiming in AutoTranscriptionConfig su SYNC per visualizzarli in modo sincrono.

{
  "autoTranscriptionConfig": {
    "displayTiming": "SYNC"
  }
}

La visualizzazione sincrona dei sottotitoli codificati riduce la latenza di visualizzazione tra audio e testo, ma aumenta la latenza end-to-end complessiva dei contenuti multimediali.

Preset di qualità

Utilizza il campo QualityPreset in AutoTranscriptionConfig per configurare le preferenze di qualità per i flussi di testo creati con l'AI.

Ad esempio, puoi ridurre ulteriormente la latenza della generazione del flusso di testo impostando:

{
  "autoTranscriptionConfig" : {
    "qualityPreset": "LOW_LATENCY"
  }
}

Esegui la pulizia

Interrompere il canale

Utilizza il metodo projects.locations.channels.stop per interrompere il canale. Devi interrompere il canale prima di poterlo eliminare.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Interrompere lo stream di input

Se hai utilizzato ffmpeg per inviare il flusso di input, la connessione viene interrotta automaticamente dopo l'interruzione del canale.

Eliminare il canale

Utilizza il metodo projects.locations.channels.delete per eliminare il canale. Devi eliminare il canale prima di poter eliminare l'endpoint di input utilizzato dal canale.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: un identificatore definito dall'utente per il canale

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Elimina l'endpoint di input

Utilizza il metodo projects.locations.inputs.delete per eliminare l'endpoint di input.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud ; si trova nel campo Numero progetto nella pagina Impostazioni IAM
  • LOCATION: la località in cui si trova l'endpoint di input; utilizza una delle regioni supportate
    Mostra località
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • INPUT_ID: l'identificatore definito dall'utente per l'endpoint di input

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Elimina il bucket Cloud Storage

  1. Nella console Google Cloud , vai alla pagina Browser Cloud Storage.

    Vai alla pagina Browser Cloud Storage

  2. Seleziona la casella di controllo accanto al bucket che hai creato.

  3. Fai clic su Elimina.

  4. Nella finestra di dialogo visualizzata, fai clic su Elimina per eliminare il bucket e i relativi contenuti.