Tôi đang làm việc trong một dự án nơi dữ liệu âm thanh được truyền đến thiết bị. Dữ liệu âm thanh được mã hóa thông qua opus và được truyền phát với tải trọng 20 ms mỗi lần. Việc truyền phát được thực hiện thông qua TCP để tránh mất gói hoàn toàn. Mục tiêu của phát trực tuyến là có càng gần càng tốt để truyền phát âm thanh trực tiếp, không bị mất âm thanh hoặc bị giật.
Hiện tại những gì xảy ra trên các kết nối Internet chậm hơn, âm thanh có thể bị nhiễu một chút. Tôi hiện không sử dụng bất kỳ bộ đệm nào, nhưng mục tiêu là có thể có khả năng "phát trực tiếp" gần nhất có thể nhưng đồng thời loại bỏ được jitter.
Tôi đã xem xét bộ đệm jitter và có vẻ như bộ đệm jitter cũng có nghĩa vụ xử lý độ trễ ở cả hai đầu để cả hai đầu càng đồng bộ càng tốt, nghe có vẻ quá mức cho tình huống của tôi. Tôi sợ rằng nếu tôi tạo kích thước bộ đệm tĩnh, nó sẽ mất đi khía cạnh phát trực tiếp nếu điều này không cần thiết.
Vì vậy, điều này để lại cho tôi một vài câu hỏi, tất cả đều liên quan đến nhau.
- Một phương pháp hay thuật toán tốt để phát hiện chiều dài bộ đệm là gì?
- Cách tốt nhất để bắt đầu cung cấp dữ liệu cho bộ giải mã ở đầu thu? Có phải khi bộ đệm đạt đến một lượng mili giây nhất định, nó sẽ bắt đầu cung cấp dữ liệu trong tải trọng 20 ms?
- Tôi có trì hoãn phát nếu bộ đệm bị thiếu không?
- Bộ đệm sẽ được tính bằng byte hoặc thời gian?
Cám ơn rất nhiều!