Extension de source multimédia ( MSE ) requiert un mp4 fragmenté pour la lecture dans le navigateur.
Un MP4 fragmenté contient une série de segments qui peuvent être demandés individuellement si votre serveur prend en charge les demandes de plage d'octets.
Tous les fichiers MP4 utilisent un format orienté objet qui contient cases aka atomes .
Vous pouvez afficher une représentation des cases de votre MP4 à l'aide d'un outil en ligne tel que MP4 Parser ou, si vous utilisez Windows, MP4 Explorer . Comparons un MP4 normal avec un autre fragmenté:
Cette capture d'écran (de MP4 Parser ) montre un MP4 qui n'a pas été fragmenté et qui possède tout simplement une boîte massive mdat
(données de film).
Si nous construisions un lecteur vidéo prenant en charge le débit adaptatif, nous aurions peut-être besoin de connaître la position d'octet de la marque de 10 secondes dans un fichier de 0,5 Mbit/s et d'un fichier de 1 Mbit/s afin de permuter la source vidéo entre les deux fichiers à ce moment. Déterminer cette position d'octet exacte dans un mdat
massif dans chaque fichier respectif n'est pas trivial.
Cette capture d'écran montre un MP4 fragmenté qui a été segmenté à l'aide de MP4Box avec le profil onDemand
.
Vous remarquerez les sidx
et les séries de moof
+ mdat
. sidx
est l'index de segment et stocke les métadonnées des emplacements précis de la plage d'octets des segments moof
+ mdat
.
Pour l'essentiel, vous pouvez charger indépendamment le sidx
(sa plage d'octets sera définie dans le .mpd
Media Presentation Descriptor), puis choisissez les segments que vous souhaitez charger par la suite et ajoutez-les au MSE SourceBuffer .
Il est important de noter que chaque segment est créé à un intervalle régulier de votre choix (c'est-à-dire toutes les 5 secondes) afin que les segments puissent être alignés temporellement sur des fichiers de débits différents, ce qui facilite l'adaptation du débit pendant la lecture.