Configurazione dei flussi di output

Questo articolo illustra come configurare i flussi di output per diversi scopi.

In questo articolo:
Introduzione
Utilizzo di parametri e stringhe di configurazione
Esempi di configurazione
Flussi audio AAC di alta qualità
Spazio colore e sottocampionamento della crominanza e Interlace
Tracce audio multiple
Sottotitoli e SCTE
Indirizzamento dei flussi verso indirizzi IP specifici
Monitoraggio e risoluzione dei problemi


1. Introduzione

È possibile impostare 15 diverse configurazioni di streaming per qualsiasi sorgente, che si tratti di canali, ingressi o vista del regista. Per impostazione predefinita, il formato video viene copiato dalla sorgente una volta avviato lo streaming, ma è possibile transcodificarlo in qualsiasi risoluzione.

Una volta scelto il protocollo, gli altri campi relativi al codec video/audio e all'URL cambieranno in base alla selezione effettuata, il che significa che non tutti i codec video/audio saranno disponibili per ogni protocollo di streaming.

INFO: L'encoder NVIDIA NON supporta più i formati interlacciati. Si consiglia invece di utilizzare Intel QuickSync.

L'URL visualizzato fornirà un suggerimento sul formato richiesto. Clicca su “Informazioni URL” per visualizzare ulteriori esempi, ad esempio su come integrare nome utente e password. L'URL di anteprima non verrà utilizzato da PLAYDECK, ma serve solo a facilitare l'apertura del browser Internet quando si clicca su “Anteprima”.


2. Utilizzo di Parameter e Config

È possibile impostare ulteriori parametri relativi al protocollo e ai codec, specifici per la selezione effettuata. Questi possono essere utilizzati per ottimizzare le impostazioni, ad esempio per impostare lo streaming in CBR o aggiungere metadati.

Cliccando su “Parametro” si aprirà un editor che mostrerà solo le impostazioni disponibili per la selezione effettuata. Verranno evidenziati tutti i valori che differiscono dal valore predefinito.

La “stringa di configurazione” rappresenta tutte le selezioni relative a protocollo e codec, nonché i rispettivi parametri. La stringa di configurazione funziona in entrambi i modi: puoi anche copiare/incollare una stringa di configurazione nel campo di testo, quindi fare clic su “Aggiorna da stringa” per applicare i valori. Questo ti permette di copiare facilmente le impostazioni tra ID di streaming o di condividerle con altri utenti.


3. Esempi di configurazione

Ecco una breve selezione di configurazioni consigliate per diversi scopi. Copia e incolla il testo in PLAYDECK e clicca su “Aggiorna da stringa”.


Flusso DVB con fotogrammi B CBR e GOP. Nessun errore PCR, PTS-DTS o di esaurimento del buffer

format='dvb' protocol='udp://' mpegts_start_pid='60' video::streamid='80' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::streamid='81' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' pmt_start_pid='100' mpegts_flags='-system_b' rc_buffers='4' pcr_period='35' pat_period='0.1' sdt_period='0.5' tdt_period='10' start_pcr='0' service_name='TEST' service_provider='PD' service_id='1' original_network_id='1' transport_stream_id='201' service_type='advanced_codec_digital_hdtv'


Oppure, in breve:

format='dvb' protocol='udp://' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' service_type='advanced_codec_digital_hdtv'


INFO: Ogni ricevitore DVB è diverso e potrebbero essere necessari parametri diversi. Alcuni ricevitori non consentono ALCUNA deviazione da linee guida ufficiali, e apparirà NERO. La soluzione più affidabile per codificare i segnali DVB sono gli encoder hardware, ad esempio. Haivision.

La procedura consigliata per verificare la presenza di errori PCR o di altro tipo nei flussi DVB consiste nell'utilizzare uno di questi strumenti:
DVBControl DVBAnalyzer (costa circa 2000 EUR, ma è il più affidabile e rileva l'errore PTS-DTS)
StreamGURU (costo: circa 300 EUR; rileva qualsiasi errore ETR e visualizza il grafico del bitrate)
TSAnalyzer (gratuito, ma supporta l'importazione di URL di streaming; richiede un file TS su disco rigido)
– Altri programmi degni di nota: DVBInspector, Elecard Stream Analyzer, StreamXpert

————————————————————

SRT Stream in formato CBR a 25 FPS con audio di alta qualità

Il seguente esempio viene utilizzato da diversi clienti in una configurazione multicanale per lo streaming di contenuti video musicali. Questa configurazione funziona senza intoppi con 4 canali di uscita e streaming in parallelo, garantendo una qualità audio e video ottimale con audio FHD ACC.

format='mpegts' protocol='srt://' video::codec='n264' video::b='4M' video::rc_type='cbr' video::preset='p4' audio::codec='aac' audio::b='128K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='128K' audio::maxrate='128K' audio::bufsize='128K' audio::aac_coder='0'

————————————————————

Flusso RTMP in CBR a 60 FPS con un keyframe ogni 2 secondi

Il prossimo esempio riguarda YouTube. Utilizza gli strumenti di analisi di YouTube e di monitoraggio dello streaming per verificare la stabilità del tuo streaming:

format='flv' protocol='rtmp://' video::codec='n264' video::b='9000k' video::maxrate='9000k' video::bufsize='9000k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' audio::ar='44100'


Il prossimo esempio riguarda Twitch. Utilizza Twitch Inspector per verificare la stabilità dello streaming, aggiungi “?bandwidthtest=true” all’URL dello streaming per evitare che vada in diretta.

format='flv' protocol='rtmp://' merge_tracks='true' video::codec='n264' video::b='5800k' video::maxrate='5800k' video::bufsize='5800k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' video::tune='zerolatency' audio::codec='aac' audio::ar='44100' audio::b='128k'


————————————————————

Standard Sony XDCAM HD422

parametri video — tra cui il sottocampionamento cromatico 4:2:2, una struttura GOP specifica (M=3, N=15) e l'elaborazione a campi interlacciati — oltre all'audio PCM a 24 bit di livello professionale con una frequenza di campionamento di 48 kHz.

format='mxf' video::codec='mpeg2video' video::b='50M' video::interlace='1' video::top='1' video::g='15' video::v422='true' video::bf='2' video::flags='+ildct+ilme' audio::codec='pcm_s24le' audio::ar='48000'


4. Flussi audio AAC di alta qualità

Le impostazioni predefinite per lo streaming AAC consentono di risparmiare risorse della CPU, ma potrebbero risultare piatte sui canali musicali. Per un audio di alta qualità, scegli uno dei due profili riportati di seguito in base al pubblico di destinazione e al materiale di partenza.

Preparazione rapida:
Fonte: Utilizza clip a 48 kHz (320 kbps o PCM senza perdita di dati).
Video: Se la larghezza di banda è ridotta, riduci la risoluzione del video a 720p30. Utilizza sempre la codifica hardware.


Opzione 1: Massima compatibilità e stabilità (variante sicura)

Ideale per: Streaming standard, operatori via cavo e multiplex DVB-T. Questo è il profilo più sicuro per evitare problemi di sincronizzazione con diversi tipi di contenuti.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::aac_coder='0'


audio::profile=’aac_low’: Imposta AAC-LC per la massima qualità e la compatibilità con il decodificatore hardware 100%.
audio::aac_coder=’0′: Imposta una codifica a due cicli di alta qualità per garantire transienti nitidi. (Impostare su 1 in caso di picchi di utilizzo della CPU).
Stereo dinamico: Affida la gestione stereo all'encoder, rendendolo altamente resistente alle imperfezioni del materiale sorgente.


Opzione 2: Streaming ad alta fedeltà (versione stereo ottimizzata)

Ideale per: Canali musicali dedicati con file sorgente di altissima qualità, pari a quelli di studio. Questo profilo utilizza un profilo VBR molto stretto e un'elaborazione stereo Mid/Side forzata.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='200K' audio::maxrate='320K' audio::bufsize='640K' audio::aac_coder='0'


audio::stereo_mode=’ms_force’: Ottimizza l'elaborazione stereo Mid/Side, massimizzando l'efficienza della larghezza di banda per ottenere paesaggi sonori stereo profondi e ampi.
minrate=’200K’ / maxrate=’320K’ / bufsize=’640K’: Un inviluppo VBR ben definito che impedisce cali di qualità nei passaggi più tranquilli, lasciando al contempo spazio per i picchi musicali più intensi.
Nota: Se l'audio risulta poco incisivo o suona vuoto in alcuni brani, torna all'Opzione 1, poiché il materiale di partenza potrebbe presentare incongruenze di fase.


5. Spazio colore, sottocampionamento della crominanza e interlacciamento

Il supporto di determinati spazi colore, ad esempio 4:2:2 per il DVB o la codifica interlacciata, dipende in larga misura dalla CPU Intel o dalla GPU NVIDIA che si sta utilizzando.

Ecco una pagina dedicata a NVidia NVenc e 422 Assistenza e qui per Intel Quick Sync e assistenza 422.

In parole povere:

1. Supporto NVidia per la codifica interlacciata:
– Pascal (serie GTX 10): l'ultima architettura con supporto per l'interlacciamento
– Turing / Ampere / Ada (RTX 20/30/40): è stato rimosso il supporto hardware per la codifica interlacciata
– Blackwell (serie RTX 50): è stata reintrodotta la codifica interlacciata per H.264 (8 bit e 10 bit)

2. Supporto NVidia per lo spazio colore 4:2:2:
– Blackwell (serie RTX 50)

3. Supporto Intel per lo spazio colore 4:2:2
– I processori di decima generazione e successivi supportano la codifica e la decodifica con accelerazione hardware del codec HEVC con campionamento del colore 4:2:2 tramite Quick Sync.
– I precedenti controller grafici presenti sui processori Intel® Core™ di nona generazione e precedenti erano limitati al campionamento del colore 4:2:0 con il codec HEVC per la codifica e la decodifica con accelerazione hardware.

Ecco un breve esempio di configurazione per la codifica 4:2:2 con Intel Quick Sync (10a generazione e successive)

format='dvb' protocol='udp://' video::codec='hevc_qsv' video::b='5M' audio::codec='aac' audio::b='128K' video::pix_fmt='yuyv422'


Nota: Funzionalità quali l'interlacciamento e lo spazio colore 4:2:2 sono disponibili anche negli encoder x264 per CPU. Poiché utilizziamo una versione LGPL di FFmpeg priva di componenti GPL (ad es. libx264), queste funzionalità non sono abilitate. È possibile sostituire le librerie FFmpeg con le proprie versioni.


6. Tracce audio multiple

Se devi trasmettere più tracce audio, ad esempio per diverse lingue o per l'audio del regista, puoi farlo con tutti i protocolli supportati (DVB, RTMP, UDP e altri ancora). Puoi anche utilizzare diversi codec audio.

Il procedimento è il seguente: assicurati che TUTTE le tracce audio siano già attive nel tuo canale, quindi DIVIDI le tracce audio per l'uscita dello streaming, ad esempio in coppie stereo.

Per prima cosa, assicurati che il tuo canale sia impostato su più di 2 canali audio:

Quindi “riempire” questi canali audio con contenuti audio, ad esempio attivando tutte le tracce audio su una clip o importando tutte le tracce tramite SDI (fino a 16 tracce audio). Puoi anche utilizzare la mappatura audio per mixare le tue tracce audio in modo ascendente o discendente oppure utilizzare il filtro audio per copiare e ritardare determinate tracce audio.

Quindi apri le impostazioni dello streaming, in particolare i parametri del protocollo di streaming, e attiva la suddivisione della traccia audio:

INFO: Il numero di canali audio nelle impostazioni dello streaming deve rimanere a 2.

Se necessario, è possibile applicare diversi codec audio alle tracce audio aggiuntive. Si prega di notare che i numeri delle tracce audio, a partire dalla seconda, aumentano progressivamente:

audio::codec='aac' audio.1::codec='ac3' audio.2::codec='libmp3lame' audio.3::codec='mp2'


È inoltre possibile applicare un descrittore di lingua a ogni traccia audio:

audio::metadata::language='eng' audio.1::metadata::language='ita' audio.2::metadata::language='fra' audio.3::metadata::language='ger'


INFO: I codici lingua devono essere conformi a ISO 639-2

Puoi quindi provare le tracce audio ottenute, ad esempio su StreamGURU:


7. Sottotitoli e SCTE

Entrambe le opzioni possono essere attivate nelle impostazioni dei parametri del protocollo:

INFO: Lo standard SCTE-35 è disponibile solo per i seguenti protocolli: SRT, DVB, UDP (qualsiasi codec video). I sottotitoli funzionano solo con i seguenti codec video: MPEG-2, H.264 (qualsiasi protocollo)

Ciò richiede che entrambe le funzioni siano già attivate e disponibili nel tuo canale. Per ulteriori informazioni su SCTE e/o sui sottotitoli, consulta i seguenti articoli:

Invio di SCTE-35 al server di streaming
Sottotitoli


8. Instradamento dei flussi su indirizzi IP specifici

La vostra produzione richiede l'invio dei flussi tramite reti specifiche. Questa soluzione viene utilizzata principalmente per disporre di una linea dedicata/riservata allo streaming, in modo che non interferisca con il normale traffico di rete.

Se si utilizza Flussi UDP basta aggiungere questo parametro direttamente all'URL:
udp://ip:porta?localaddr=172.20.10.2

Se si utilizza SRT Stream basta aggiungere questo parametro direttamente all'URL. Questo funziona solo in modalità rendezvous:
srt://ip:porta?mode=rendezvous&localip=172.20.10.2

Se si utilizzano flussi RTMP, purtroppo non è disponibile alcun parametro. È necessario instradare manualmente tutto il traffico RTMP in uscita. A tal fine utilizziamo Proxifier. Vai su Profilo, Regole di proxificazione, Aggiungi nuova regola, modificala come indicato e spostala in cima all'elenco delle regole. Seleziona l'adattatore desiderato tramite “Avanzate”.


Se vuoi eseguire un test di prova in locale senza la seconda linea, attiva sia la scheda Ethernet che il Wi-Fi sul tuo PC, quindi avvia un nuovo hotspot sul tuo cellulare e connetti il PC al Wi-Fi di quel telefono. A questo punto, apri il prompt dei comandi (“cmd”) e digita “ipconfig”. L'indirizzo IP che ti serve è lì:

Puoi verificare il traffico di rete con Wireshark.


9. Monitoraggio e risoluzione dei problemi

Se i tuoi streaming presentano ritardi o addirittura si bloccano del tutto, spesso non sai bene cosa sia successo. Ecco alcuni suggerimenti per aiutarti a individuare il problema.

1. Velocità di trasmissione

Segui questa regola: l'impostazione del bitrate video e audio (per lo streaming) non deve mai superare il bitrate di codifica del clip. Verificalo facendo clic con il tasto destro del mouse sul clip nella playlist e aprendo MediaInfo. In questo caso, imposta il bitrate video a 3 Mbit/s e quello audio a 128 kbit/s.


2. Monitoraggio

Apri la finestra "Monitor" in PLAYDECK oppure apri i registri dello streaming.

FPS 50/60 (Media FPS/FPS desiderata)
Confronta la frequenza dei fotogrammi di codifica attuale e media con il livello desiderato. Un calo in questo caso indica che il sistema non riesce a stare al passo con la codifica in tempo reale.

Trascorso (Tempo di attesa del fotogramma in secondi)
Indica il tempo trascorso dall'elaborazione dell'ultimo fotogramma. Se questo valore aumenta, significa che non è possibile elaborare i fotogrammi a causa della mancanza della sorgente, di impostazioni errate o dell'assenza di connessione.

Saltato (Fotogrammi persi)
L'indicatore più significativo dei colli di bottiglia nelle prestazioni. Se questo valore aumenta, significa che l'encoder sta tralasciando intenzionalmente dei fotogrammi perché non riesce a elaborarli con sufficiente rapidità.

Pause (Fotogrammi persi)
Se la connessione è lenta, vengono visualizzati dei "Breaks" perché il server vuole un nuovo frame, ma non riesce ad arrivare in tempo (nel caso di protocolli che richiedono un riconoscimento, come RTMP o SRT). Si possono verificare interruzioni anche se la sorgente non invia un frame in tempo.

Buffer (In attesa di fotogrammi)
Controlla il numero di fotogrammi in attesa nella coda interna. Un buffer in costante crescita è solitamente indice di fotogrammi saltati o di interruzioni. Alto saltato, basso interrotto: Questo di solito significa che il tuo Codificatore CPU/GPU è troppo lento. Interruzioni alte, basse/zero saltate: Questo di solito significa che il rete o fonte è il collo di bottiglia. Il writer è pronto per la codifica, ma i fotogrammi non arrivano o non vengono “prelevati” agli intervalli di tempo corretti a causa del ritardo nella connessione.


3. Problemi di rete/larghezza di banda

Chiudi tutte le tue sessioni di streaming, apri la Console di Windows (cerca “cmd” nel menu Start) e digita

tracert


Utilizza il nome host o l'indirizzo IP dei tuoi URL di destinazione. Se noti valori superiori a 100 ms, ciò indica una connessione lenta al tuo stream di destinazione.

Tieni inoltre presente che, sebbene oggi le velocità di download con la fibra ottica, il cavo o l'ADSL siano per lo più elevate (>100 Mbps), la velocità di upload potrebbe essere molto più bassa. Utilizza uno strumento come Speedtest per verificare la tua velocità effettiva di upload.

Utilizza anche Bandwidth Profiler sul server di streaming per verificare se il bitrate desiderato viene effettivamente ricevuto dal server. La maggior parte dei provider o dei software mette a disposizione strumenti per misurare il bitrate in ricezione. Idealmente, i dati vengono visualizzati sotto forma di grafico, che può evidenziare eventuali cali durante la trasmissione. Se non hai uno strumento a portata di mano, ti consigliamo di trasmettere in streaming su YouTube, poiché dispone di uno Stream Analyzer integrato, molto utile per diagnosticare eventuali connessioni instabili.

Inoltre, ti invitiamo a verificare con il tuo provider o servizio se mettono a disposizione URL locali per l'invio di stream per la tua regione o il tuo Paese. Ad esempio, Twitch fornisce questi Endpoint di acquisizione di Twitch.