

# IVS-Streamerfassung \$1 Echtzeit-Streaming
<a name="rt-stream-ingest"></a>

Als Alternative zur Verwendung des IVS-Broadcast-SDK können Sie Videos aus einer WHIP- oder RTMP-Quelle auf einer IVS-Bühne veröffentlichen. Dieser Ansatz bietet Flexibilität für Workflows, bei denen die Verwendung des SDK nicht möglich oder nicht erwünscht ist, z. B. bei der Veröffentlichung von Videos aus OBS Studio oder einem Hardware-Encoder. Wir empfehlen, wann immer möglich, die Verwendung des IVS-Broadcast-SDK, da wir die Leistung oder Kompatibilität von Drittanbieterlösungen mit IVS nicht garantieren können.

Dieses Diagramm zeigt, wie das Veröffentlichen mit WHIP und RTMP funktioniert:

![\[Veröffentlichen mit WHIP und RTMP\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/Stream_Ingest.png)


## Unterstützte Protokolle
<a name="supported-protocols"></a>

IVS-Echtzeit-Streaming unterstützt mehrere Erfassungsprotokolle:
+ RTMP und RTMPS – RTMP (Real-Time Messaging Protocol) ist der Branchenstandard für die Übertragung von Videos über ein Netzwerk. Bei RTMPS handelt es sich um die sichere Version von RTMP, die über TLS ausgeführt wird.

  IVS unterstützt die Multitrack-Video-Funktion von E-RTMP (Enhanced RTMP). Weitere Informationen finden Sie im Abschnitt [E-RTMP-Multitrack-Videos](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html#rtmp-multitrack) in der Dokumentation zur IVS-RTMP-Veröffentlichung.
+ WHIP (WebRTC-HTTP Ingestion Protocol) – ein IETF-Entwurf, der zur Standardisierung der WebRTC-Erfassung entwickelt wurde

 Eine ausführliche Anleitung zur Verwendung dieser Protokolle finden Sie in unserer [RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html)- und [WHIP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/obs-whip-support.html)-Dokumentation.

## Unterstützte Medienspezifikationen
<a name="supported-media-specifications"></a>
+ Audioeingabeformat
  + Codec: AAC-LC für RTMP und Opus für WHIP
  + Kanäle: 2 (Stereo) oder 1 (Mono)
  + Abtastrate: 44,1 kHz oder 48 kHz
  + Maximale Bitrate: 160 kbit/s
+ Videoeingabeformat
  + Codec: H.264
  + H.264-Profil: Baseline
  + IDR-Intervall: 1 oder 2 Sekunden
  + Bildrate: 10 bis 60 FPS
  + B-Frames: 0

    Hinweis: Im IVS-Broadcast-SDK sind B-Frames standardmäßig aktiviert, doch ab Version 1.25.0 werden B-Frames bei der Übertragung zu einer IVS-Bühne automatisch deaktiviert. Für das Echtzeit-Streaming mit anderen RTMP-Encodern müssen Entwickler B-Frames deaktivieren. *Wenn Entwickler, die andere RTMP-Encoder nutzen, B-Frames nicht deaktivieren, werden ihre Streams getrennt*.
  + Auflösung: Maximum: 720p. Minimum: 160p
  + Maximale Bitrate: 8,5 Mbit/s

    Hinweis: Bei Einzeltrack-RTMP-Streams gilt dieses Limit für den betreffenden Track. Bei Multitrack-Videos, die mit Enhanced RTMP veröffentlicht werden, gilt das Limit für die kombinierte Bitrate aller Videotracks.
  + Encoder-Konfiguration: Wir empfehlen die Verwendung der Einstellungen `veryfast` und `zerolatency` für einen H.264-Encoder. Außerdem: Die Option `sliced_threads` x264 ist in den `zerolatency`-Voreinstellungen enthalten, und wir empfehlen, sie zu deaktivieren. Wenn Sie beispielsweise FFmpeg verwenden, sollte Ihr Befehl Folgendes beinhalten: `-preset:v veryfast -tune zerolatency -x264-params sliced-threads=0`

# IVS-RTMP-Veröffentlichung \$1 Streaming
<a name="rt-rtmp-publishing"></a>

In diesem Dokument wird der Prozess der Veröffentlichung für eine IVS-Stage mithilfe von RTMP beschrieben. Weitere Informationen zu den verschiedenen Aufzeichnungsoptionen finden Sie in der Dokumentation zu [Streamerfassung](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html).

## Voraussetzungen
<a name="rtmp-prerequisites"></a>

### Erstellen einer Stage
<a name="rtmp-create-stage"></a>

Verwenden Sie den folgenden Befehl, um eine Stage zu erstellen:

`aws ivs-realtime create-stage --name "test-stage"`

Einzelheiten, einschließlich der Antwort, finden Sie unter [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html).

**Wichtig:** Achten Sie in der Antwort auf das Feld `endpoints`, in dem sowohl RTMP- als auch RTMPS-Endpunkte aufgeführt sind. Diese sind für die Einrichtung Ihres RTMP-Encoders erforderlich.

### Erfassungskonfiguration erstellen
<a name="rtmp-create-an-ingest-configuration"></a>

Für die Veröffentlichung in einer Stage mithilfe von RTMP müssen Sie zunächst eine Erfassungskonfiguration erstellen und diese Ihrer Stage zuordnen. Wenn Sie auf der Stage veröffentlichen (mithilfe des Stream-Schlüssels aus der Aufzeichnungskonfiguration und des RTMP-Endpunkts der Stage), werden die Medien als Teilnehmer auf der Stage veröffentlicht. Sie haben die Möglichkeit, eine `userId` und benutzerdefinierte `attributes` anzugeben, die mit dem [Teilnehmer](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html) verknüpft werden, der sich mit der Stage verbindet.

```
aws ivs-realtime create-ingest-configuration \
  --name 'test' \
  --stage-arn arn:aws:ivs:us-east-1:123456789012:stage/8faHz1SQp0ik \
  --user-id '123' \
  --ingest-protocol 'RTMPS'
```

Einzelheiten, einschließlich der Antwort, finden Sie unter [CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html).

Wenn Sie eine Erfassungskonfiguration erstellen, können Sie diese im Voraus einem bestimmten Stage-ARN zuordnen. Ohne diese Zuordnung ist der Stream-Schlüssel unbrauchbar. Außerdem können Erfassungskonfigurationen (einschließlich des Felds `stageArn`) über den Vorgang [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html) aktualisiert werden, sodass Sie dieselbe Konfiguration für verschiedene Stages wiederverwenden können.

**Hinweis:** Das Erfassungskonfigurationsfeld `insecureIngest` ist standardmäßig auf `false` festgelegt, was die Verwendung von RTMPS erfordert. RTMP-Verbindungen werden abgelehnt. Wenn Sie RTMP verwenden müssen, legen Sie `insecureIngest` auf `true` fest. Außer für bestimmte und verifizierte Anwendungsfälle, für die RTMP zwingend erforderlich ist, empfiehlt sich die Nutzung von RTMPS.

## RTMP-Einzeltrack-Videos
<a name="rtmp-singletrack"></a>

Nachfolgend wird die Verwendungsweise von OBS Studio beschrieben. Sie können jedoch jeden RTMP-Encoder verwenden, der den [Medienspezifikationen](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) von IVS entspricht.

### OBS-Leitfaden
<a name="rtmp-singletrack-obs"></a>

1. Laden Sie die Software herunter und installieren Sie sie: [https://obsproject.com/download](https://obsproject.com/download).

1. Klicken Sie auf **Settings (Einstellungen)**. Wählen Sie im Bereich **Stream** der **Einstellungen** in der Dropdownliste **Service** die Option **Benutzerdefiniert** aus.

1. Geben Sie für den **Server** den RTMP- oder RTMPS-Endpunkt der Stage ein.

1. Geben Sie für den **Stream-Schlüssel** den `streamKey` aus der Erfassungskonfiguration ein.

1. Konfigurieren Sie Ihre Videoeinstellungen wie gewohnt, mit einigen Einschränkungen:

   1. IVS-Echtzeit-Streaming unterstützt Eingaben bis zu 720p bei 8,5 Mbit/s. Wenn Sie einen dieser Grenzwerte überschreiten, wird Ihr Stream getrennt.

   1. Wir empfehlen, das **Keyframe-Intervall** im Bereich **Ausgabe** auf 1 oder 2 Sek. einzustellen. Ein niedriges Keyframe-Intervall ermöglicht es Zuschauern, die Videowiedergabe schneller zu starten. Wir empfehlen außerdem, die **Voreinstellung für die CPU-Auslastung** auf **veryfast** und die Einstellung **Optimieren** auf Latenz **zerolatency** einzustellen, um die niedrigste Latenz zu erzielen.

   1. Da OBS Simulcast nicht unterstützt, empfehlen wir, die Bitrate unter 2,5 Mbit/s zu halten. Dadurch können Zuschauer mit Verbindungen mit geringerer Bandbreite zuschauen.

   1. Deaktivieren Sie B-Frames, da Streams mit B-Frames automatisch getrennt werden. Führen Sie eine der folgenden Aktionen aus:
      + Geben Sie in den x264-Optionen ein `bframes=0 sliced-threads=0`.
      + Legen Sie B-Frames auf 0 fest, wenn dies eine Option ist (z. B. für NVENC).

   Beachten Sie: RTMP-Streams müssen sowohl Audio- als auch Videospuren enthalten, da sie sonst getrennt werden.

1. Wählen Sie **Streaming starten** aus.

**Wichtig:** Wenn die maximale Bitrate Ihres Encoders auf 8,5 Mbit/s festgelegt ist, verschwindet der Publisher gelegentlich aus der Sitzung. Das liegt daran, dass es sich bei der Einstellung für die maximale Bitrate nur um ein Ziel handelt und Encoder das Ziel gelegentlich überschreiten. Um dies zu verhindern, stellen Sie die maximale Bitrate Ihres Encoders niedriger ein, z. B. auf 6 Mbit/s.

## E-RTMP-Multitrack-Videos
<a name="rtmp-multitrack"></a>

IVS unterstützt die Multitrack-Video-Funktion von E-RTMP (Enhanced Real-Time Messaging Protocol), womit Sie Videos unterschiedlicher Qualität in einem einzigen RTMP-Stream auf der IVS-Stage veröffentlichen können. Dies ermöglicht das Streaming mit adaptiver Bitrate, sodass Abonnenten Videos automatisch in der für ihre jeweilige Netzwerkverbindung besten Qualität ansehen können.

Nach der Erfassung werden die Videos mit unterschiedlicher Qualität den Abonnenten als Simulcast-Layer zur Verfügung gestellt. Informationen zum Konfigurieren der Schichten, die von den Abonnenten empfangen werden, finden Sie in den Abschnitten unter „Mehrschichtige Kodierung mit Simulcast“ in den Broadcast-SDK-Anleitungen zum Echtzeit-Streaming: [Android](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html), [iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html) und [Web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html).

Beispielcode finden Sie auf GitHub unter [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/aws-samples/sample-amazon-ivs-multitrack-video).

Das folgende Diagramm zeigt, wie das Veröffentlichen mit Multitrack-Videos funktioniert:

![\[Veröffentlichen von Multitrack-Videos auf einer Stage.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


### OBS-Leitfaden
<a name="rtmp-multitrack-obs"></a>

1. Laden Sie OBS Studio herunter und installieren Sie es:

   1. Windows: Multitrack-Videos werden ab OBS Studio 30.2 unterstützt.

   1. MacOS: Multitrack-Videos werden ab OBS Studio 31.1 Beta unterstützt (nur Apple Silicon).

   1. Das Programm kann unter folgender Adresse heruntergeladen werden: [https://obsproject.com/download](https://obsproject.com/download).

1. Klicken Sie auf **Settings (Einstellungen)**. Wählen Sie im Bereich **Stream** der **Einstellungen** in der Dropdown-Liste **Service** die Option **Amazon IVS** aus.

1. Belassen Sie die Einstellung für den **Server** auf **Auto**.

1. Geben Sie für den **Stream-Schlüssel** den `streamKey` aus der Erfassungskonfiguration ein.

1. Aktivieren Sie im Abschnitt **Multitrack-Video** die Option **Multitrack-Video aktivieren**.

1. Stellen Sie im Bereich **Video** die gewünschte **Grundauflösung (Canvas-Auflösung)** und die gewünschte **(skalierte) Ausgabeauflösung** ein. IVS-Echtzeit-Streaming unterstützt Inputs von bis zu 720p. Bei Überschreiten dieses Limits wird der Stream getrennt.

   Wenn Multitrack-Videos aktiviert sind, werden die Einstellungen wie die Anzahl der Videotracks, die Bitraten und das Keyframe-Intervall automatisch entsprechend den Leistungsmerkmalen des Geräts konfiguriert.

1. Wählen Sie **Streamen starten** aus.

### Veröffentlichen mit FFmpeg
<a name="rtmp-multitrack-ffmpeg"></a>

Sie können FFmpeg verwenden, um Live-Video und Audio als IVS-Echtzeit-Streaming über RTMP zu veröffentlichen. FFmpeg ist ein kostenloses Open-Source-Projekt, das eine umfangreiche Suite von Software-Bibliotheken für den Umgang mit Video-, Audio- und anderen Multimedia-Dateien und Streams umfasst.

Der folgende Beispielbefehl veröffentlicht einen Stream, der ein Farbmuster und einen Ton enthält:

```
ffmpeg \
 -re \
 -f lavfi -i testsrc=d=300:s=1280x720:r=60,format=yuv420p \
 -f lavfi -i sine=f=440:b=4:d=300 \
 -c:v libx264 \
 -b:v 2500k \
 -g 60 -bf 0 \
 -profile:v baseline \
 -preset veryfast \
 -tune zerolatency \
 -x264opts sliced-threads=0 \
 -c:a aac \
 -ac 2 \
 -b:a 160k \
 -ar 48000 \
 -f flv \
 rtmps://$INGEST_ENDPOINT/app/$STREAM_KEY
```

Ersetzen Sie in diesem Beispiel `$INGEST_ENDPOINT` und `$STREAM_KEY` durch Ihre eigenen Werte aus der IVS-Konsole oder API.

Diese Konfiguration erfüllt die [unterstützten Medienspezifikationen](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) für IVS-Echtzeit-Streaming, einschließlich H.264-Video (Basisprofil, keine B-Frames, keine geschnittenen Threads) und AAC-Audio.

## Private Erfassung für Stage
<a name="private-ingest-stages"></a>

Mithilfe eines Schnittstellen-VPC-Endpunkts können Sie aus Ressourcen in Ihrer Amazon-VPC oder in Direct Connect RTMP(S)- und E-RTMP(S)-Streams auf einer Stage veröffentlichen. Das ermöglicht eine private Verbindung zwischen der VPC und IVS, sodass Erfassungsverkehr im AWS-Netzwerk verbleibt. Informationen zum Einrichten und Konfigurieren eines Schnittstellen-VPC-Endpunkts für IVS finden Sie unter [Private Erfassung in IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html) im *Benutzerhandbuch für IVS-Streaming mit niedriger Latenz*. 

# IVS-WHIP-Veröffentlichung \$1 Streaming
<a name="obs-whip-support"></a>

In diesem Dokument wird erklärt, wie Sie WHIP-kompatible Encoder wie OBS verwenden, um in IVS-Echtzeit-Streaming zu veröffentlichen. [WHIP](https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html) (WebRTC-HTTP Ingestion Protocol) ist ein IETF-Entwurf, der zur Standardisierung der WebRTC-Erfassung entwickelt wurde.

WHIP ermöglicht die Kompatibilität mit Software wie OBS und bietet eine Alternative (zum IVS-Broadcast-SDK) für Desktop-Publishing. Erfahrenere Streamer, die mit OBS vertraut sind, bevorzugen es möglicherweise aufgrund seiner erweiterten Produktionsfeatures wie Szenenübergänge, Audiomischung und Overlay-Grafiken. Dies bietet Entwicklern eine vielseitige Option: Verwenden Sie das Web-Broadcast-SDK von IVS für die direkte Veröffentlichung im Browser oder ermöglichen Sie Streamern, OBS auf ihrem Desktop zu verwenden, um leistungsstärkere Tools zu erhalten.

WHIP ist auch von Vorteil, wenn die Verwendung des IVS-Broadcast-SDK nicht möglich oder nicht erwünscht ist. Beispielsweise ist das IVS-Broadcast-SDK in Setups mit Hardware-Encodern möglicherweise keine Option. Wenn der Encoder jedoch WHIP unterstützt, können Sie trotzdem direkt vom Encoder in IVS veröffentlichen.

**WHIP-Anforderungen:**
+ Ihr SDP-Angebot muss eine H.264-Videospur enthalten, selbst wenn Sie nur Ton veröffentlichen. Enthält das Angebot keine Videospur, wird die Verbindung abgelehnt.
+ Der globale WHIP-Endpunkt (https://global.whip.live-video.net) gibt eine temporäre Umleitung (307) zurück. WHIP-Clients müssen 307-Umleitungen korrekt verarbeiten und Header in der umgeleiteten Anfrage persistieren, wie es die WHIP-Spezifikation verlangt.

## OBS-Leitfaden
<a name="whip-support-obs-guide"></a>

OBS unterstützt WHIP ab Version 30. Laden Sie zunächst OBS v30 oder neuer herunter: [https://obsproject.com/](https://obsproject.com/).

Gehen Sie wie folgt vor, um mithilfe von OBS über WHIP für eine IVS-Bühne zu veröffentlichen:

1. [Generieren](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) Sie ein Teilnehmer-Token mit Veröffentlichungsfunktion. Bei WHIP ist ein Teilnehmer-Token ein Bearer-Token. Standardmäßig laufen Teilnehmer-Token nach 12 Stunden ab, Sie können die Dauer jedoch auf bis zu 14 Tage verlängern.

1. Klicken Sie auf **Settings (Einstellungen)**. Wählen Sie im Bereich **Stream** der **Einstellungen** in der Dropdownliste **Service** die Option **WHIP** aus.

1. Geben Sie für den **Server** „https://global.whip.live-video.net“ ein.

1. Geben Sie für das **Bearer-Token** das Teilnehmer-Token ein, das Sie in Schritt 1 generiert haben.

1. Konfigurieren Sie Ihre Videoeinstellungen wie gewohnt, mit einigen Einschränkungen:

   1. IVS-Echtzeit-Streaming unterstützt Eingaben bis zu 720p bei 8,5 Mbit/s. Wenn Sie einen dieser Grenzwerte überschreiten, wird Ihr Stream getrennt.

   1. Wir empfehlen, das **Keyframe-Intervall** im Bereich **Ausgabe** auf 1 oder 2 Sek. einzustellen. Ein niedriges Keyframe-Intervall ermöglicht es Zuschauern, die Videowiedergabe schneller zu starten. Wir empfehlen außerdem, die **Voreinstellung für die CPU-Auslastung** auf **veryfast** und die Einstellung **Optimieren** auf Latenz **zerolatency** einzustellen, um die niedrigste Latenz zu erzielen.

   1. Da OBS Simulcast nicht unterstützt, empfehlen wir, die Bitrate unter 2,5 Mbit/s zu halten. Dadurch können Zuschauer mit Verbindungen mit geringerer Bandbreite zuschauen.

1. Drücken Sie auf **Streaming starten**.

**Hinweis**: Wir sind uns der Qualitätsprobleme (wie zeitweiliges Einfrieren von Videos) bewusst, die bei WHIP in OBS auftreten können. Diese treten typischerweise auf, wenn das Netzwerk des Broadcasters instabil ist. Wir empfehlen, WHIP in OBS zu testen, bevor Sie es für Produktions-Livestreams verwenden. Eine Senkung der Broadcast-Bitrate kann auch dazu beitragen, das Auftreten dieser Probleme zu verringern.