Sto lavorando a un progetto in cui i dati audio vengono trasmessi in streaming su un dispositivo. I dati audio sono codificati tramite opus e trasmessi in streaming a 20 ms di carico utile alla volta. Lo streaming viene effettuato tramite TCP per evitare completamente la perdita di pacchetti. L'obiettivo dello streaming è di avere il più vicino possibile per vivere lo streaming audio, senza perdita audio o jittering.
Attualmente ciò che accade nelle connessioni Internet più lente, l'audio potrebbe tremare un po '. Al momento non utilizzo alcun buffer, ma l'obiettivo è quello di essere il più vicino possibile al "live streaming" ma allo stesso tempo eliminare il jitter.
Ho esaminato i buffer di jitter e sembra che anche i buffer di jitter debbano gestire ritardi su entrambe le estremità in modo che entrambe le estremità siano il più possibile sincronizzate, il che suona come un eccesso per la mia situazione. Ho paura che se faccio una dimensione del buffer statico, questo rimuoverà dall'aspetto di live streaming se questo non è necessario.
Quindi questo mi lascia alcune domande, che sono tutte in qualche modo correlate.
- Che cos'è un buon metodo o algoritmo per il rilevamento della lunghezza del buffer?
- Qual è il modo migliore per iniziare ad alimentare i dati del decoder sul ricevitore? È quando il buffer raggiunge una certa quantità di millisecondi al massimo inizierà ad alimentare i dati in payload di 20 ms?
- Riesco a ritardare la riproduzione se il buffer viene riempito male?
- Il buffer sarà in byte o tempo?
Grazie mille!