

# Paso 5: configurar el software de streaming
<a name="getting-started-set-up-streaming"></a>

Puede transmitir (baja latencia) a Amazon IVS con:
+ Los [SDK de transmisión nativos de IVS](#broadcast-sdk), que admiten RTMPS. Lo recomendamos, especialmente para escenarios de producción.
+ La [consola de Amazon IVS](#ivs-console): es adecuada para probar transmisiones.
+ Otros codificadores de software y hardware de transmisión: puede usar cualquier codificador de transmisión que sea compatible con los protocolos RTMP, RTMPS o SRT. A continuación se describen varios ejemplos, con Open Broadcast Software (OBS) y FFmpeg con RTMPS y SRT. RTMPS permite una alta seguridad mediante el uso de una transmisión cifrada mediante TLS.

Los ajustes del codificador de claves son el intervalo de fotogramas clave (2 segundos) y la resolución/velocidad de bits/velocidad de fotogramas (que están interrelacionados). Para obtener más detalles sobre la configuración del codificador, consulte: 
+ [Configuración de streaming](streaming-config.md) en la *Guía del usuario de Amazon IVS*. 
+ Publicación de blog: [Setting Up for Streaming with Amazon Interactive Video Service](https://aws.amazon.com/blogs/media/setting-up-for-streaming-with-amazon-ivs/)

**Notas:** 
+ La duración máxima de las transmisiones de Amazon IVS es de 48 horas. Después de eso, la transmisión finaliza y la sesión de streaming se desconecta. Una reconexión correcta (automática o manual) inicia una nueva transmisión.
+ Si el codificador deja de enviar datos (por ejemplo, debido a un problema temporal de red), Amazon IVS espera 30 segundos. Si no se reciben datos de la emisora durante este tiempo, Amazon IVS se desconecta.

## Streaming con el SDK de transmisión de Amazon IVS
<a name="broadcast-sdk"></a>

Para transmitir desde sus aplicaciones de iOS o Android, puede utilizar el SDK de transmisión de Amazon IVS. Este SDK está diseñado a fin de aprovechar la arquitectura de Amazon IVS y verá mejoras continuas y nuevas características, junto con Amazon IVS. Como SDK de transmisión nativo móvil, está diseñado para minimizar el impacto en el rendimiento de la aplicación y en los dispositivos con los que los usuarios acceden a la aplicación.


| Para transmitir desde... | Puede usar… | Notas | 
| --- | --- | --- | 
| Sus aplicaciones de Android o iOS | SDK de transmisión de Amazon IVS Android o iOS | Como SDK de transmisión nativo móvil, está diseñado para minimizar el impacto en el rendimiento de la aplicación y en los dispositivos con los que los usuarios acceden a la aplicación. | 
| Un entorno web | SDK de transmisión web de Amazon IVS | Como SDK de transmisión web, el SDK de transmisión web de Amazon IVS le permite transmitir desde entornos web mediante WebRTC. Cuenta con compatibilidad entre varios navegadores y varias plataformas. | 

Para obtener más información, consulte [SDK de transmisión de IVS \| Transmisión de baja latencia](broadcast.md).

## Transmisión con la consola de Amazon IVS
<a name="ivs-console"></a>

1. Abra la [consola de Amazon IVS](https://console.aws.amazon.com/ivs).

   (También puede obtener acceso a la consola de Amazon IVS mediante la [consola de administración de AWS](https://console.aws.amazon.com/)).

1. En el panel de navegación, seleccione **Canales**. (Si el panel de navegación está contraído, amplíelo seleccionando el icono de la hamburguesa).

1. Elija el canal en el que desee emitir para ir a la página de detalles.

1. Seleccione la pestaña **Transmisión**. (Las pestañas están debajo de la sección **Configuración general**).

1. Se le pedirá que conceda a la consola de IVS acceso a su cámara y micrófono; **permita** esos permisos.

1. En la parte inferior de la pestaña **Transmisión**, utilice los cuadros desplegables para seleccionar los dispositivos de entrada para el micrófono y la cámara.

1. Para iniciar el streaming, seleccione **Comenzar a transmitir**.

1. Para ver el streaming en directo, ve a la pestaña **Reproducción**.

   **Nota**: Tras iniciar el streaming, espere un breve retraso (normalmente inferior a 30 segundos) antes de que se pueda ver en la pestaña de reproducción.

Puede usar esta función para transmitir simultáneamente en varios canales.

**Nota**: El streaming desde la consola consume recursos e incurrirá en costos de entrada de video en directo. Para obtener más información, consulte los [costos de entrada de video en directo](https://aws.amazon.com/ivs/pricing/#Low-Latency_Streaming) en la página de precios del IVS.

## Transmisión con OBS Studio mediante RTMPS
<a name="obs-rtmps"></a>

([OBS Studio](https://obsproject.com/)) es una suite de software libre y de código abierto para grabar y realizar streaming en directo. OBS proporciona captura de fuentes y dispositivos en tiempo real, composición de escenas, codificación, grabación y streaming. 

Siga estos pasos para preparar la versión 30.2 o posterior de OBS Studio y empezar a usarlo rápidamente:

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

1. Ejecute el **asistente de configuración automática** de OBS Studio que aparece al cargar OBS Studio por primera vez. Siga los pasos y acepte los valores predeterminados.

1. En **Información de la transmisión**, seleccione **Amazon IVS** en el menú desplegable de **servicios** e ingrese la **Clave de transmisión**.

   Si creó el canal desde la consola de Amazon IVS, la **Clave de transmisión** que ingrese en OBS es la **Clave de transmisión** de la consola: `sk_us-west-2_abcd1234efgh5678ijkl`.

   Si creó el canal desde con AWS CLI, la **Clave de transmisión** que ingrese en OBS es el **valor streamKey** de la respuesta de la CLI: `sk_us-west-2_abcd1234efgh5678ijkl`.

   Si su canal de IVS tiene configurada la entrada de video multipista, seleccione **Habilitar video multipista**. Si lo desea, establezca las configuraciones de **Máximo de pistas de video** y **Mínimo de ancho de banda de transmisión**, que se usan para limitar las configuraciones de transmisión configuradas automáticamente.

1. Para **Resolución de salida de vídeo** y **Velocidad de bits**, consulte [Channel Types](streaming-config.md#streaming-config-settings-channel-types) en *Configuración de streaming de Amazon IVS*. Si alguno de los valores elegidos por el asistente de OBS supera los valores permitidos por Amazon IVS, debe ajustar manualmente los valores para evitar una conexión fallida a Amazon IVS. Una vez finalizado el asistente:

   1. Para ajustar la resolución de video, utilice **Configuración > Video > Resolución de salida (escalada)**.

   1. Para ajustar la velocidad de bits de video, utilice **Configuración > Salida > Transmisión > Velocidad de bits de video**. 

      **Nota:** Esto no afecta a la transmisión en directo si previamente marcó la opción **Habilitar video multipista**.

1. Recomendamos 2 segundos de **Intervalo de fotogramas** para mejorar la estabilidad de la transmisión y evitar el almacenamiento en búfer en la reproducción del visor. Una vez que haya finalizado el asistente, vaya a **Configuración > Salida > Modo de salida**, seleccione **Avanzado**, y en la pestaña **Streaming**, asegúrese de que el **Intervalo de fotogramas** es 2.

   **Nota:** El intervalo de fotogramas clave se configura automáticamente si seleccionó previamente **Habilitar video multipista**.

1. En la ventana principal de OBS Studio, elija **Iniciar streaming**.

Para obtener más información sobre el streaming con OBS Studio, consulte [Inicio rápido de OBS Studio](https://obsproject.com/wiki/OBS-Studio-Quickstart).

Puede modificar la configuración de OBS manualmente más adelante:

1. Seleccione **Settings > Stream (Configuración > Transmisión)**.

1. Seleccione **Amazon IVS** en el menú desplegable.

1. Pegue la **clave de transmisión**.

Puede ejecutar el asistente de nuevo en cualquier momento: elija **Tools > Auto-Configuration Wizard (Herramientas > Asistente de configuración automática)**.

Si lo desea, en **Settings > General (Configuración > General)**, habilite la grabación local para guardar la transmisión en directo para su uso posterior. Como se mencionó anteriormente, los problemas de red entre la difusión y AWS o dentro de AWS podrían provocar alguna pérdida de datos durante la grabación de la transmisión. En estos casos, Amazon IVS prioriza la transmisión en directo sobre la grabación. Grabar localmente a través de su herramienta de streaming proporciona redundancia.

Es aconsejable comprobar si hay actualizaciones de OBS Studio regularmente y actualizar a la versión más reciente. (Por ejemplo, si obtiene el error “Failed to connect to server” (Error al conectarse al servidor), puede que esté usando una versión anterior de OBS Studio que no admite RTMPS).

## Transmisión con OBS Studio mediante SRT
<a name="obs-srt"></a>

Siga estos pasos para comenzar a usar rápidamente el protocolo Secure Reliable Transport:

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

1. Ejecute el **asistente de configuración automática** de OBS Studio que aparece al cargar OBS Studio por primera vez. Siga los pasos y acepte los valores predeterminados.

1. En **Información de transmisión**, elija **Personalizado...** desde el **Servicio** menú desplegable e ingrese el **Servidor (servidor de incorporación)** y **Clave de transmisión**.

   Si creó el canal con la AWS CLI:
   + El **servidor** que ingresa en OBS es una combinación de cinco elementos:
     + Un protocolo de incorporación: `srt://`
     + El **punto de conexión** de la estructura `srt` en la respuesta de la CLI: 

       `a1b2c3d4e5f6.srt.live-video.net`
     + Un puerto: `9000`
     + Un identificador de transmisión, el cual es el **valor streamKey** de la respuesta de la CLI:

       `sk_us-west-2_abcd1234efgh5678ijkl`
     + Una frase de contraseña, que se usa para cifrar el contenido. Úselo solo si la **ingesta insegura** no está habilitada.

       `ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`

     La entrada completa es:

     `srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`
   + La **Clave de transmisión** que introduzca en OBS se mantendrá vacía para el protocolo SRT.

1. Para **Resolución de salida de video** y **Velocidad de bits**, consulte [Tipos de canales](streaming-config.md#streaming-config-settings-channel-types) en *Configuración de streaming de Amazon IVS*. Si alguno de los valores elegidos por el asistente de OBS supera los valores permitidos por Amazon IVS, debe ajustar manualmente los valores para evitar una conexión fallida a Amazon IVS. Una vez finalizado el asistente: 

   1. Para ajustar la resolución de video, utilice **Configuración > Video > Resolución de salida (escalada)**.

   1. Para ajustar la velocidad de bits de video, utilice **Configuración > Salida > Transmisión > Velocidad de bits de video**.

1. Recomendamos 2 segundos de **Intervalo de fotogramas** para mejorar la estabilidad de la transmisión y evitar el almacenamiento en búfer en la reproducción del visor. Una vez que haya finalizado el asistente, vaya a **Configuración > Salida > Modo de salida**, seleccione **Avanzado**, y en la pestaña **Streaming**, asegúrese de que el **Intervalo de fotogramas** es 2.

1. En la ventana principal de OBS Studio, elija **Iniciar streaming**. 

Puede modificar la configuración de OBS manualmente más adelante:

1. Seleccione **Settings > Stream (Configuración > Transmisión)**.

1. Seleccione **Custom (Personalizada)** en el menú desplegable.

1. Pegue el **servidor** o la **clave de transmisión**.

Puede ejecutar el asistente de nuevo en cualquier momento: elija **Tools > Auto-Configuration Wizard (Herramientas > Asistente de configuración automática)**.

Si lo desea, en **Settings > General (Configuración > General)**, habilite la grabación local para guardar la transmisión en directo para su uso posterior. Como se mencionó anteriormente, los problemas de red entre la difusión y AWS o dentro de AWS podrían provocar alguna pérdida de datos durante la grabación de la transmisión. En estos casos, Amazon IVS prioriza la transmisión en directo sobre la grabación. Grabar localmente a través de su herramienta de streaming proporciona redundancia.

Es aconsejable comprobar si hay actualizaciones de OBS Studio regularmente y actualizar a la versión más reciente. (Por ejemplo, si obtiene el error “Error al conectarse al servidor”, puede que esté usando una versión anterior de OBS Studio que no sea compatible con RTMPS).

## Transmisión de un video grabado con FFmpeg mediante RTMPS
<a name="ffmpeg-rtmps"></a>

Siga estos pasos:

1. Descargue e instale FFmpeg: [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html).

1. Establezca `$VIDEO_FILEPATH` en la ubicación del video MP4 que se va a transmitir:

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Establezca `STREAM_KEY` en su **valor** de StreamKey:

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Establezca `INGEST_ENDPOINT` su **IngestEndpoint** (desde la CLI de AWS):

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.global-contribute.live-video.net
   ```

1. Comience el streaming con el siguiente comando de terminal (todo esto es una línea):

   ```
   ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY
   ```

   *Tenga en cuenta que el comando anterior es un ejemplo. Para el streaming de producción, ajuste los parámetros a sus necesidades.*

## Transmisión de un video grabado con FFmpeg mediante SRT
<a name="ffmpeg-srt"></a>

1. Descargue e instale FFmpeg: [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html). Si utiliza una versión anterior/compilada de FFmpeg, cree una nueva versión con la marca `--enable-libsrt`.

1. Compruebe que SRT esté disponible para FFmpeg: ejecute el siguiente comando y asegúrese de que `libsrt` esté en la salida. Si `libsrt` no está presente, vuelva a crearla u obtenga una versión nueva de FFmpeg compatible con SRT.

   ```
   ffmpeg -version | grep enable-libsrt
   ```

1. Establezca `$VIDEO_FILEPATH` en la ubicación del video MP4 que se va a transmitir:

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Establezca `STREAM_KEY` en su **valor** de StreamKey:

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Configure `INGEST_ENDPOINT` para su **punto de conexión** (desde la AWS CLI, en el objeto `srt`).

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.srt.live-video.net
   ```

1. Configure `PASSPHRASE` para su **frase de contraseña** (desde la AWS CLI, en el objeto `srt`). Use una frase de contraseña solo si la ingesta insegura no está habilitada para el canal. 

   ```
   PASSPHRASE=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
   ```

1. Comience el streaming con el siguiente comando de terminal (todo esto es una línea):

   ```
   ffmpeg -re -i $VIDEO_FILEPATH -c copy -f mpegts "srt://$INGEST_ENDPOINT:9000?streamid=$STREAM_KEY&passphrase=$PASSPHRASE”
   ```