Saya sedang mengerjakan proyek di mana data audio dialirkan ke perangkat. Data audio dikodekan melalui opus dan dialirkan pada 20 ms payload sekaligus. Streaming dilakukan melalui TCP untuk menghindari hilangnya paket sepenuhnya. Tujuan streaming adalah sedekat mungkin dengan streaming audio langsung, tanpa kehilangan audio, atau jittering.
Saat ini apa yang terjadi pada koneksi Internet yang lebih lambat, audio mungkin sedikit gugup. Saya tidak menggunakan buffer apa pun saat ini, tetapi tujuannya adalah untuk dapat sedekat mungkin dengan "live streaming" tetapi pada saat yang sama menghilangkan jitter.
Saya telah melihat buffer jitter, dan tampaknya buffer jitter juga seharusnya menangani penundaan di kedua ujungnya sehingga kedua ujungnya tidak sinkron, yang kedengarannya seperti kerja keras yang berlebihan untuk situasi saya. Saya khawatir jika saya membuat ukuran buffer statis, itu akan menghilangkan aspek streaming langsung jika ini tidak perlu.
Jadi ini meninggalkan saya dengan beberapa pertanyaan, yang entah bagaimana semuanya terkait.
- Apa metode atau algoritma yang baik untuk mendeteksi panjang buffer?
- Apa cara terbaik untuk mulai memasukkan data ke decoder di ujung penerima? Apakah ketika buffer mencapai jumlah milidetik penuh, itu akan mulai memberi makan data dalam 20 ms payloads?
- Apakah saya menunda bermain jika buffer kurang terisi?
- Apakah buffer dalam byte atau panjang waktu?
Terima kasih banyak!