Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Registrazione di singoli partecipanti in IVS | Streaming in tempo reale - Amazon IVS

Registrazione di singoli partecipanti in IVS | Streaming in tempo reale

Questo documento spiega come utilizzare la registrazione dei singoli partecipanti con lo streaming IVS in tempo reale.

Si applicano i costi standard di archiviazione e richiesta di Amazon S3. Le miniature non comportano costi IVS aggiuntivi. Per ulteriori dettagli, consulta la pagina Prezzi di Amazon IVS.

Introduzione

La registrazione di singoli partecipanti consente ai clienti che utilizzano lo streaming in tempo reale di registrare singolarmente i publisher di fase IVS in bucket S3. Quando la registrazione dei singoli partecipanti è abilitata per una fase, una volta che i publisher iniziano a pubblicare sulla fase i rispettivi contenuti vengono registrati.

Nota: se è necessario che tutti i partecipanti alla fase vengano mixati in un unico video, la soluzione migliore è la funzionalità di registrazione composita. Consulta la sezione Registrazione per un riepilogo della registrazione di contenuti in streaming in tempo reale in IVS.

Registrazione dei contenuti multimediali di ciascun publisher in un file separato utilizzando la registrazione dei singoli partecipanti.

Flusso di lavoro

Flusso di lavoro di registrazione dei contenuti multimediali di ciascun publisher in un file separato utilizzando la registrazione dei singoli partecipanti.

1. Creare un bucket S3

Per la scrittura dei VOD occorre un bucket S3. Per i dettagli, consulta la documentazione di S3 su come creare un bucket. Occorre tenere presente che per la registrazione dei singoli partecipanti i bucket S3 devono essere creati nella stessa regione AWS della fase IVS.

Importante: se si utilizza un bucket S3 esistente, l'impostazione Proprietà dell'oggetto deve essere Proprietario del bucket applicato o Proprietario del bucket preferito. Per i dettagli, consulta la documentazione di S3 sul controllo della proprietà degli oggetti.

2. Creazione di un oggetto StorageConfiguration

Dopo aver creato un bucket, chiama l'API di streaming in tempo reale IVS per creare un oggetto StorageConfiguration. Una volta creata correttamente la configurazione di archiviazione, IVS disporrà dell'autorizzazione a scrivere nel bucket S3 fornito. È possibile riutilizzare questo oggetto StorageConfiguration in più fasi.

3. Creazione di una fase con i token dei partecipanti

Ora è necessario creare una fase IVS con la registrazione dei singoli partecipanti abilitata (impostando l'oggetto AutoParticipantRecordingConfiguration), oltre ai token dei partecipanti per ogni publisher.

La richiesta seguente crea una fase con due token dei partecipanti e la registrazione dei singoli partecipanti abilitata.

POST /CreateStage HTTP/1.1 Content-type: application/json { "autoParticipantRecordingConfiguration": { "mediaTypes": ["AUDIO_VIDEO"], "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/AbCdef1G2hij", "thumbnailConfiguration": { "recordingMode": "INTERVAL", "storage": ["LATEST", "SEQUENTIAL"], "targetIntervalSeconds": 60 } }, "name": "TestStage", "participantTokenConfigurations": [ { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "1" }, { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "2" } ] }

4. Aggiunta alla fase come publisher attivo

Distribuisci i token dei partecipanti ai publisher e invitali ad aggiungersi alla fase e iniziare a pubblicare su di essa.

Quando si aggiungono alla fase e iniziano a pubblicare su di essa utilizzando uno degli SDK di trasmissione in streaming in tempo reale IVS, il processo di registrazione dei partecipanti si avvia automaticamente e ti invia un evento EventBridge che segnala l'inizio della registrazione. L'evento è Modifica dello stato di registrazione dei partecipanti IVS - Avvio della registrazione. Contemporaneamente, il processo di registrazione dei partecipanti inizia a scrivere i file VOD e di metadati nel bucket S3 configurato. Nota: non è garantita la registrazione dei partecipanti collegati per periodi estremamente brevi (meno di 5 secondi).

Esistono due modi per ottenere il prefisso S3 per ogni registrazione:

  • Ascoltare l'evento EventBridge:

    { "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:19:04Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording Start", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "ivs-recordings", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" } }
  • Usa l'operazione dell'API GetParticipant: la risposta include il bucket S3 e il prefisso in cui è in corso la registrazione di un partecipante. Ecco la richiesta:

    POST /GetParticipant HTTP/1.1 Content-type: application/json { "participantID": "xYz1c2d3e4f", "sessionId": "st-ZyXwvu1T2s", "stageArn": "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" }

    Ed ecco la risposta:

    Content-type: application/json { "participant": { ... "recordingS3BucketName": "ivs-recordings", "recordingS3Prefix": "<stage_id>/<session_id>/<participant_id>", "recordingState": "ACTIVE", ... } }

5. Riproduzione del VOD

Una volta completata la registrazione, è possibile guardarla utilizzando il lettore IVS. Consulta la sezione Riproduzione di contenuti registrati da bucket privati per istruzioni sulla configurazione delle distribuzioni CloudFront per la riproduzione del VOD.

Registrazione solo audio

Quando si configura la registrazione dei singoli partecipanti, è possibile scegliere di scrivere nel bucket S3 soltanto i segmenti audio HLS. Per utilizzare questa funzione, scegli AUDIO_ONLY mediaType quando crei la fase:

POST /CreateStage HTTP/1.1 Content-type: application/json { "autoParticipantRecordingConfiguration": { "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/AbCdef1G2hij", "mediaTypes": ["AUDIO_ONLY"], "thumbnailConfiguration": { "recordingMode": "DISABLED" } }, "name": "TestStage", "participantTokenConfigurations": [ { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "1" }, { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "2" } ] }

Registrazione solo miniatura

Quando si configura la registrazione dei singoli partecipanti, è possibile scegliere di scrivere nel bucket S3 soltanto le miniature. Per utilizzare questa funzionalità, imposta mediaType a NONE quando crei la fase. Ciò garantisce che non vengano generati segmenti HLS; le miniature vengono comunque create e scritte nel bucket S3.

POST /CreateStage HTTP/1.1 Content-type: application/json { "autoParticipantRecordingConfiguration": { "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/AbCdef1G2hij", "mediaTypes": ["NONE"], "thumbnailConfiguration": { "recordingMode": "INTERVAL", "storage": ["LATEST", "SEQUENTIAL"], "targetIntervalSeconds": 60 } }, "name": "TestStage", "participantTokenConfigurations": [ { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "1" }, { "capabilities": ["PUBLISH", "SUBSCRIBE"], "duration": 20160, "userId": "2" } ] }

Contenuto della registrazione

Quando la registrazione dei singoli partecipanti è attiva, i segmenti video, i file di metadati e le miniature HLS verranno scritti nel bucket S3 indicato durante la creazione della fase. Questo contenuto è disponibile per la post-elaborazione o la riproduzione come video on demand.

Si noti che dopo il completamento di una registrazione, tramite EventBridge viene inviato un evento Modifica dello stato di registrazione dei partecipanti IVS - Fine della registrazione. Consigliamo di riprodurre o elaborare i flussi registrati solo dopo l'invio dell'evento di fine della registrazione. Per maggiori dettagli, consulta Utilizzo di EventBridge con lo streaming in tempo reale IVS.

Di seguito è riportato un esempio di contenuti e della struttura di directory di una registrazione di una sessione IVS live:

s3://mybucket/stageId/stageSessionId/participantId/timestamp events recording-started.json recording-ended.json media hls multivariant.m3u8 high playlist.m3u8 1.mp4 thumbnails high 1.jpg 2.jpg latest_thumbnail high thumb.jpg

La cartella events contiene i file di metadati corrispondenti all'evento di registrazione. I file di metadati JSON vengono generati quando la registrazione inizia, termina correttamente o termina con errori:

  • events/recording-started.json

  • events/recording-ended.json

  • events/recording-failed.json

Una determinata cartella events contiene recording-started.json e recording-ended.json o recording-failed.json. Questi contengono metadati relativi alla sessione registrata e ai relativi formati di output. I dettagli JSON sono riportati di seguito.

La cartella media contiene i contenuti multimediali supportati. La sottocartella hls contiene tutti i file multimediali e i file manifesto generati durante la sessione di registrazione ed è riproducibile con il lettore IVS. Se configurate, le sottocartelle thumbnails e latest_thumbnail contengono file multimediali in miniatura JPEG generati durante la sessione di composizione.

File di metadati JSON

Questi metadati sono in formato JSON. Tale controllo contiene le seguenti informazioni:

Campo Tipo Campo obbligatorio Descrizione

stage_arn

stringa

ARN della fase utilizzata come origine della registrazione.

session_id

string

Stringa che rappresenta il valore session_id della fase in cui viene registrato il partecipante.

participant_id

string Stringa che rappresenta l'identificatore del partecipante registrato.

recording_started_at

string Condizionale

Il timestamp UTC di RFC 3339 quando la registrazione inizia. Questo non è disponibile quando recording_status è RECORDING_START_FAILED. Inoltre, si veda la nota seguente per recording_ended_at.

recording_ended_at

string Condizionale

Il timestamp UTC di RFC 3339 quando la registrazione termina. Questo valore è disponibile solo quando recording_status è "RECORDING_ENDED" o"RECORDING_ENDED_WITH_FAILURE".

Nota: recording_started_at e recording_ended_at sono timestamp del momento in cui questi eventi vengono generati e potrebbero non corrispondere esattamente ai timestamp del segmento video HLS. Per determinare con precisione la durata di una registrazione, utilizzare il campo duration_ms.

recording_status

string

Lo stato della registrazione. Valori validi: "RECORDING_STARTED", "RECORDING_ENDED", "RECORDING_START_FAILED", "RECORDING_ENDED_WITH_FAILURE".

recording_status_message

string Condizionale

Le informazioni descrittive sullo stato. Questo valore è disponibile solo quando recording_status è "RECORDING_ENDED" o"RECORDING_ENDED_WITH_FAILURE".

media

oggetto

L'oggetto che contiene gli oggetti enumerati del contenuto multimediale disponibile per la registrazione. Valore valido: "hls".

  • hls

oggetto

Il campo enumerato che descrive l'output in formato Apple HLS.

    • duration_ms

intero Condizionale

La durata del contenuto HLS registrato, in millisecondi. Questo valore è disponibile solo quando recording_status è "RECORDING_ENDED" o"RECORDING_ENDED_WITH_FAILURE". Se prima di una registrazione si è verificato un errore, allora sarà uguale a 0.

    • path

stringa

Il percorso relativo dal prefisso S3 in cui è memorizzato il contenuto HLS.

    • playlist

stringa

Il nome del file della playlist principale HLS.

    • renditions

oggetto

L'array di rendering (variante HLS) degli oggetti di metadati. È presente sempre almeno un rendering.

      • path

stringa

Il percorso relativo dal prefisso S3 in cui è memorizzato il contenuto HLS per questo rendering.

      • playlist

stringa

Il nome del file della playlist multimediale per questo rendering.

  • thumbnails

oggetto Condizionale

Il campo enumerato che descrive l'output delle miniature. Questa opzione è disponibile solo quando il campo storage della configurazione della miniatura include SEQUENTIAL

    • path

string

Il percorso relativo dal prefisso S3 in cui è memorizzato il contenuto delle miniature sequenziale.

    • renditions

oggetto

L'array di rendering (variante miniatura) degli oggetti di metadati. È presente sempre almeno un rendering.

      • path

stringa

Il percorso relativo dal prefisso S3 in cui è memorizzato il contenuto della miniatura per questo rendering.

  • latest_thumbnail

oggetto Condizionale

Il campo enumerato che descrive l'output delle miniature. Questa opzione è disponibile solo quando il campo storage della configurazione della miniatura include LATEST

    • path

string

Il percorso relativo dal prefisso S3 in cui è memorizzato latest_thumbnail.

    • renditions

oggetto

L'array di rendering (variante miniatura) degli oggetti di metadati. È presente sempre almeno un rendering.

      • path

stringa

Il percorso relativo dal prefisso S3 in cui è memorizzata l’ultima miniatura per questo rendering.

version

string

La versione dello schema dei metadati.

Esempio: recording-started.json

{ "version": "v1", "stage_arn": "arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij", "session_id": "st-ZyXwvu1T2s", "participant_id": "xYz1c2d3e4f", "recording_started_at": "2024-03-13T13:17:17Z", "recording_status": "RECORDING_STARTED", "media": { "hls": { "path": "media/hls", "playlist": "multivariant.m3u8", "renditions": [ { "path": "high", "playlist": "playlist.m3u8" } ] }, "thumbnails": { "path": "media/thumbnails", "renditions": [ { "path": "high" } ] }, "latest_thumbnail": { "path": "media/latest_thumbnail", "renditions": [ { "path": "high" } ] } } }

Esempio: recording-ended.json

{ "version": "v1", "stage_arn": "arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij", "session_id": "st-ZyXwvu1T2s", "participant_id": "xYz1c2d3e4f", "recording_started_at": "2024-03-13T19:44:19Z", "recording_ended_at": "2024-03-13T19:55:04Z", "recording_status": "RECORDING_ENDED", "media": { "hls": { "duration_ms": 645237, "path": "media/hls", "playlist": "multivariant.m3u8", "renditions": [ { "path": "high", "playlist": "playlist.m3u8" } ] }, "thumbnails": { "path": "media/thumbnails", "renditions": [ { "path": "high" } ] }, "latest_thumbnail": { "path": "media/latest_thumbnail", "renditions": [ { "path": "high" } ] } } }

Esempio: recording-failed.json

{ "version": "v1", "stage_arn": "arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij", "session_id": "st-ZyXwvu1T2s", "participant_id": "xYz1c2d3e4f", "recording_started_at": "2024-03-13T19:44:19Z", "recording_ended_at": "2024-03-13T19:55:04Z", "recording_status": "RECORDING_ENDED_WITH_FAILURE", "media": { "hls": { "duration_ms": 645237, "path": "media/hls", "playlist": "multivariant.m3u8", "renditions": [ { "path": "high", "playlist": "playlist.m3u8" } ] }, "thumbnails": { "path": "media/thumbnails", "renditions": [ { "path": "high" } ] }, "latest_thumbnail": { "path": "media/latest_thumbnail", "renditions": [ { "path": "high" } ] } } }
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.