Secondo Raccomandazione EBU R37 :
“The relative timing of the sound and vision components of a television signal” states that end-to-end audio/video sync should be within +40ms and -60ms (audio before / after video, respectively) and that each stage should be within +5ms and -15ms.
Questa citazione è il riassunto dalla sincronizzazione audio alla sincronizzazione video . sup>
Questo suggerisce che hai bisogno di precisione temporale misurata in 10 secondi millisecondi.
Suggerimento di Karl Bielefeldt di Precision Time Protocol è stato buono, ma mi sembra eccessivo. PTP ha una seconda accuratezza micro (su una LAN locale), quindi è 3 ordini di grandezza (più di 1000 volte) più accurati del necessario e di conseguenza molto più difficili da implementare.
Il Network Time Protocol (NTP) molto più vecchio e più ampiamente disponibile dovrebbe comportare la sincronizzazione degli orologi entro un millisecondo su una LAN, che è un ordine di grandezza (più di 10 volte) più preciso di quello che richiediamo. Anche se il tuo server e client fossero su Internet, dovresti essere in grado di sincronizzare gli orologi su 10 di ms se non hai problemi con percorsi asimmetrici e congestione della rete.
Il software client / server NTP è standard nella maggior parte dei sistemi operativi, tutto ciò che devi fare è sincronizzare entrambi i client sullo stesso server. Si noti che anche se entrambi i client sono sincronizzati individualmente sul server con una precisione di più / meno 1 ms, l'uno rispetto all'altro sono sincronizzati solo con più / meno 2 ms (uno potrebbe essere 1ms avanti rispetto al server mentre l'altro è 1ms dietro ), ma questo è ancora ben all'interno della soglia della percezione.
Una volta sincronizzati i tempi del sistema, i client riempiono il buffer iniziale e informano il server del primo periodo in cui potrebbero garantire l'avvio per la pubblicazione di tale contenuto. Una volta che il server ha ricevuto entrambe le volte, invierebbe il tempo di caso peggiore a entrambi i client e entrambi dovrebbero avviarsi in quel momento.
Infine, poiché gli orologi possono andare alla deriva nel tempo, i tuoi client e server dovrebbero mantenere la sincronizzazione degli orologi, e se il video si allontana troppo dall'audio, dovresti duplicare o saltare i fotogrammi del video per mantenere la sincronizzazione. Questo dovrebbe essere necessario solo se stai utilizzando flussi molto lunghi.
Per inciso, il motivo per la regolazione del video piuttosto che dell'audio è che è molto meno probabile notare un 1 frame dup / skip nei video (supponendo 20 fps o superiore) rispetto a un 1/60 di un secondo problema audio.