Je travaille sur un site Web qui doit diffuser des vidéos en direct aux utilisateurs, et en tant que tel, j'ai dû me renseigner sur l'état désolant de la technologie actuelle de streaming vidéo sur navigateur. Les solutions les plus populaires pour la diffusion en direct à l'heure actuelle ont toutes des problèmes de compatibilité; RTMP nécessite Flash, HLS est uniquement pris en charge nativement sur Safari et Chrome pour Android, DASH n'est pris en charge nativement nulle part et l'utilisation de dash.js nécessite des extensions de source multimédia , qui ne sont pas encore largement prises en charge.
Cela m'amène à une question qui me semble évidente: est-il possible d'utiliser le téléchargement progressif simple comme alternative aux protocoles tels que HLS, RTMP et DASH qui nécessitent soit un support de navigateur, soit des plugins?
L'idée d'utiliser le téléchargement progressif pour diffuser des médias en direct n'est pas sans précédent; les gens le font déjà pour l'audio. Des outils comme liveCaster vous permettent de diffuser de l'audio MP3 en direct via une seule réponse HTTP progressive sans avoir besoin d'un fichier MP3 préenregistré, et des bibliothèques comme AmplitudeJS ont fait tout leur possible pour ajouter des fonctionnalités liées à ce type de streaming audio en direct .
Je n'ai pas vu d'exemples de cette technique utilisée dans la nature pour la vidéo , cependant, et je ne peux pas dire pourquoi. Il semble que cela supprimerait une couche de problèmes de compatibilité difficiles et difficiles à gérer pour le navigateur pour un compromis relativement faible. (Et la compatibilité est toujours un énorme problème pour la diffusion en direct, même lorsque les pros le font; si j'essaie de regarder des vidéos en direct sur iPlayer de la BBC dans Firefox, cela me donne juste un message d'erreur me disant d'installer Flash.) Pourtant, personne n'utilise cette technique, et je n'ai jamais vu personne mentionner cette idée à part moi.
Pourquoi? Y a-t-il une limitation fondamentale que je ne vois pas qui rendrait impossible de simplement diffuser un fichier vidéo comme un MP4 via un téléchargement progressif lors de sa génération, et de le lire dans un <video>
élément lors du téléchargement?