Như đã thảo luận trong một previous question, tôi đã xây dựng một mẫu thử nghiệm (sử dụng API MVC Web, NAudio và NAudio.Lame) đang phát trực tiếp âm thanh chất lượng thấp sau khi chuyển đổi thành mp3. Luồng nguồn là PCM: 8K, 16-bit, mono và tôi đang sử dụng thẻ âm thanh của html5.HTML5 <audio> lựa chọn kém cho phát trực tuyến?
On cả Chrome và IE11 có một 15-34 giây chậm trễ (cao độ trễ) trước khi âm thanh được nghe từ trình duyệt mà, tôi nói, là không thể chấp nhận cho người dùng cuối của chúng tôi. Lý tưởng nhất là độ trễ sẽ không lớn hơn 5 giây. Sự chậm trễ xảy ra ngay cả khi sử dụng thuộc tính preload = "none" trong thẻ âm thanh của tôi.
Xem xét kỹ hơn vấn đề, có vẻ như cả hai trình duyệt sẽ không bắt đầu phát âm thanh cho đến khi chúng nhận được ~ 32K dữ liệu âm thanh. Với ý nghĩ đó, tôi có thể ảnh hưởng đến độ trễ bằng cách thay đổi cài đặt bitrate của 'Lrate' MP3. Tuy nhiên, nếu tôi giảm độ trễ (bằng cách gửi nhiều dữ liệu hơn cho trình duyệt với cùng độ dài âm thanh), tôi sẽ giới thiệu bản âm thanh sau đó.
Ví dụ:
- Nếu tôi sử dụng mã hóa Lame V0 của sự trì hoãn là gần 34 giây mà đòi hỏi gần 0,5 MB bộ âm thanh nguồn.
- Nếu tôi sử dụng mã hóa ABR_32 của Lame, tôi có thể giảm thời gian trễ xuống 10-15 giây nhưng tôi sẽ tạm dừng và bỏ qua trong suốt phiên nghe.
Câu hỏi:
- Bất kỳ ý tưởng làm thế nào tôi có thể giảm thiểu sự chậm trễ khởi động (độ trễ)?
- Tôi có nên tiếp tục điều tra các cài đặt trước của Lame khác nhau với hy vọng chọn "đúng" không?
- Có thể là MP3 là không phải là định dạng tốt nhất cho số phát trực tuyến phát trực tuyến?
- Chuyển sang hỗ trợ Ogg/Vorbis (hoặc Ogg/OPUS)?
- Chúng tôi có cần từ bỏ thẻ âm thanh của HTML5 và sử dụng Flash hoặc applet java không?
Cảm ơn.