Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

AWS Elemental MediaLive: l'architettura completa per lo streaming video live

By Nikhil PawarFeb 25, 20257 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Foto di Cooler8 su Shutterstock

Lo streaming live è ormai parte integrante delle strategie per coinvolgere il pubblico e trasmettere eventi in tempo reale. Con la diffusione di piattaforme come Vimeo, YouTube Live e Facebook Live, la richiesta di soluzioni di streaming live di alta qualità, affidabili e scalabili è cresciuta in modo esponenziale. Amazon Web Services (AWS) mette a disposizione una potente suite di strumenti dedicati e uno dei servizi chiave in questo ambito è Amazon Elemental MediaLive, un servizio di elaborazione video live di qualità broadcast.

Che si tratti di trasmettere eventi dal vivo, sport, news o intrattenimento, garantire un'esperienza di streaming fluida agli spettatori è fondamentale. Tuttavia, costruire e gestire un workflow di streaming live affidabile può essere complesso. È qui che entra in gioco AWS Elemental MediaLive, con una soluzione solida e scalabile per l'elaborazione video live nel cloud. Permette di entrare in contatto con il pubblico in tempo reale, alimentare l'engagement e distribuire contenuti d'impatto, grazie a funzionalità avanzate di elaborazione video — tra cui transcoding, packaging e crittografia — che assicurano una distribuzione di qualità su dispositivi e piattaforme di tutto il mondo.

In questa guida introduttiva vedremo come distribuire rapidamente una soluzione di streaming live su AWS, sfruttando in pochi minuti la funzionalità Workflow Wizard di AWS Elemental MediaLive, e impareremo lungo il percorso anche alcuni concetti di base. Iniziamo.

Workflow architetturale

**Creare il workflow**

Step 1: creare il workflow

Aprire la console di AWS Elemental MediaLive → cliccare su "Workflow wizard" → "Create workflow".

Workflow wizard

Create workflow

Step 2: inserire i dettagli di base

Workflow Name . es. myfirst-medialive-channel → selezionare la MediaLive Channel Class. Es. Single pipeline → IAM role . Es. Create a role (creare prima il ruolo e poi selezionarlo) → Next.

Step 2

Nota — un canale single pipeline mette a disposizione un singolo endpoint statico verso cui inviare lo stream, mentre un canale standard ne fornisce 2. Es. rtmp://3.216.59.247:1935/myfirst-medialive/input-1

Step 3: scegliere una sorgente video

3.1: scegliere il tipo di input

3.1: scegliere il tipo di input

Al momento le opzioni di input disponibili sono quattro: occorre selezionare quella più adatta al proprio caso d'uso. A scopo dimostrativo useremo RTMP (push).

  1. Elemental Link — è un dispositivo di codifica che collega al cloud (MediaLive) una sorgente video live, come una telecamera o un'apparecchiatura di produzione video.

Opzioni del dispositivo Elemental Link

2. MediaConnect — è un servizio di trasporto per video live affidabile, sicuro e flessibile, che permette a broadcaster e content owner di costruire workflow video live e di condividere in modo sicuro contenuti live con partner e clienti. Consente di gestire canali, trasmettere eventi live e veicolare flussi video di alto valore in entrata, in transito e in uscita dal cloud AWS.

  1. MP4 — è possibile inviare in push file MP4 non in streaming (estensione .mp4) direttamente da S3 al canale Elemental MediaLive e trasmetterli come live broadcast.

4. RTMP (push) — è possibile acquisire contenuti in streaming da uno smartphone o da un desktop, utilizzando il software di broadcasting che si preferisce.

3.2: selezionare o creare un input

3.2: selezionare o creare un input

Nota — quando si crea un input è possibile assegnare il nome desiderato ad Application name e Application instance, ma vanno considerati come stream endpoint e stream key durante il broadcasting. Conviene renderli complessi così da essere difficili da indovinare. Esiste anche un altro meccanismo di sicurezza (step 3.3), ovvero il security group, che definisce da quali origini lo stream può essere inviato ai propri endpoint.

3.3: creare o utilizzare un input security group esistente — per limitare le sorgenti dello stream verso il canale MediaLive, indicare le origini di input consentite tramite range CIDR di rete delle proprie sorgenti autorizzate, ad esempio:

  • IP di una macchina specifica
  • Range di rete dello studio
  • Blocco CIDR on-prem o VPC

In questo modo solo le reti fidate potranno inviare contenuti al canale. Es.

3.3: creare o utilizzare un input security group esistente

3.4: selezionare il codec di input — l'ho lasciato sul valore di default, ma l'elenco dei codec video e audio supportati da MediaLive è disponibile qui.

3.4: selezionare il codec di input

Step 4: aggiungere gli output video

4.1: scegliere dove inviare il video — sono disponibili diverse opzioni, tra cui MediaPackage, HLS verso MediaStore, e piattaforme social come Facebook, YouTube e Twitch TV. Si possono selezionare una o più opzioni in base alle proprie esigenze e scegliere la qualità video tra Standard ed Enhanced.

Nota: con la qualità video Enhanced abilitata, MediaLive può offrire una qualità superiore senza aumentare il bitrate. L'impostazione si applica a tutti gli output del workflow ed è soggetta a un costo aggiuntivo.

4.2: destinazione MediaPackage

È possibile aggiungere ulteriori risoluzioni e framerate per servire al meglio il proprio pubblico.

Risoluzioni e framerate aggiuntivi

Step 5: revisione e creazione

Lo stato del workflow risulta ora "create in progress": significa che è stato generato un template CloudFormation in base alle opzioni selezionate e che è in corso il deploy.

Workflow in corso

CloudFormation del workflow in corso.

Step 6: verificare i dettagli

6.1: workflow completato — il workflow non è ancora stato avviato. Si trova in stato Idle: il canale MediaLive non è quindi in esecuzione.

6.2: deploy CloudFormation completato — CloudFormation ha distribuito correttamente diverse risorse.

Il Workflow Wizard ha creato e distribuito correttamente il template CloudFormation, integrando tra loro tutti i componenti. Il workflow si presenta così: sorgente live → RTMP push → MediaLive Input → MediaLive Channel (transcoding) → MediaPackage (packaging) → CloudFront (distribuzione globale) → utenti finali.

AWS Elemental MediaLive riceve l'input RTMP, lo elabora ed esegue il transcoding per generare più formati di output, in base alle scelte effettuate. Es. (step 4.2)

  • 1080p60 (1920x1080 a 60fps, fino a 6 Mbps)
  • 1080p30 (1920x1080 a 30fps, fino a 5 Mbps)
  • 720p60 (1280x720 a 60fps, fino a 5 Mbps)
  • 720p30 (1280x720 a 30fps, fino a 3 Mbps)
  • 480p30 (854x480 a 30fps, fino a 1,5 Mbps)
  • 240p30 (426x240 a 30fps, fino a 750 Kbps)

AWS Elemental MediaPackage si occupa del packaging. Il canale MediaPackage riceve tutti gli stream elaborati e fornisce tre diverse tipologie di output (endpoint) a partire dal contenuto transcodificato, gestendo inoltre la creazione e la manutenzione di playlist e manifest.

  • Endpoint HLS (per dispositivi Apple e compatibilità generale)
  • Endpoint DASH (per dispositivi Android e altri player compatibili con DASH)
  • Endpoint CMAF (Common Media Application Format, per lo streaming moderno)

AWS CloudFront si occupa della distribuzione globale degli stream agli utenti.

Prima di avviare il workflow e iniziare a inviare lo stream al canale Elemental MediaLive, è utile ricordare che è possibile collegare fino a 20 input a un singolo canale MediaLive, con alcune limitazioni in base al tipo di input. I casi d'uso possono essere molto diversi: si può ad esempio voler commutare gli input del canale MediaLive durante una trasmissione live, dove il primo stream mostra un video in loop prima dell'inizio dell'evento e il secondo va in onda quando l'evento ha inizio. La commutazione degli input è possibile tramite gli schedule di MediaLive, ma è un argomento per un'altra volta.

A questo punto, prendere nota dei dettagli dell'input endpoint, recuperabili dal Workflow Wizard, dai dettagli del canale MediaLive o direttamente dalla sezione Input.

Es. rtmp://3.216.59.247:1935/myfirst-medialive/input-1

Per trasmettere i contenuti uso OBS Studio, ma è possibile scegliere qualsiasi altro tool di streaming.

Trasmettere contenuti al canale

Step 7: configurare OBS

7.1: configurare la sorgente dello stream in OBS

Sorgente

7.2: configurare la destinazione in OBS

Il mio input endpoint è rtmp://3.216.59.247:1935/myfirst-medialive/input-1 e ho impostato Application name: myfirst-medialive e Application instance: input-1 (stream key).

Destinazione di broadcasting

Step 8: avviare il Workflow Wizard

Verificare che il canale Elemental MediaLive sia in stato Running e non in stato Idle.

Canale online

Step 9: trasmissione video live

Avviare il push RTMP cliccando su Start Streaming in OBS Studio.

Aprire l'endpoint HLS e cliccare su "Preview Player" per visualizzare lo stream live.

Endpoint HLS

Trasmissione live con MediaLive

Ed ecco fatto. Configurare lo streaming live su AWS non deve essere per forza complicato: con il Workflow Wizard di MediaLive si può portare uno stream online in pochi minuti, anziché in ore. È inoltre possibile creare template più personalizzati e riutilizzarli in futuro.

**Cleanup**

Aprire il Workflow Wizard → selezionare il proprio workflow → Stop Workflow → Delete Workflow.

Che stia costruendo una piattaforma di streaming o esplorando le funzionalità media di AWS, ci auguriamo che questa guida Le sia utile per semplificare la configurazione di MediaLive. Dalla progettazione dell'architettura cloud all'automazione dell'infrastruttura, DoiT International mette a disposizione competenze a 360° per modernizzare la Sua infrastruttura cloud. Vuole ottimizzare la Sua implementazione di AWS Media Services? Ci contatti qui per scoprire le nostre soluzioni di cloud engineering.