I marker SCTE vengono utilizzati principalmente per inserire annunci pubblicitari nel flusso video in uscita, indicando al ricevitore (ad esempio, un server Streaming) quando inserire gli annunci e per quanto tempo. Ciò consente ai sistemi di terze parti di selezionare dinamicamente gli annunci da un database. Per ulteriori informazioni su SCTE-35 in generale su questo sito web.
In questo articolo:
→ Introduzione
→ Esempi di marcatori SCTE-35
→ Testare localmente il marcatore SCTE-35
→ Test del marcatore SCTE-35 in Nimble Streamer
→ Ulteriori informazioni
Introduzione
Consigliamo inoltre il nostro articolo generale sull'SCTE.
È possibile associare un indicatore SCTE a 4 diversi oggetti in PLAYDECK:
– Clip (in qualsiasi posizione)
– Blocchi (Inizio e Fine)
– Sovrapposizioni (Mostra e Nascondi)
– Pulsanti delle azioni
Invece di fornirvi un marcatore SCTE predefinito, abbiamo scelto un approccio diverso: dovrete scrivere il vostro marcatore SCTE. Ciò potrebbe richiedere un po“ di tempo per imparare, ma alla fine risulterà molto più flessibile. Il vantaggio è che sarai sempre compatibile con tutti i ricevitori. Per raccogliere la durata del clip e altre ”variabili“ forniamo alcuni ”segnaposto".
Si prega di notare che è necessario abilitare la funzione SCTE nelle opzioni del Stream:

Esempi di marcatori SCTE-35
Diamo un'occhiata ad alcuni esempi di SCTE-35. Si tratta della variante più diffusa di SCTE-35, denominata “Splicing”.
Nota: Il formato SCTE-35 qui presentato funziona al meglio con Nimble Streamer (vedi sotto). A seconda del server Stream in uso, il formato potrebbe variare. Rivolgiti al tuo provider.
Questo inserirà un annuncio pubblicitario e tornerà automaticamente al tuo programma al termine della durata specificata. La durata verrà impostata automaticamente da PLAYDECK in base al clip attualmente in riproduzione. È possibile sostituirla con {blockduration} o con un valore inserito manualmente. Se si sceglie un valore manuale per la durata, la formula è: DURATA DEL CLIP moltiplicata per 90000 e arrotondata. Il motivo è che 90000 è la scala temporale predefinita utilizzata dalla maggior parte dei sistemi SCTE. Esempio: il clip dura 12,4 secondi, quindi la durata SCTE sarebbe 1116000.
Invece di inviare una durata, è anche possibile inviare due marcatori SCTE distinti per avviare e terminare lo spot pubblicitario. Questi sono denominati CUE-OUT (passaggio dal programma allo spot) e CUE-IN (ritorno al programma).
Come avrai probabilmente già notato, l'unica differenza sta nel fatto che “outOfNetworkIndicator” assume il valore 1 (CUE-OUT) o 0 (CUE-IN). Il sistema SCTE provvederà a associare entrambi i marker in base allo “spliceEventId”.
Nota: I segnaposto supportati sono: {timestamp} {timestampunix} {airtimenext} {airtimenextunix} {plannednext} {plannednextunix} {clipid} {blockid} {blockduration} {clipduration}
Testare localmente il marcatore SCTE-35
Apri PLAYDECK. Non è ancora necessario caricare alcun clip. Fai clic con il tasto destro del mouse su un pulsante ACTION qualsiasi, crea una nuova azione e seleziona COMMANDS/SCTE:

Inserisci il tag di esempio SCTE-35 cliccando su SCTE-35. Chiudi le finestre pop-up cliccando su OK (due volte):

Ora siamo in grado di inviare un tag SCTE-35 a qualsiasi dispositivo Stream compatibile (UDP, DVB, SRT). Se clicchi su "Azione" in questo momento, non accadrà nulla, poiché non disponiamo ancora di un dispositivo Stream.
Creiamo un test UDP Stream, in cui ci limitiamo a inviare l'output a un file, così non dovremo (ancora) preoccuparci delle questioni relative al server. Copiate le impostazioni come indicato di seguito e avviate il Stream con “START NOW”. Non dimenticare di abilitare il SCTE-35 con “Parameter”:

Vogliamo ora inviare il nostro tag campione SCTE-35 al Stream. Chiudi quindi le Impostazioni e clicca più volte sul pulsante di azione, poi torna alle Impostazioni e ferma il tuo Stream con "STOP NOW".
I tuoi tag SCTE-35 sono stati registrati da PLAYDECK. Puoi controllare i registri tornando al tuo codice SCTE-35 tramite il pulsante "Azioni" e cliccando su "APRI REGISTRI EVENTI":

È inoltre possibile rendere visibili i tag SCTE-35 presenti nel file Stream registrato. A tal fine, è necessario un programma separato chiamato “DVBInspector”. Questo programma richiede anche il JAVA Runtime, quindi scaricate entrambi:
Questo strumento richiede JAVA Runtime. Se non è già installato, è possibile scaricarlo qui:
https://www.oracle.com/java/technologies/downloads/
Ora decomprimi il file “DVBinspector-1.18.0-dist.zip” (o simile) e avvia “DVBinspector-1.18.0.jar”. Quindi trascina il tuo file TS sull'applicazione. Apri la struttura ad albero come indicato di seguito per visualizzare il tuo marcatore SCTE.

Test del marcatore SCTE-35 in Nimble Streamer
Nimble Streamer è il nostro servizio Streaming preferito. È conveniente, facile da configurare e mantenere, ma offre comunque un livello di complessità adeguato per casi d'uso avanzati:
Installa la versione di prova di 14 giorni di Nimble sullo stesso computer su cui è in esecuzione PLAYDECK. Non è indispensabile, ma semplifica le cose, poiché ti evita di dover configurare la rete. Nimble ti chiederà inoltre di creare un account su WMSPanel, uno strumento di configurazione basato sul web per Nimble, poiché Nimble Streamer si installa senza interfaccia utente.
INFO: Affinché questo esempio SCTE-35 funzioni, NON è necessario disporre dei plug-in “Nimble Live Transcoder” o “Nimble Advertizer” se lo si prova su un'installazione Live. Nella versione di prova, infatti, sono disabilitati per impostazione predefinita.
Una volta avviato Nimble, c'è un'altra configurazione che devi effettuare manualmente. Apri il file di configurazione del server Nimble qui:
c:\Program Files\Nimble Streamer\conf\nimble.conf
In fondo a questo file, aggiungi le seguenti righe e salva il file.
scte35_processing_enabled = true
scte35_forwarding_enabled = true
hls_ad_scte35_forwarding_enabled = true
hls_ad_marker_format = cue
hls_ad_splice_out_cont_marker_enabled = true
Importante: È necessario riavviare Nimble subito, riavviando il PC oppure riavviando manualmente il servizio di Windows “Nimble Streamer”.
Ecco di nuovo le righe, ma questa volta con dei commenti per te (non usarle):
scte35_processing_enabled = true // Abilita il modulo SCTE in generale. Necessario per tutte le altre opzioni
scte35_forwarding_enabled = true // Consente il passaggio dei marcatori SCTE-35 tramite Live Transcoder
hls_ad_scte35_forwarding_enabled = true // Abilita l'inoltro dei marcatori SCTE-35 nei flussi HLS
hls_ad_marker_format = cue // Imposta Nimble affinché utilizzi i marcatori CUE-OUT e CUE-IN
hls_ad_splice_out_cont_marker_enabled = true // Abilita l’inserimento automatico di EXT-X-CUE-OUT-CONT
Ora configuriamo il tuo Streams in WMSPanel:
Per prima cosa definiremo il nostro flusso in entrata Stream. Andate su “Nimble Streamer” nel menu, selezionate “MPEGTS In” e cliccate sul pulsante “Aggiungi flusso UDP”, quindi aggiungete il flusso in entrata come indicato di seguito. È possibile utilizzare qualsiasi altra porta, qualora la 5001 fosse già occupata.

Ora configureremo il formato del flusso in uscita. In questo caso utilizzeremo HLS per illustrare la conversione del marcatore SCTE da UDP a HLS. Nella stessa pagina, vai su “MPEGTS Out” e clicca sul pulsante “Aggiungi flusso in uscita”, quindi aggiungi come indicato qui di seguito. Assicurati di selezionare il flusso di ingresso come sorgente video e audio.

Proseguiamo ora con la configurazione in PLAYDECK. Accediamo alle impostazioni di uscita del Stream e modifichiamo l'URL del Stream impostandolo su “udp://127.0.0.1:5001”.
INFO: Puoi scegliere il codec video che preferisci. In questo caso ho scelto H.264 per far sì che sia la mia GPU NVIDIA a occuparsi della codifica, riducendo così l'utilizzo della CPU. Attiva anche SCTE-35 tramite “Parametri”.

INFO: Si prega di notare che PLAYDECK non è in grado di trasmettere direttamente in streaming in formato HLS. Se si seleziona “Apple HTTP Live Streaming” come formato di streaming, l’output verrà salvato in un file. È quindi necessario specificare un percorso di destinazione del file come “URL HLS”, ad esempio “c:\Users\Public\Documents\stream.m3u8”. Utilizzare quindi quel file per lo streaming tramite qualsiasi server HLS. PLAYDECK non è in grado di scrivere i tag SCTE HLS nel file manifest HLS (il file *.3u8).
Ora vogliamo che PLAYDECK invii automaticamente il segnale SCTE, non solo tramite un pulsante, ma in base alla clip selezionata. Quindi inseriamo una clip qualsiasi e facciamo clic sull'icona COMANDI nella barra degli strumenti, poi aggiungiamo un nuovo comando, selezioniamo PLAY TIME 0 e infine inseriamo il campione SCTE-35:

INFO: È inoltre possibile aggiungere indicatori SCTE a blocchi, sovrapposizioni e pulsanti di azione.
Ora mettiamo in moto il tutto: avvia la riproduzione (CUE e PLAY) della clip e avvia il Stream nelle impostazioni di PLAYDECK. Passa al WMSPanel e apri dal menu “Nimble Streamer” l’opzione “Live Streams”. Ora vedrai 1 streaming live in corso. Cliccaci sopra e seleziona il punto interrogativo all’estrema destra, come mostrato qui.

Dall'elenco degli “URL da riprodurre”, seleziona quello che termina con “playlist.m3u8” e clicca su “Copia”. Ora incolla questo URL in un qualsiasi browser che abbia un lettore HLS integrato o installato. Per questo esempio utilizzeremo il browser Chrome con la seguente estensione per il lettore HLS:
https://chromewebstore.google.com/detail/hls-player-m3u8-streaming/eakdijdofmnclopcffkkgmndadhbjgka
Una volta inserito quell'URL in CHROME, vedrai immediatamente lo streaming di PLAYDECK in riproduzione. Ora ti mostro come monitorare il tuo marcatore SCTE. In Chrome premi F12 per aprire gli Strumenti di sviluppo. In alto, clicca sulla scheda “Rete”. Vedrai ora diversi file “chunks.m3u8”, che fanno parte del tuo stream. Clicca su uno dei file chunk (chiamati anche manifest HLS) e seleziona “Anteprima” accanto ad esso. Ora vedrai il tag SCTE HLS. Se non è presente, clicca su un altro chunk, poiché inviamo l’SCTE solo all’inizio del clip.

Ecco fatto! Abbiamo raggiunto i nostri obiettivi di test. A breve saranno disponibili ulteriori informazioni che potrebbero essere utili approfondire.
Ulteriori informazioni
Accesso a PLAYDECK
Registriamo tutti i tag SCTE in entrata e in uscita. Questo ti offre anche la possibilità di testare i tuoi tag SCTE in uscita semplicemente collegando in loop l'uscita a un ingresso (sia SDI che Streams) e lasciando che PLAYDECK rilevi i tuoi tag SCTE. È possibile aprire i file di log dal menu principale “Logs”:

Accesso a Nimble Streamer
Se qualcosa va storto o non va come previsto, un buon punto di partenza è controllare i file di log di Nimble. Su Windows, il log si trova qui:
c:\Program Files\Nimble Streamer\log
La registrazione è abilitata di default nella versione di prova di Nimble, ma nel caso in cui fosse necessario attivarla, ecco i parametri da inserire nel file “nimble.conf”.
log_access = file
logging = debug
Ora apri il file di log e cerca la dicitura “SCTE”. Potresti trovare qualcosa di simile, il che indica che c'è un errore di battitura nel tuo marcatore SCTE in PLAYDECK:
[SCTE35] comando di giunzione non supportato (tipo=6) per [mynewapp/mynewstream]
Se l'analisi del tuo SCTE Marker in Nimble è andata a buon fine, il risultato sarà simile a questo:
[SCTE35] splice_insert: event_id=4157 oon=1 immediate=1 pts_adjustment=0 pts=0 actual_pts=202593600 duration=2707200 data=0xfc....
Strumento: TSDuck
Si tratta di una raccolta di strumenti e plugin dotata di un’ampia libreria per la manipolazione dei flussi di trasporto MPEG. Grazie a questa raccolta, potrai inserire marcatori SCTE al di fuori di PLAYDECK sulla base di un algoritmo o di altre logiche complesse.
Strumento: x9k3
Questo strumento è in grado di convertire i marcatori SCTE-35 presenti nei file UDP Streams o MPEG-TS in tag SCTE HLS. Ciò consente di configurare un server di streaming che non dispone della conversione automatica da SCTE-35 a HLS.