# Gestione delle connessioni SRT con MistServer
> [! nota]-
> Il contenuto di questa pagina è generato dalla trascrizione audio/video e dalla trasformazione del testo dal contenuto e dai link di questa fonte.
Fonte: [https://fosdem.org/2025/schedule/event/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes/](https://fosdem.org/2025/schedule/event/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes/)
<video src=“https://video.fosdem.org/2025/k3401/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes.av1.webm” controls></video>
## Riepilogo e punti salienti:
MistServer è un media server open-source che gestisce le connessioni in processi separati per migliorare l'isolamento tra i clienti. Tuttavia, le connessioni SRT hanno rappresentato una sfida a causa della gestione dei socket UDP da parte di libsrt. La sessione esplora come MistServer ha superato questo ostacolo utilizzando una soluzione innovativa che consente l'uso di processi indipendenti anche per le connessioni SRT.
**Introduzione a MistServer**
MistServer è un software di server multimediale sviluppato dal 2009 e completamente open-source. Si concentra sulla trans-muxing e sull'integrazione facile, rendendolo uno strumento centrato sugli sviluppatori. Utilizza processi separati per ogni connessione, offrendo un buon isolamento tra i clienti, una caratteristica importante per mantenere la stabilità del server anche in caso di comportamenti anomali da parte di un singolo cliente.
**Sfide con SRT**
SRT è un protocollo di trasporto sicuro e affidabile, sviluppato da Haivision, che facilita la trasmissione di flussi MPEG-TS su Internet. Nonostante la sua crescente popolarità, l'implementazione di riferimento libsrt gestisce i socket UDP come risorse interne, impedendo l'uso di processi separati per ogni connessione SRT.
**Soluzione Innovativa**
MistServer ha trovato una soluzione che permette di utilizzare processi separati anche per le connessioni SRT. La chiave è stata riconoscere i pacchetti di handshake SRT e gestirli in modo da poter avviare nuovi processi per ogni connessione, mantenendo l'isolamento desiderato. Questo approccio consente di utilizzare una versione standard e non modificata di libsrt, ottenendo il meglio dei due mondi: isolamento multi-processo e compatibilità SRT.
## Significato per una trasformazione eco-sociale
Questo sviluppo è significativo per la trasformazione eco-sociale poiché migliora l'efficienza e la sicurezza delle trasmissioni multimediali, riducendo la dipendenza da hardware costoso e difficile da mantenere. Per i designer eco-sociali, MistServer offre un esempio di come soluzioni open-source possano essere utilizzate per ottimizzare le infrastrutture esistenti. Le sfide principali riguardano l'integrazione di protocolli open-source con soluzioni proprietarie e la necessità di garantire la compatibilità e la sicurezza senza compromettere l'innovazione.
## Slides:
| | |
| --- | --- |
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_001.jpg\|300]] | La prima diapositiva introduce il tema della sessione: come MistServer gestisce le connessioni SRT in processi indipendenti. Presentata da Jaron Viëtor, la sessione si svolge a FOSDEM 2025 e mira a condividere un approccio innovativo per migliorare l'isolamento delle connessioni SRT.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_002.jpg\|300]] | La seconda diapositiva fornisce il contesto su cosa sia MistServer: un pacchetto software per server multimediali in sviluppo dal 2009, completamente gratuito e open-source. Si concentra sulla trans-muxing e sull'integrazione facile, rendendolo uno strumento centrato sugli sviluppatori.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_003.jpg\|300]] | La terza diapositiva spiega che MistServer utilizza un processo separato per ogni connessione. Sebbene questo approccio sia meno efficiente, offre un migliore isolamento tra i clienti, riducendo il rischio che un comportamento anomalo di un cliente possa influenzare gli altri.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_004.jpg\|300]] | La quarta diapositiva introduce SRT (Secure Reliable Transport), un protocollo sviluppato da Haivision nel 2012 e open-source dal 2017. SRT è utilizzato per inviare flussi MPEG-TS preservando il timing e con bassa latenza, ed è sempre più adottato dall'industria dei media.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_005.jpg\|300]] | La quinta diapositiva discute i problemi iniziali con SRT: mentre libsrt è l'implementazione di riferimento in C++, altre opzioni come upump-srt e gosrt sono parziali. MistServer, essendo open-source, ha dovuto affrontare la sfida di integrare SRT senza compromettere la sua architettura.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_006.jpg\|300]] | La sesta diapositiva descrive un inconveniente con libsrt: prende il controllo dei socket UDP sottostanti, gestendoli come risorse interne. Questo impedisce l'uso di processi separati per ogni connessione, una caratteristica fondamentale di MistServer.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_007.jpg\|300]] | La settima diapositiva esplora le possibili soluzioni ai problemi con SRT: aggiungere il supporto per il fork dei binari in libsrt o scrivere una propria implementazione di SRT. Entrambe le opzioni presentano sfide significative.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_008.jpg\|300]] | L'ottava diapositiva discute le opzioni poco attraenti affrontate da MistServer: modificare o forkare libsrt, o sviluppare un'implementazione personalizzata. Inizialmente, SRT sembrava incerto, ma è diventato il protocollo de facto per la trasmissione di media su Internet.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_009.jpg\|300]] | La nona diapositiva presenta la soluzione segreta: la specifica SRT è ora disponibile e i pacchetti di handshake sono facili da riconoscere. Questo ha permesso a MistServer di implementare una soluzione innovativa per mantenere l'isolamento dei processi.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_010.jpg\|300]] | La decima diapositiva continua a descrivere la soluzione segreta, evidenziando la facilità di riconoscere i pacchetti di handshake SRT e come questo consenta a MistServer di mantenere l'isolamento dei processi senza modifiche significative a libsrt.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_011.jpg\|300]] | L'undicesima diapositiva fornisce il contesto sui socket UDP, un protocollo senza connessione. Tuttavia, i socket UDP possono essere connessi per ricevere tutto il traffico dal peer connesso, una caratteristica sfruttata da MistServer nella sua soluzione.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_012.jpg\|300]] | La dodicesima diapositiva continua a spiegare come i socket UDP possano essere connessi per ricevere tutto il traffico da un peer specifico, un elemento chiave nella soluzione di MistServer per gestire le connessioni SRT con processi separati.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_013.jpg\|300]] | La tredicesima diapositiva descrive l'applicazione della soluzione: intercettare il pacchetto di handshake, avviare un nuovo processo, inizializzare libsrt e utilizzare un socket UDP connesso per ascoltare. Anche se la documentazione di libsrt lo sconsiglia, funziona.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_014.jpg\|300]] | La quattordicesima diapositiva conclude che MistServer ha ottenuto il meglio dei due mondi: utilizza una versione standard e non modificata di libsrt e mantiene l'isolamento multi-processo, garantendo stabilità e sicurezza.
| ![[FOSDEM 2025/assets/How-MistServer-handles-SRT-connections-in-independ/preview_015.jpg\|300]] | La quindicesima diapositiva ringrazia i partecipanti e invita a porre domande. Fornisce anche un contatto email per ulteriori informazioni su MistServer.
## Link
[Slides](https://fosdem.org/2025/events/attachments/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes/slides/238570/fosdem25-_7vQjrzF.pdf)
[MistServer website](https://mistserver.org)
[MistServer Source Code](https://github.com/MistServer)
[Video recording (AV1/WebM)](https://video.fosdem.org/2025/k3401/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes.av1.webm)
[Video recording (MP4)](https://video.fosdem.org/2025/k3401/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes.av1.mp4)
[Video recording subtitle file (VTT)](https://video.fosdem.org/2025/k3401/fosdem-2025-6052-how-mistserver-handles-srt-connections-in-independent-child-processes.vtt)
[Chat room(web)](https://fosdem.org/chat)
[Chat room(app)](https://fosdem.org/chat/app)