

# Publicación RTMP de IVS \$1 Transmisión en tiempo real
<a name="rt-rtmp-publishing"></a>

En este documento se describe el proceso de publicación en una fase de IVS mediante RTMP. Para obtener información adicional sobre las distintas opciones de ingesta, consulte la documentación [Ingesta de transmisiones](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)

## Requisitos previos
<a name="rtmp-prerequisites"></a>

### Creación de un escenario
<a name="rtmp-create-stage"></a>

Utilice el siguiente comando para crear una fase:

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

Consulte [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) para obtener más información, incluida la respuesta.

**Importante:** En la respuesta, tenga en cuenta el campo `endpoints`, en el que se indican los puntos de conexión de RTMP y RTMPS. Son necesarios para configurar el codificador RTMP.

### Creación de una configuración de ingesta
<a name="rtmp-create-an-ingest-configuration"></a>

Para publicar en una fase mediante RTMPS, primero debe crear una configuración de ingesta y asociarla a la fase. Al publicar en la fase (con la clave de transmisión de la configuración de ingesta y el punto de conexión de RTMP de la fase), el contenido multimedia se publicará en la fase como participante. Tiene la opción de especificar un valor de `userId` y valores de `attributes` personalizados, que se asociarán al [participante](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html) que se conecte a la fase.

```
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'
```

Consulte [CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html) para obtener más información, incluida la respuesta.

Al crear una configuración de ingesta, puede asociarla con el ARN de una fase específica por adelantado. Sin esta asociación, la clave de transmisión no se puede utilizar. Además, las configuraciones de ingesta (incluido el campo `stageArn`) se pueden actualizar mediante la operación [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html), lo que permite reutilizar la misma configuración para diferentes fases.

**Nota:** El campo `insecureIngest` de la configuración de ingesta tiene el valor predeterminado `false`, lo que requiere el uso de RTMPS. Se rechazarán las conexiones de RTMP. Si debe usar RTMP, establezca el valor de `insecureIngest` en `true`. Recomendamos usar RTMPS, a menos que tenga casos de uso específicos y verificados que requieran RTMP.

## Video de una sola pista con RTMP
<a name="rtmp-singletrack"></a>

A continuación se describe cómo usar OBS Studio; sin embargo, puede utilizar cualquier codificador de RTMP que cumpla con las [especificaciones de contenido multimedia](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) de IVS.

### Guía para OBS
<a name="rtmp-singletrack-obs"></a>

1. Descargue e instale el software: [https://obsproject.com/download](https://obsproject.com/download).

1. Haga clic en **Settings** (Configuración). En la sección **Transmisión** del panel **Configuración**, seleccione **Personalizado** en el menú desplegable **Servicio**.

1. En **Servidor**, ingrese el punto de conexión de RTMP o RTMPS de la fase.

1. En **Clave de transmisión**, ingrese el valor de `streamKey` de la configuración de ingesta.

1. Configure los ajustes de video como lo haría normalmente, con algunas restricciones:

   1. Transmisión en tiempo real de IVS admite entradas de hasta 720p a 8,5 Mbps. Si supera cualquiera de estos límites, se desconectará su transmisión.

   1. Le recomendamos configurar **Intervalo de fotogramas clave** en el panel **Salida** en 1 o 2 segundos. Un intervalo de fotogramas clave bajo permite a los espectadores iniciar la reproducción del video con mayor rapidez. También recomendamos configurar **Ajuste preestablecido de uso de la CPU** en **muy rápido** y **Ajuste** en **latencia cero** para habilitar la latencia más baja.

   1. Como OBS no admite la transmisión simultánea, recomendamos mantener la velocidad de bits por debajo de 2,5 Mbps. Esto permite que los espectadores con conexiones de menor ancho de banda puedan ver los videos.

   1. Deshabilite los fotogramas B, ya que las transmisiones con fotogramas B se desconectarán automáticamente. Realice una de las siguientes acciones:
      + En las opciones de x264, ingrese `bframes=0 sliced-threads=0`.
      + Establezca los fotogramas B en 0 si es una opción (por ejemplo, para NVENC).

   Nota: Las transmisiones RTMP deben incluir pistas de audio y video o se desconectarán.

1. Seleccione **Iniciar transmisión**.

**Importante:** Si la velocidad de bits máxima del codificador está establecida en 8,5 Mbps, el publicador desaparece ocasionalmente de la sesión. Esto se debe a que la configuración de velocidad de bits máxima es solo un objetivo y, en ocasiones, los codificadores lo sobrepasan. Para evitarlo, reduzca la velocidad de bits máxima del codificador, por ejemplo, a 6 Mbps.

## Vídeo multipista con E-RTMP
<a name="rtmp-multitrack"></a>

IVS admite la funcionalidad de vídeo multipista de E-RTMP (Protocolo de mensajería en tiempo real mejorado), lo que le permite publicar varias calidades de vídeo en una sola transmisión RTMP en su etapa IVS. Esto permite la transmisión con tasa de bits adaptativa, lo que permite a los suscriptores verlo con la mejor calidad posible según su conexión de red.

Una vez ingerido, el contenido en diferentes calidades de video se entrega a los suscriptores como capas de transmisión simultánea. Para configurar qué capas reciben los suscriptores, consulte las secciones «Codificación por capas con transmisión simultánea» en las guías del SDK de transmisión en tiempo real para [Android](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html), [iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html) y [web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html).

Para ver un ejemplo de código, consulte [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/aws-samples/sample-amazon-ivs-multitrack-video) en GitHub.

Este diagrama ilustra cómo funciona la publicación con vídeo multipista:

![\[Publicación de video multipista en una etapa».\]](http://docs.aws.amazon.com/es_es/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


### Guía para OBS
<a name="rtmp-multitrack-obs"></a>

1. Descargue e instale OBS Studio:

   1. Windows: el vídeo multipista es compatible a partir de OBS Studio 30.2.

   1. macOS: el video multipista es compatible a partir de OBS Studio 31.1 Beta (solo para Apple Silicon).

   1. Descárguelo en: [https://obsproject.com/download](https://obsproject.com/download).

1. Haga clic en **Settings** (Configuración). En la sección **Transmisión** del panel **Configuración**, seleccione **Amazon IVS** en el menú desplegable **Servicio**.

1. En **Servidor**, deje la configuración en **Automático**.

1. En **Clave de transmisión**, ingrese el valor de `streamKey` de la configuración de ingesta.

1. En la sección **Vídeo multipista**, marque **Activar vídeo multipista**.

1. En el panel **Vídeo**, defina la **Base (resolución de lienzo)** y la **Resolución de salida (escalada)** según lo deseado. La transmisión en tiempo real de IVS admite una entrada de hasta 720p. Si supera este límite, su transmisión se desconectará.

   Cuando el vídeo multipista está activado, los ajustes como el número de pistas de vídeo, sus tasas de bits y el intervalo de fotogramas clave se configuran automáticamente en función de las capacidades del dispositivo.

1. Seleccione **Iniciar transmisión**.

### Publicación con FFmpeg.
<a name="rtmp-multitrack-ffmpeg"></a>

Puede utilizar FFmpeg para publicar video y audio en directo en la transmisión en tiempo real de IVS a través de RTMP. FFmpeg es un proyecto gratuito de código abierto que comprende un amplio conjunto de bibliotecas de software y herramientas para procesar video, audio y otro tipo de contenidos multimedia.

El siguiente comando de ejemplo publica una transmisión que incluye un patrón de color y un tono:

```
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
```

En el ejemplo, sustituya `$INGEST_ENDPOINT` y `$STREAM_KEY` por sus propios valores de la consola o la API de IVS.

Esta configuración cumple con las [especificaciones multimedia compatibles](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) para la transmisión en tiempo real de IVS, incluido H.264 (perfil de referencia, sin fotogramas B ni subprocesos divididos) para video y audio AAC.

## Ingesta privada en escenarios
<a name="private-ingest-stages"></a>

Puede publicar transmisiones RTMP(S) y E-RTMP(S) en un escenario desde los recursos de su Amazon VPC o desde Direct Connect, mediante un punto de conexión de VPC de interfaz. Esto permite una conexión privada entre su VPC y IVS, de manera que se mantiene el tráfico de ingesta dentro de la red de AWS. Para instalar y configurar un punto de conexión de VPC de interfaz para IVS, consulte [Ingesta privada de IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html) en la *Guía del usuario de transmisión de baja latencia de IVS*. 