Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Aufzeichnung einzelner IVS-Teilnehmer | Echtzeit-Streaming - Amazon IVS

Aufzeichnung einzelner IVS-Teilnehmer | Echtzeit-Streaming

In diesem Dokument wird erklärt, wie Sie die Aufzeichnung einzelner Teilnehmer mit IVS-Streaming in Echtzeit verwenden können.

Es fallen standardmäßige S3-Speicher- und Anforderungskosten an. Für Thumbnails fallen keine zusätzlichen IVS-Gebühren an. Details finden Sie unter Preise für Amazon IVS.

Einführung

Die Aufzeichnung einzelner Teilnehmer ermöglicht es IVS-Echtzeit-Streaming-Kunden, IVS-Bühnen-Publisher einzeln in S3-Buckets aufzuzeichnen. Wenn die Aufzeichnung einzelner Teilnehmer für eine Bühne aktiviert ist, werden Publisher-Inhalte aufgezeichnet, sobald sie mit der Veröffentlichung für die Bühne beginnen.

Hinweis: Wenn Sie alle Teilnehmer der Bühne in einem einzigen Video mischen möchten, ist das Feature für zusammengesetzte Aufzeichnung besser geeignet. Eine Zusammenfassung der Aufzeichnung von IVS-Echtzeit-Streaming-Inhalten finden Sie unter Aufzeichnung.

Aufzeichnen der Medien jedes Publishers in einer separaten Datei unter Verwendung der Aufzeichnung einzelner Teilnehmer

Workflow

Workflow für das Aufzeichnen der Medien jedes Publishers in einer separaten Datei unter Verwendung der Aufzeichnung einzelner Teilnehmer

1. Erstellen eines S3-Bucket

Es muss ein S3-Bucket vorhanden sein, um VODs zu schreiben. Einzelheiten finden Sie in der S3-Dokumentation zum Erstellen von Buckets. Beachten Sie, dass für die Aufzeichnung einzelner Teilnehmer die S3-Buckets in derselben AWS-Region wie die IVS-Bühne erstellt werden müssen.

Wichtig: Wenn Sie einen vorhandenen S3-Bucket verwenden, muss die Einstellung Objekteigentümerschaft entweder Bucket-Eigentümer erzwungen oder Bucket-Eigentümer bevorzugt sein. Einzelheiten finden Sie in der S3-Dokumentation zum Steuern der Eigentümerschaft von Objekten.

2. Erstellen eines StorageConfiguration-Objekts

Rufen Sie nach dem Erstellen eines Buckets die IVS-Echtzeit-Streaming-API auf, um ein StorageConfiguration-Objekt zu erstellen. Sobald die Speicherkonfiguration erfolgreich erstellt wurde, hat IVS die Berechtigung, in den bereitgestellten S3-Bucket zu schreiben. Sie können dieses StorageConfiguration-Objekt für mehrere Bühnen wiederverwenden.

3. Erstellen einer Bühne mit Teilnehmer-Token

Jetzt müssen Sie eine IVS-Bühne erstellen, für welche die Aufzeichnung einzelner Teilnehmer aktiviert ist (indem Sie das AutoParticipantRecordingConfiguration-Objekt festlegen), sowie Teilnehmer-Token für jeden Publisher erstellen.

Mit der folgenden Anforderung wird eine Bühne mit zwei Teilnehmer-Token und aktivierter Aufzeichnung einzelner Teilnehmer erstellt.

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. Beitritt zur Bühne als aktiver Publisher

Verteilen Sie die Teilnehmer-Token an Ihre Publisher und lassen Sie sie der Bühne beitreten und mit der Veröffentlichung dafür beginnen.

Wenn sie der Bühne beitreten und mithilfe eines der Broadcast-SDKs für Echtzeit-Streaming von IVS beginnen, auf ihr zu veröffentlichen, startet der Aufzeichnungsvorgang für die Teilnehmer automatisch und sendet Ihnen ein EventBridge-Ereignis, das angibt, dass die Aufzeichnung gestartet wurde. (Das Ereignis lautet „Statusänderung der IVS-Teilnehmeraufzeichnung – Aufzeichnungsstart“.) Gleichzeitig beginnt der Prozess der Teilnehmeraufzeichnung mit dem Schreiben der VOD- und Metadatendateien in den konfigurierten S3-Bucket. Hinweis: Es kann nicht garantiert werden, dass Teilnehmer, die über einen extrem kurzen Zeitraum (weniger als 5 Sekunden) miteinander verbunden sind, aufgezeichnet werden.

Es gibt zwei Möglichkeiten, das S3-Präfix für jede Aufzeichnung zu erhalten:

  • Hören Sie das EventBridge-Ereignis ab:

    { "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" } }
  • Verwenden Sie den API-Vorgang GetParticipant – die Antwort enthält den S3-Bucket und das Präfix für den Ort, an dem ein Teilnehmer aufgezeichnet wird. Hier ist die Anforderung:

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

    Und hier ist die Antwort:

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

5. Wiedergabe des VOD

Nachdem die Aufzeichnung abgeschlossen ist, können Sie sie mit dem IVS-Player ansehen. Anweisungen zum Einrichten von CloudFront-Distributionen für die VOD-Wiedergabe finden Sie unter Wiedergabe von aufgezeichneten Inhalten aus privaten Buckets.

Nur Audioaufzeichnung

Wenn Sie die Aufzeichnung für einzelne Teilnehmer einrichten, können Sie festlegen, dass nur Audio-HLS-Segmente in Ihren S3-Bucket geschrieben werden. Um dieses Feature zu verwenden, wählen Sie bei der Erstellung der Bühne AUDIO_ONLY mediaType aus:

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

Nur Thumbnail-Aufzeichnung

Wenn Sie die Aufzeichnung für einzelne Teilnehmer einrichten, können Sie festlegen, dass nur Thumbnails in Ihren S3-Bucket geschrieben werden. Um dieses Feature zu verwenden, legen Sie beim Erstellen der Stufe für mediaType NONE fest. Dadurch wird sichergestellt, dass keine HLS-Segmente generiert werden. Thumbnails werden trotzdem erstellt und in Ihren S3-Bucket geschrieben.

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

Inhalte der Aufnahme

Wenn die Aufzeichnung einzelner Teilnehmer aktiv ist, werden HLS-Videosegmente und Thumbnails in den S3-Bucket geschrieben, der bei der Erstellung der Stufe bereitgestellt wurde. Dieser Inhalt ist für die Nachbearbeitung oder Wiedergabe als On-Demand-Video verfügbar.

Beachten Sie, dass nach Abschluss einer Aufzeichnung das Ereignis „Statusänderung der IVS-Teilnehmeraufzeichnung – Aufzeichnungsende“ über EventBridge gesendet wird. Es wird empfohlen, aufgezeichnete Streams erst wiederzugeben oder zu verarbeiten, nachdem dieses Ereignis empfangen wurde. Einzelheiten finden Sie unter Verwenden von EventBridge mit IVS-Echtzeit-Streaming.

Nachfolgend finden Sie eine Beispielverzeichnisstruktur und den Inhalt einer Aufzeichnung einer Live-IVS-Sitzung:

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

Der Ordner events enthält die Metadatendateien, die dem Aufzeichnungsereignis entsprechen. JSON-Metadatendateien werden generiert, wenn die Aufzeichnung gestartet, erfolgreich beendet oder mit Fehlern beendet wird:

  • events/recording-started.json

  • events/recording-ended.json

  • events/recording-failed.json

Ein angegebener events-Ordner enthält recording-started.json und entweder recording-ended.json oder recording-failed.json. Diese enthalten Metadaten, die sich auf die aufgezeichnete Sitzung und ihre Ausgabeformate beziehen. JSON-Details sind unten angegeben.

Der Ordner media enthält die unterstützten Medieninhalte. Der Unterordner hls enthält alle Medien und Manifestdateien, die während der Aufzeichnungssitzung generiert wurden, und kann mit dem IVS-Player abgespielt werden. Falls konfiguriert, enthalten die Ordner thumbnails und die Unterordner latest_thumbnail JPEG-Thumbnail-Mediendateien, die während der Aufzeichnungssitzung generiert wurden.

JSON-Metadatendateien

Diese Metadaten weisen das JSON-Format auf. Es enthält die folgenden Informationen:

Feld Typ Erforderlich Beschreibung

stage_arn

Zeichenfolge Ja

ARN der Bühne, die als Quelle für die Aufzeichnung verwendet wird.

session_id

Zeichenfolge Ja

Zeichenfolge, welche die session_id der Bühne angibt, auf welcher der Teilnehmer aufgezeichnet wird.

participant_id

Zeichenfolge Ja Zeichenfolge, die die Kennung des aufgezeichneten Teilnehmers darstellt.

recording_started_at

Zeichenfolge Bedingt

RFC 3339 UTC-Zeitstempel, wenn die Aufnahme gestartet wurde. Dies ist nicht verfügbar, wenn sich der recording_status in RECORDING_START_FAILED befindet. Beachten Sie auch den Hinweis unten für recording_ended_at.

recording_ended_at

Zeichenfolge Bedingt

RFC 3339 UTC-Zeitstempel, wenn die Aufnahme beendet wurde. Dies ist nur verfügbar, wenn recording_status "RECORDING_ENDED" oder "RECORDING_ENDED_WITH_FAILURE" ist.

Hinweis: recording_started_at und recording_ended_at sind Zeitstempel, wenn diese Ereignisse generiert werden, und stimmen möglicherweise nicht genau mit den Zeitstempeln des HLS-Videosegments überein. Um die Dauer einer Aufnahme genau zu bestimmen, verwenden Sie das Feld duration_ms.

recording_status

Zeichenfolge Ja

Aufzeichnungsstatus. Zulässige Werte: "RECORDING_STARTED", "RECORDING_ENDED", "RECORDING_START_FAILED", "RECORDING_ENDED_WITH_FAILURE".

recording_status_message

Zeichenfolge Bedingt

Beschreibende Informationen über den Status. Dies ist nur verfügbar, wenn recording_status "RECORDING_ENDED" oder "RECORDING_ENDED_WITH_FAILURE" ist.

media

object Ja

Objekt, das die Aufzählungsobjekte von Medieninhalten enthält, die für diese Aufzeichnung verfügbar sind. Zulässiger Wert: "hls".

  • hls

object Ja

Aufzählungsfeld, das die Ausgabe des Apple HLS-Formats beschreibt.

    • duration_ms

Ganzzahl Bedingt

Dauer des aufgezeichneten HLS-Inhalts in Millisekunden. Dies ist nur verfügbar, wenn recording_status "RECORDING_ENDED" oder "RECORDING_ENDED_WITH_FAILURE" ist. Wenn ein Fehler aufgetreten ist, bevor eine Aufzeichnung durchgeführt wurde, ist dies 0.

    • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem HLS-Inhalt gespeichert wird.

    • playlist

Zeichenfolge Ja

Name der HLS-Master-Wiedergabeliste.

    • renditions

Objekt Ja

Array von Formatversionen (HLS-Varianten) von Metadatenobjekten. Es ist immer mindestens eine Formatvariante vorhanden.

      • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem HLS-Inhalt für diese Formatvariante gespeichert wird.

      • playlist

Zeichenfolge Ja

Name der Medienwiedergabelistdatei für diese Formatvariante.

  • thumbnails

object Bedingt

Aufzählungsfeld, das die Ausgabe von Miniaturansichten beschreibt. Diese Funktion ist nur verfügbar, wenn das Feld der Konfiguration storage SEQUENTIAL enthält.

    • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem sequentieller Thumbnail-Inhalt gespeichert wird.

    • renditions

object Ja

Array von Formatversionen (Thumbnail-Varianten) von Metadatenobjekten. Es ist immer mindestens eine Formatvariante vorhanden.

      • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem Thumbnail-Inhalt für diese Formatvariante gespeichert wird.

  • latest_thumbnail

object Bedingt

Aufzählungsfeld, das die Ausgabe von Miniaturansichten beschreibt. Diese Funktion ist nur verfügbar, wenn das Feld der Konfiguration storage LATEST enthält.

    • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem latest_thumbnail gespeichert wird.

    • renditions

object Ja

Array von Formatversionen (Thumbnail-Varianten) von Metadatenobjekten. Es ist immer mindestens eine Formatvariante vorhanden.

      • path

Zeichenfolge Ja

Relativer Pfad vom S3-Präfix, in dem das neueste Thumbnail für diese Formatvariante gespeichert wird.

version

Zeichenfolge Ja

Die Version des Metadatenschemas.

Beispiel: 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" } ] } } }

Beispiel: 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" } ] } } }

Beispiel: 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" } ] } } }
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.