Automatische IVS-Aufzeichnung in Amazon S3 | Streaming mit niedriger Latenz
In diesem Abschnitt finden Sie Informationen zum Feature „Automatische Aufnahme in S3“ von on Amazon-IVS-Streaming mit niedriger Latenz. Wir besprechen die Datenspeicherung für aufgenommene Amazon-IVS-Streams. Wir erklären den Speicherinhalt und das Metadatendateischema. Wir besprechen auch die Wiedergabe Ihrer aufgenommenen Inhalte.
Details dazu … | Siehe ... |
---|---|
Einrichten und Stoppen der Videoaufnahme |
Erstellen eines Kanals in Erste Schritte mit Amazon IVS |
Die -API |
|
Kosten | Amazon-IVS-Kosten |
S3-Präfix
Das S3-Präfix ist eine eindeutige Verzeichnisstruktur für jeden aufgezeichneten Livestream. Alle Medien- und Metadatendateien für den Livestream werden in diesem Verzeichnis geschrieben. Bei Kanälen mit aktivierter Aufzeichnung wird das S3-Präfix beim Starten einer Live-Sitzung generiert und am Anfang und Ende einer Aufzeichnung im CloudWatch Ereignis bereitgestellt.
Das S3-Präfix hat das folgende Format:
/ivs/v1/<aws_account_id>/<channel_id>/<year>/<month>/<day>/<hours>/<minutes>/<recording_id>
Wobei gilt:
-
aws_account_id
ist die ID Ihres AWS Kontos (generiert, wenn Sie ein AWS-Konto erstellt haben), aus dem der Kanal erstellt wird. -
channel_id
ist der Ressourcen-ID-Teil des Kanal-ARN (der letzte Teil des Amazon-Ressourcennamens). Siehe ARN in der Glossar. -
<year>/<month>/<day>/<hours>/<minutes>
ist ein UTC-Zeitstempel, wann die Aufnahme gestartet wird. -
recording_id
ist eine eindeutige ID, die für jede Aufzeichnungssitzung generiert wird.
Beispiel:
ivs/v1/123456789012/AsXego4U6tnj/2020/6/23/20/12/j8Z9O91ndcVs
Inhalte der Aufnahme
Beim Start der Aufzeichnung werden Videosegmente und Metadatendateien in den S3-Bucket geschrieben, der für den Kanal konfiguriert ist. Diese Inhalte sind für die Nachbearbeitung oder Wiedergabe als On-Demand-Video verfügbar.
Beachten Sie, dass es nach dem Start eines Livestreams und der Ausgabe des Recording Start EventBridge-Ereignisses etwas Zeit dauert, bis die Manifestdateien und Videosegmente geschrieben werden. Es wird empfohlen, aufgezeichnete Streams erst wiederzugeben oder zu verarbeiten, nachdem das Ereignis Aufzeichnungsende gesendet wurde. (Siehe Verwenden von Amazon EventBridge mit IVS.)
Im Folgenden finden Sie eine Beispielverzeichnisstruktur und den Inhalt einer Aufzeichnung einer Live-Amazon IVS-Sitzung:
ivs/v1/123456789012/AsXego4U6tnj/2020/6/23/20/12/j8Z9O91ndcVs/ events recording-started.json recording-ended.json media hls thumbnails
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 gegebener 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 media
-Ordner enthält alle unterstützten Medieninhalte in zwei Unterordnern:
-
hls
enthält alle Medien und Manifestdateien, die während der Live-Sitzung generiert wurden und mit dem Amazon IVS-Player wiedergegeben werden können. In diesem Ordner gibt es zwei Arten von HLS-Manifesten, das Standard-Mastermanifestmaster.m3u8
und das Manifestbyte-range-multivariant.m3u8
mit aktiviertem Bytebereich. Daher enthält jeder Wiedergabeordner sowohl eineplaylist.m3u8
- als auch einebyte-range-variant.m3u8
-Datei. (Siehe Playlisten im Bytebereich unten.) -
thumbnails
enthält Miniaturbilder, die während der Live-Sitzung generiert wurden. Miniaturansichten werden erstellt und jede Minute in den Bucket geschrieben. (Um dieses Verhalten zu ändern, müssen Sie die EigenschaftthumbnailConfiguration
für eine Aufzeichnungskonfiguration außer Kraft setzen.)
Wichtig: Die Inhalte im Ordner media
werden dynamisch generiert und durch die Eigenschaften der ersten empfangenen Videosegmente bestimmt; der Ordnerinhalt stellt möglicherweise nicht die endgültigen Merkmale dar (z. B. die Formatvariantenqualität). Treffen Sie keine Annahmen zum statischen Pfad. Um die verfügbaren HLS-Formatvarianten und deren Pfad zu ermitteln, verwenden Sie die im Folgenden beschriebenen JSON-Metadatendateien.
Playlisten im Bytebereich
Das Feature für die automatische Aufzeichnung in S3 unterstützt zusätzlich zu den Standard-HLS-Playlisten auch die Erstellung von Playlisten im Bytebereich
Miniaturansichten
Mit der Eigenschaft thumbnailConfiguration
einer Aufzeichnungskonfiguration können Sie die Aufzeichnung von Miniaturansichten für eine Live-Sitzung aktivieren oder deaktivieren und das Intervall ändern, in dem Miniaturansichten für die Live-Sitzung erzeugt werden. Die Intervalle für Miniaturansichten können zwischen 1 Sekunde und 60 Sekunden liegen. Standardmäßig ist die Miniaturbildaufnahme in einem Intervall von 60 Sekunden aktiviert. Ausführliche Informationen finden Sie in der API-Referenz zu Amazon-IVS-Streaming mit niedriger Latenz.
Die Thumbnail-Konfiguration kann auch dasstorage
-Feld (SEQUENTIAL
und/oder LATEST
) und eine Auflösung (LOWEST_RESOLUTION
, SD
, HD
oder FULL_HD
) beinhalten. Im Folgenden finden Sie die Auflösungen für jede Option:
160 <= LOWEST_RESOLUTION
<= 360
360 <= SD
<= 480
480 <= HD
<= 720
720 <= FULL_HD
<= 1080
Wenn resolution
für einen Stream, der Multitrack-Videoeingang verwendet, nicht festgelegt wird, werden Miniaturansichten aller Wiedergaben aufgezeichnet. Informationen zu Multitrack finden Sie unter Multitrack-Video.
Fragmentierte Streams zusammenführen
Mit der recordingReconnectWindowSeconds
-Eigenschaft einer Aufzeichnungskonfiguration können Sie ein Zeitfenster (in Sekunden) angeben, in dem Amazon IVS versucht, mit demselben S3-Präfix wie der vorherige Stream aufzuzeichnen, wenn Ihr Stream unterbrochen wird und ein neuer Stream gestartet wird. Mit anderen Worten, wenn eine Sendung die Verbindung trennt und dann innerhalb des angegebenen Intervalls erneut verbindet, werden die mehreren Streams als eine einzige Sendung betrachtet und zusammengeführt.
Ereignisse zur Änderung des IVS-Aufzeichnungsstatus in Amazon EventBridge: Die Aufnahme von Endereignissen und recording-ended-JSON-Metadatendateien werden um mindestens recordingReconnectWindowSeconds
verzögert, da Amazon IVS darauf wartet, dass kein neuer Stream gestartet wird.
Weitere Informationen zur Einrichtung der Funktionalität zur Zusammenführung von Streams finden Sie unter Schritt 4: Erstellen eines Kanals mit einer optionalen Aufzeichnung in Erste Schritte mit Amazon IVS.
Berechtigung
Damit mehrere Streams mit demselben S3-Präfix aufgezeichnet werden können, müssen bestimmte Bedingungen für alle Streams erfüllt sein:
-
Videobreite und -höhe müssen gleich sein.
-
Die Bildrate muss gleich sein.
-
Die Bitratendifferenz der nachfolgenden Streams muss kleiner oder gleich 50 % der Bitrate des ursprünglichen Streams sein.
-
Video- und Audiocodecs müssen identisch sein.
Hinweise:
-
Maximal 20 Streams werden zusammengeführt, danach wird ein neues S3-Präfix erstellt.
-
Nach 48 Stunden wird ein neues S3-Präfix erstellt. Wenn die erste Sendung beispielsweise 48 Stunden dauert und eine weitere Sendung innerhalb des
recordingReconnectWindowSeconds
-Intervalls gestartet wird, wird die nächste Sendung nicht mit dem ersten S3-Präfix zusammengeführt. Jeder Stream muss mindestens 10 Sekunden nach dem vorherigen Stream beginnen.
Bekanntes Problem
Wenn recordingReconnectWindowSeconds
aktiviert ist und das Web Broadcast SDK verwendet wird, funktioniert die Aufzeichnung mit demselben S3-Präfix möglicherweise nicht, da das Web Broadcast SDK Bitraten und Qualitäten dynamisch ändert.
JSON-Metadatendateien
Wenn ein Ereignis Aufzeichnungsstatusänderung eintritt, wird eine entsprechende Amazon CloudWatch Metrik generiert und eine Metadatendatei innerhalb des S3-Präfix geschrieben. (Siehe Überwachen von Amazon-IVS-Streaming mit niedriger Latenz.)
Diese Metadaten weisen das JSON-Format auf. Sie umfasst die folgenden Informationen:
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
|
Zeichenfolge | Ja | ARN des Channels, der den Livestream sendet. |
|
Objekt | Ja | Objekt, das die Aufzählungsobjekte von Medieninhalten enthält, die für diese Aufzeichnung verfügbar sind. Zulässige Werte: |
|
object | Ja | Aufzählungsfeld, das die Ausgabe des Apple HLS-Formats beschreibt. |
|
Ganzzahl | Bedingt | Dauer des aufgezeichneten HLS-Inhalts in Millisekunden. Dies ist nur verfügbar, wenn |
|
Zeichenfolge | Ja | Relativer Pfad vom S3-Präfix, in dem HLS-Inhalt gespeichert wird. |
|
Zeichenfolge | Ja |
Name der HLS-Master-Wiedergabeliste. |
|
Zeichenfolge | Ja | Name der multivariablen HLS-Playlist im Bytebereich. |
|
object | Ja | Array von Formatvarianten (HLS-Variante) von Metadatenobjekten. Es ist immer mindestens eine Formatvariante vorhanden. |
|
Zeichenfolge | Ja | Relativer Pfad vom S3-Präfix, in dem HLS-Inhalt für diese Formatvariante gespeichert wird. |
|
Zeichenfolge | Ja | Name der Medienwiedergabelistdatei für diese Formatvariante. |
|
Zeichenfolge | Ja | Name der Playlist im Bytebereich für diese Formvariante. |
|
int | Bedingt | Pixelauflösungshöhe des codierten Videos. Diese Option ist nur verfügbar, wenn die Formatvariante eine Videospur enthält. |
|
int | Bedingt | Pixelauflösungsbreite des codierten Videos. Diese Option ist nur verfügbar, wenn die Formatvariante eine Videospur enthält. |
|
object | Bedingt | Aufzählungsfeld, das die Ausgabe von Miniaturansichten beschreibt. Dies ist nur verfügbar, wenn der |
|
Zeichenfolge | Bedingt | Relativer Pfad vom S3-Präfix, in dem Miniaturansicht-Inhalt gespeichert wird. Dies ist nur verfügbar, wenn der |
|
int | Ja | Die Höhe des Vorschaubilds. Standard: Auflösung der Quellwiedergabeversion. Dieser Wert wird durch Benutzereingaben in der entsprechenden Aufzeichnungskonfiguration beeinflusst, insbesondere durch den |
|
int | Ja | Die Breite des Vorschaubilds. Standard: Auflösung der Quellwiedergabeversion. Dieser Wert wird durch Benutzereingaben in der entsprechenden Aufzeichnungskonfiguration beeinflusst, insbesondere durch den |
|
object | Ja | Aufzählungsfeld, das die Ausgabe von Miniaturansichten beschreibt. Diese Funktion ist nur verfügbar, wenn die Konfiguration der Miniaturansicht |
|
int | Ja | Die Höhe des Vorschaubilds. Standard wird die Auflösung der Quell-Wiedergabeversion sein. Dieser Wert wird durch Benutzereingaben in der entsprechenden Aufzeichnungskonfiguration beeinflusst, insbesondere durch den |
|
int | Ja | Die Breite des Vorschaubilds. Standard wird die Auflösung der Quell-Wiedergabeversion sein. Dieser Wert wird durch Benutzereingaben in der entsprechenden Aufzeichnungskonfiguration beeinflusst, insbesondere durch den |
|
Zeichenfolge | Bedingt | RFC 3339 UTC-Zeitstempel, wenn die Aufnahme beendet wurde. Dies ist nur verfügbar, wenn
|
|
Zeichenfolge | Ja | RFC 3339 UTC-Zeitstempel, wenn die Aufnahme gestartet wurde. Beachten Sie den oben stehenden Hinweis zu |
|
Zeichenfolge | Ja | Aufzeichnungsstatus. Zulässige Werte: |
|
Zeichenfolge | Bedingt | Beschreibende Informationen über den Status. Dies ist nur verfügbar, wenn |
|
Zeichenfolge | Ja | Die Version des Metadatenschemas. |
Beispiel: recording_started.json
{ "version": "v1", "channel_arn": "arn:aws:ivs:us-west-2:123456789012:channel/AsXego4U6tnj", "recording_started_at": "2020-06-12T12:53:26Z", "recording_status : "RECORDING_STARTED", "media": { "hls": { "path": "media/hls", "playlist": "master.m3u8", "byte_range_playlist": "byte-range-multivariant.m3u8", "renditions": [ { "path": "480p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 480, "resolution_width": 852 }, { "path": "360p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 360, "resolution_width": 640 }, { "path": "160p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 160, "resolution_width": 284 }, { "path": "720p60", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 720, "resolution_width": 1280 } ] }, "thumbnails": { "path": "media/thumbnails", "resolution_height": 480, "resolution_width": 852 }, "latest_thumbnail": { "path": "media/latest_thumbnail/thumb.jpg", "resolution_height": 480, "resolution_width": 852 } } }
Beispiel: recording_ended.json
{ "version": "v1", "channel_arn": "arn:aws:ivs:us-west-2:123456789012:channel/AsXego4U6tnj", "recording_ended_at": "2020-06-14T12:53:20Z", "recording_started_at": "2020-06-12T12:53:26Z", "recording_status": "RECORDING_ENDED", "media": { "hls": { "duration_ms": 172794489, "path": "media/hls", "playlist": "master.m3u8", "byte_range_playlist": "byte-range-multivariant.m3u8", "renditions": [ { "path": "480p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 480, "resolution_width": 852 }, { "path": "360p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 360, "resolution_width": 640 }, { "path": "160p30", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 160, "resolution_width": 284 }, { "path": "720p60", "playlist": "playlist.m3u8", "byte_range_playlist": "byte-range-variant.m3u8", "resolution_height": 720, "resolution_width": 1280 } ] }, "thumbnails": { "path": "media/thumbnails", "resolution_height": 480, "resolution_width": 852 }, "latest_thumbnail": { "path": "media/latest_thumbnail/thumb.jpg", "resolution_height": 480, "resolution_width": 852 } } }
Beispiel: recording_failed.json
{ "version": "v1", "channel_arn": "arn:aws:ivs:us-west-2:123456789012:channel/AsXego4U6tnj", "recording_ended_at": "2020-06-14T12:53:20Z", "recording_started_at": "2020-06-12T12:53:26Z", "recording_status": "RECORDING_ENDED_WITH_FAILURE", "recording_status_message": "InternalServerException", "media": { "hls": { "duration_ms": 172794489, "path": "media/hls", "playlist": "master.m3u8", "renditions": [ { "path": "480p30", "playlist": "playlist.m3u8", "resolution_height": 480, "resolution_width": 852 }, { "path": "720p60", "playlist": "playlist.m3u8", "resolution_height": 720, "resolution_width": 1280 } ] }, "thumbnails": { "path": "media/thumbnails", "resolution_height": 480, "resolution_width": 852 }, "latest_thumbnail": { "path": "media/latest_thumbnail/thumb.jpg", "resolution_height": 480, "resolution_width": 852 } } }
Erkennen der Formatvarianten einer Aufzeichnung
Wenn Sie Inhalte auf einen Amazon IVS-Kanal streamen, verwendet Auto-Record-to-s3 das Quellvideo, um mehrere Formatvarianten zu generieren. Durch die Verwendung von Adaptive Bitrate Streaming (ABR) schaltet der Amazon IVS Player die Wiedergabedaten (Bitraten) automatisch nach Bedarf um zur Optimierung der Wiedergabe für unterschiedliche Netzwerkbedingungen.
Jede beim Livestreaming generierte Formatvariante wird in einem eindeutigen Pfad innerhalb des S3-Aufzeichnungspräfix aufgezeichnet. Die Namen der Auflösungsdetails, des Pfads und der Wiedergabeliste werden während des Start- und Stoppens der Aufzeichnung in einer JSON-Metadatendatei gespeichert. Wenn der Wert renditionSelection
der Aufnahmekonfiguration ALL
ist, werden alle Wiedergabeversionen für die Aufnahme ausgewählt. Wenn renditionSelection
CUSTOM
ist, muss der Benutzer eine oder mehrere der folgenden Optionen auswählen: LOWEST_RESOLUTION
, SD
, HD
und FULL_HD. Im Folgenden finden Sie die Auflösungen für jede Option:
160 <= LOWEST_RESOLUTION
<= 360
360 <= SD
<= 480
480 <= HD
<= 720
720 <= FULL_HD
<= 1080
Wichtig: Machen Sie keine Annahmen über den statischen Wiedergabepfad oder die Liste der generierten Wiedergabeversionen, da diese Änderungen unterliegen können. Gehen Sie nicht davon aus, dass eine bestimmte Wiedergabe immer für eine Amazon IVS-Aufnahme verfügbar ist. Informationen zum Ermitteln der verfügbaren Formatvarianten, Auflösungen und Pfade finden Sie in den Metadatendateien.
Die event/recording_started.json
- oder event/recording_ended.json
-Datei innerhalb des Aufnahme-Präfixes enthält die Pfade und Namen der Mediendateien innerhalb des Aufnahme-Präfixes. Alle path
-Elemente relativ zum vorherigen Pfad in der Hierarchie sind. Elemente unter media
> hls
beschreiben HLS-Assets, wobei Name und Pfad der Master-Wiedergabeliste auf dieser Ebene definiert sind.
Hier ist ein Python-Code-Snippet, das zeigt, wie ein Master-Wiedergabelisten-Pfad mit dem S3-Aufzeichnungspräfix und der Metadatendatei generiert wird:
def get_master_playlist(metadata_json, s3_recording_prefix): return s3_recording_prefix + '/' + metadata_json['media']['hls']['path'] + '/' + metadata_json['media']['hls']['playlist']
Elemente unter media > hls > renditions
beschreiben die Liste der aufgezeichneten Formatvarianten. Die resolution_height
- und resolution_width
-Eigenschaften können verwendet werden, um die Videoauflösung zu identifizieren. Die path
- und playlist
-Elemente können verwendet werden, um den Wiedergabelisten-Pfad abzuleiten. Verwenden Sie diese Felder, um zu bestimmen, welche Formatvariante für die Nachbearbeitung verwendet werden soll.
Um die höchste verfügbare Wiedergabeliste für eine Aufnahme zu ermitteln, können Sie EventBridge Ereignisse „IVS Recording State Change“ abonnieren. (Siehe Verwenden von Amazon EventBridge mit IVS). Im Folgenden finden Sie ein Beispiel Python-Skript, das die Verwendung einer Lambda-Funktion veranschaulicht, die diese Ereignisse abonniert hat.
import json import boto3 s3 = boto3.resource('s3') def get_highest_rendition_playlist(bucket_name, prefix_name): object_path = "{}/events/recording-started.json".format(prefix_name) object = s3.Object(bucket_name, object_path) body = str(object.get()['Body'].read().decode('utf-8')) metadata = json.loads(body) media_path = metadata["media"]["hls"]["path"] renditions = metadata["media"]["hls"]["renditions"] highest_rendition = None highest_rendition_size = 0 for rendition in renditions: current_rendition_size = rendition["resolution_height"] if (current_rendition_size > highest_rendition_size): highest_rendition_size = current_rendition_size highest_rendition = rendition highest_rendition_playlist = media_path + '/' + highest_rendition['path'] + '/' + highest_rendition['playlist'] return highest_rendition_playlist def lambda_handler(event, context): prefix_name = event["detail"]["recording_s3_key_prefix"] bucket_name = event["detail"]["recording_s3_bucket_name"] rendition_playlist = get_highest_rendition_playlist(bucket_name, prefix_name) print("Highest rendition playlist: {}/{}".format(prefix_name, rendition_playlist)) return { 'statusCode': 200, 'body': rendition_playlist }
Wiedergabe von aufgezeichneten Inhalten aus privaten Buckets
Objekte, die mit dem Feature „Automatische Aufnahme in Amazon S3“ aufgezeichnet wurden, sind standardmäßig privat. Daher können diese Objekte nicht über die direkte S3-URL wiedergegeben werden. Wenn Sie versuchen, das HLS-Master-Manifest (m3u8-Datei) für die Wiedergabe mit dem Amazon IVS Player oder einem anderen Player zu öffnen, erhalten Sie eine Fehlermeldung (z. B. „Sie haben keine Berechtigung für den Zugriff auf die angeforderte Ressource“). Stattdessen können Sie diese Dateien mit dem Amazon-CloudFront-CDN (Content Delivery Network) wiedergeben.
Amazon-CloudFront-Verteilung
Ihre CloudFront-Verteilungen können so konfiguriert werden, dass Inhalt von privaten Buckets bereitgestellt wird. In der Regel ist dies vorzuziehen, offen zugängliche Buckets zu haben, in denen Lesevorgänge die von CloudFront angebotenen Steuerelemente umgehen. Ihre Verteilung kann für den Service von einem privaten Bucket aus eingerichtet werden, indem eine Ursprungszugriffsidentität (OAC – origin access control) erstellt wird. Dabei handelt es sich um einen speziellen CloudFront-Benutzer, der über Leseberechtigungen für den privaten Ursprungsbucket verfügt. Sie können die OAC erstellen, wenn Sie Ihre Verteilung erstellen oder sie anschließend über die CloudFront-Konsole oder API hinzufügen. Sehen Sie Erstellen einer neuen Ursprungszugriffssteuerung.
Wiedergabe von Amazon CloudFront
Sobald Sie Ihre Verteilung mit einer OAC eingerichtet haben, um Zugriff auf Ihren privaten Bucket zu erhalten, sollten Ihre Videodateien über die CloudFront-URL zur Verwendung verfügbar sein. Ihre CloudFront-URL ist der Domainname für die Verteilung auf der Registerkarte Einzelheiten in der AWS-CloudFront-Konsole. Sie ist in etwa wie folgt:
a1b23cdef4ghij.cloudfront.net.
Um Ihr aufgezeichnetes Video über Ihre Verteilung zu streamen, suchen Sie den Objektschlüssel für Ihre master.m3u8
-Datei. Sie ist in etwa wie folgt:
ivs/v1/012345678912/a0bCDeFGH1IjK/2021/4/20/12/03/aBcdEFghIjkL/media/hls/master.m3u8
Hängen Sie den Objektschlüssel an das Ende Ihrer CloudFront-URL an. Ihre endgültige URL sieht etwa folgendermaßen aus:
https://a1b23cdef4ghij.cloudfront.net/ivs/v1/012345678912/a0bCDeFGH1IjK/2021/4/20/12/03/aBcdEFghIjkL/media/hls/master.m3u8
Um die Wiedergabe über einen Webbrowser abzuspielen, stellen Sie sicher, dass Sie CORS sowohl in CloudFront als auch im S3-Bucket konfigurieren. Befolgen Sie für die CloudFront-Konfiguration die Anweisungen unter Erstellen von Richtlinien für Ursprungsanfragen, um eine Richtlinie für CORS-S3-Ursprungsanfragen und eine SimpleCORS-Antwort-Header-Richtlinie an die CloudFront-Verteilung anzuhängen. Sehen Sie sich die Beispielseite der Konfigurationskonsole unten an:
Zur Konfiguration von S3 CORS siehe CORS-Konfiguration, um geeignete Regeln für Ihren S3-Bucket zu erstellen.
Jetzt können Sie Ihr aufgezeichnetes Video wiedergeben, als ob Sie direkt aus einem Bucket abspielen würden.
Weitere Informationen finden Sie unter Beschränken des Zugriffs auf einen Amazon-S3-Ursprung.