

# Ingesta de transmisiones de IVS \$1 Transmisión en tiempo real
<a name="rt-stream-ingest"></a>

Como alternativa al uso del SDK de transmisión de IVS, puede publicar un video en una fase de IVS desde un origen WHIP o RTMP. Este enfoque ofrece flexibilidad para los flujos de trabajo en los que no es factible o preferible utilizar el SDK, como cuando se publica video desde OBS Studio o un codificador de hardware. Siempre que sea posible, recomendamos utilizar el SDK de transmisión de IVS, ya que no podemos garantizar el rendimiento ni la compatibilidad de las soluciones de terceros con IVS.

En este diagrama se ilustra cómo funciona la publicación con WHIP y RTMP:

![\[Publicación con WHIP y RTMP.\]](http://docs.aws.amazon.com/es_es/ivs/latest/RealTimeUserGuide/images/Stream_Ingest.png)


## Protocolos admitidos
<a name="supported-protocols"></a>

Transmisión en tiempo real de IVS es compatible con varios protocolos de ingesta:
+ RTMP y RTMPS: RTMP (protocolo de mensajes en tiempo real) es el estándar de la industria para la transmisión de video a través de una red. RTMPS es la versión segura de RTMP que funciona mediante TLS.

  IVS es compatible con la funcionalidad de video multipista de E-RTMP (RTMP mejorado). Consulte la sección [Video multipista con E-RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html#rtmp-multitrack) en la documentación de publicación RTMP de IVS.
+ WHIP (protocolo de ingesta WebRTC-HTTP): un borrador de IETF desarrollado para estandarizar la ingesta de WebRTC.

 Para obtener una guía detallada sobre el uso de estos protocolos, consulte nuestra documentación sobre [RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html) y [WHIP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/obs-whip-support.html).

## Especificaciones de contenido multimedia compatible
<a name="supported-media-specifications"></a>
+ Formato de entrada de audio
  + Códec: AAC-LC para RTMP y Opus para WHIP
  + Canales: 2 (estéreo) o 1 (mono)
  + Frecuencia de muestreo: 44,1 kHz o 48 kHz
  + Velocidad de bits máxima: 160 Kbps
+ Formato de entrada de video
  + Códec: H.264
  + Perfil H.264: línea de base
  + Intervalo de IDR: 1 o 2 segundos
  + Velocidad de fotogramas: de 10 a 60 FPS
  + Fotogramas B: 0

    Nota: El SDK de transmisión de IVS tiene los fotogramas B activados de forma predeterminada, pero a partir de la versión 1.25.0, los desactiva automáticamente cuando se transmite a una fase de IVS. Para la transmisión en tiempo real con otros codificadores RTMP, los desarrolladores deben desactivar los fotogramas B. *Si los desarrolladores utilizan otros codificadores RTMP y no desactivan los fotogramas B, sus transmisiones se desconectarán*.
  + Resolución máxima: 720p Mínimo: 160p
  + Velocidad de bits máxima: 8,5 Mbps

    Nota: Para las transmisiones RTMP de una sola pista, este límite se aplica a esa pista. Para videos multipista publicados mediante RTMP mejorado, el límite se aplica a la tasa de bits combinada de todas las pistas de video.
  + Configuración del codificador: recomendamos usar un codificador H.264 con los ajustes `veryfast` y `zerolatency`. Además, la opción `sliced_threads` de x264 está incluida en los ajustes preestablecidos de `zerolatency` y le recomendamos que la deshabilite. Por ejemplo, cuando utilice FFmpeg, su comando debería incluir: `-preset:v veryfast -tune zerolatency -x264-params sliced-threads=0`

# 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*. 

# Publicación WHIP de IVS \$1 Transmisión en tiempo real
<a name="obs-whip-support"></a>

En este documento se explica cómo utilizar codificadores compatibles con WHIP, como OBS, para publicar transmisiones en tiempo real de IVS. [WHIP](https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html) (protocolo de ingesta WebRTC-HTTP) es un borrador de IETF desarrollado para estandarizar la ingesta de WebRTC.

WHIP habilita la compatibilidad con software como OBS y ofrece una alternativa (al SDK de transmisión de IVS) para la autoedición. Es posible que los streamers más sofisticados estén familiarizados con OBS y lo prefieran por sus características de producción avanzadas, como las transiciones de escenas, la mezcla de audio y la superposición de gráficos. Ofrece a los desarrolladores una opción versátil: usar el SDK de transmisión para web de IVS para publicar directamente en el navegador o permitir que los streamers usen OBS en su escritorio para obtener herramientas más potentes.

WHIP también resulta útil en situaciones en las que utilizar el SDK de transmisión de IVS no es viable o no es la opción preferida. Por ejemplo, en configuraciones que incluyen codificadores de hardware, el SDK de transmisión de IVS podría no ser una opción. Sin embargo, si el codificador es compatible con WHIP, puede seguir publicando directamente desde el codificador en IVS.

**Requisitos de WHIP:**
+ Su oferta de SDP debe incluir una pista de video H.264, incluso si solo publica audio. Si la oferta no incluye una pista de vídeo, se rechazará la conexión.
+ El punto de conexión global de WHIP (https://global.whip.live-video.net) devuelve una redirección temporal 307. Los clientes de WHIP deben gestionar correctamente las redirecciones 307 y conservar los encabezados en la solicitud redirigida, según lo exige la especificación de WHIP.

## Guía para OBS
<a name="whip-support-obs-guide"></a>

OBS es compatible con WHIP a partir de la versión 30. Para empezar, descargue la versión 30 o posterior de OBS: [https://obsproject.com/](https://obsproject.com/).

Para publicar en una fase de IVS con OBS mediante WHIP, siga estos pasos:

1. [Genere](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) un token de participante con capacidad de publicación. En términos de WHIP, un token de participante es un token de portador. De forma predeterminada, los tokens de participantes vencen en 12 horas, pero puede ampliar su duración hasta 14 días.

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

1. En **Servidor**, ingrese https://global.whip.live-video.net.

1. En **Token de portador**, ingrese el token de participante que generó en el paso 1.

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. Pulse **Iniciar transmisión**.

**Nota**: Somos conscientes de los problemas de calidad (como la congelación intermitente del video) que pueden producirse con WHIP en OBS. Suelen surgir cuando la red del difusor es inestable. Recomendamos probar WHIP en OBS antes de usarlo para transmisiones en vivo de producción. Reducir la velocidad de bits de la transmisión también puede ayudar a reducir la aparición de estos problemas.