FMUSER Wirless transmet la vidéo et l'audio plus facilement!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
HLS et Http Live Streaming sont des protocoles de streaming en temps réel définis par Apple. HLS est implémenté sur la base du protocole HTTP. Le contenu de la transmission comprend deux parties, l'une est le fichier de description M3U8 et l'autre est le fichier multimédia TS.
1. Fichier M3U8
Le fichier multimédia est décrit sous forme de texte, composé d'une série de balises.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: La première ligne de chaque fichier M3U8 doit être cette balise.
# EXT-X-TARGETDURATION: spécifiez la durée maximale du segment multimédia (secondes). La durée spécifiée dans #EXTINF doit être inférieure ou égale à cette valeur maximale. Cette valeur ne peut apparaître qu'une seule fois.
#EXTINF: Décrivez la longueur d'un seul fichier multimédia. Les fichiers multimédias suivent, tels que ./0.ts
Il peut être distribué par HTTP sur un appareil iOS et un mac. Le standard de la playlist est le fichier m3u8 étendu par m3u, et le fichier multimédia est un fichier MPEG2-TS ou AAC (audio uniquement).
Il existe deux scénarios d'application pour les fichiers m3u8:
Flux d'adaptation multi-débits,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Flux d'adaptation de débit unique
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
L'Organisation internationale de normalisation définit ce document rfc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Le fichier m3u8 est une extension du fichier m3u. Les mots clés étendus sont définis dans le rfc:
parmi eux:
# EXT-X-TARGETDURATION
Définissez la durée maximale de chaque TS.
# EXT-X-MEDIA-SEQUENCE
Définissez le numéro de série du premier fichier dans le fichier m3u8 actuel. Chaque fichier ts a un numéro de série fixe et unique dans le fichier m3u8. Le numéro de série est utilisé pour changer le taux de code pour l'alignement pendant le MBR.
# EXT-X-KEY
Définissez la méthode de cryptage et l'url du fichier de clé, utilisé pour obtenir le fichier de clé de 16 octets pour décoder le fichier ts.
Attributs:
MÉTHODE
URL
# EXT-X-PROGRAMME-DATE-HEURE
Heure absolue du premier fichier
# EXT-X-ALLOW-CACHE
Autoriser ou non le cache.
# EXT-X-ENDLIST
Indique la fin du fichier m3u8. Live m3u8 n'a pas cette balise.
# EXT-X-STREAM-INF
Attributs:
BANDWIDTH spécifie le débit binaire
ID unique de PROGRAM-ID
CODECS spécifie le type d'encodage du flux
# EXT-X-DISCONTINUITÉ
Lorsque la balise est rencontrée, les attributs suivants ont changé:
format de fichier
nombre et type de pistes
paramètres de codage
séquence de codage
séquence d'horodatage
# EXT-X-VERSION Cet attribut peut être utilisé ou non, vous ne pouvez en avoir aucun
M3U8 est divisé en M3U8 de niveau supérieur et M3U8 de deuxième niveau. Le M3U8 de niveau supérieur est principalement utilisé pour l'adaptation à plusieurs débits. Le M3U8 de deuxième niveau est le vrai fichier de tranche.
Par défaut, le client sélectionnera d'abord la demande avec le débit binaire le plus élevé. S'il constate que le débit ne peut pas être atteint, il demandera un flux avec un débit binaire faible
Un fichier M3U8 de niveau supérieur en cours d'utilisation est le suivant:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 972800
22.m3u8
Le fichier M3U8 de niveau supérieur ci-dessus définit deux fichiers de deuxième niveau, 11.m3u8 et 22.m3u8, et le client en sélectionnera un pour obtenir son contenu.
Le contenu du fichier M3U8 secondaire est le suivant:
#EXTM3U
# VERSION EXT-X: 1
# EXT-X-TARGETDURATION: 10
# EXT-X-MEDIA-SEQUENCE: 0
#EXTINF: 3,
1-4.ts
#EXTINF: 8,
1-6.ts
#EXTINF: 8,
1-8.ts
#EXTINF: 8,
1-10.ts
#EXTINF: 8,
1-12.ts
#EXTINF: 8,
1-14.ts
#EXTINF: 8,
1-16.ts
#EXTINF: 9,
1-18.ts
#EXTINF: 6,
1-20.ts
#EXTINF: 8,
1-22.ts
#EXTINF: 9,
1-24.ts
#EXTINF: 3,
1-26.ts
# EXT-X-ENDLIST
Une fois que le client a obtenu le fichier M3U8 secondaire ci-dessus, il continuera à demander le fichier à l'intérieur, puis il pourra être lu.
Ce qui précède concerne la situation à la demande et la situation de la diffusion en direct, il y aura des attributs dans le fichier M3U8 pour indiquer qu'il est en direct, et le client demandera périodiquement de nouveaux fichiers M3U8.
// Lorsque HLS réalise une diffusion à la demande et en direct, la différence du fichier M3U8
1. Description du problème
Récemment, j'ai fait un test de lecture de tranche transcodée, en utilisant HLS (HTTP Live Streaming) pour faire la diffusion en direct. Chaque temps de segmentation TS est de 10 s, et les fichiers m3u8 en direct suivants sont générés selon les fichiers de segmentation TS
Copier le code
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
#EXTINF: 10
hls / 4.ts
#EXTINF: 10
hls / 5.ts
#EXTINF: 10
hls / 6.ts
#EXTINF: 10
hls / 7.ts
#EXTINF: 10
hls / 8.ts
#EXTINF: 10
hls / 9.ts
#EXTINF: 10
hls / 10.ts
Copier le code
Enregistrez le fichier m3u8 ci-dessus en tant que live.m3u8, placez-le dans le répertoire de documents Apache et lisez l'URL suivante avec VLC:
http://localhost/live.m3u8
Le test a révélé que le premier fichier à commencer la lecture n'était pas 1.ts. Après plusieurs tests, il a été constaté que:
Tant qu'il y a plus de trois fichiers dans la liste, les trois derniers fichiers de la liste sont toujours lus
2. Résolution de problème
C'est très triste qu'après avoir cherché sur Internet, je n'ai trouvé aucune information efficace. Un copain a rencontré la même situation, a-t-il partagé son expérience après l'avoir résolue?
Après avoir consulté un collègue, le collègue a déclaré que c'était possible car la liste des fichiers m3u8 en direct doit être mise à jour en temps réel. Si nous faisons un test, nous pouvons d'abord ajouter # EXT-X-ENDLIST à la fin. Cette méthode a été testée Cela fonctionne, mais ce n'est plus le mode m3u8 live
Après avoir cherché à nouveau sur Internet, j'ai confirmé que j'avais enfin trouvé une description m3u8 en direct
Liste de lecture en direct (fenêtre coulissante)
Pour les sessions en direct, le fichier d'index est mis à jour en supprimant les URI de média du fichier à mesure que de nouveaux fichiers multimédias sont créés et rendus disponibles.
Important: la balise EXT-X-ENDLIST n'est pas présente dans la liste de lecture Live, ce qui indique que de nouveaux fichiers multimédias seront ajoutés au fichier d'index dès qu'ils seront disponibles.
Voir le Listing 3 pour un exemple de playlist en direct tel qu'il apparaîtrait au début d'une session.
Liste 3 Live Playlist au début d'une session.
Copier le code
#EXTM3U
# EXT-X-TARGETDURATION: 10
# VERSION EXT-X: 3
# EXT-X-MEDIA-SEQUENCE: 1
#EXTINF: 10,
fichierSequence1.ts
#EXTINF: 10,
fichierSequence2.ts
#EXTINF: 10,
fichierSequence3.ts
#EXTINF: 10,
fichierSequence4.ts
#EXTINF: 10,
fichierSequence5.ts
Copier le code
La valeur de la balise EXT-X-MEDIA-SEQUENCE DOIT être incrémentée de 1 pour chaque URI multimédia qui est supprimée du fichier de liste de lecture. L'URI du média doit être supprimé du fichier de liste de lecture dans l'ordre dans lequel ils apparaissent dans la liste de lecture. Le fichier d'index mis à jour présente une fenêtre mobile dans un flux continu. Ce type de session convient aux diffusions en continu.
Voici la même liste de lecture après sa mise à jour avec les nouveaux URI multimédias:
Liste 4 Live Playlist après la mise à jour des URI des médias.
Copier le code
#EXTM3U
# EXT-X-TARGETDURATION: 10
# VERSION EXT-X: 3
# EXT-X-MEDIA-SEQUENCE: 2
#EXTINF: 10,
fichierSequence2.ts
#EXTINF: 10,
fichierSequence3.ts
#EXTINF: 10,
fichierSequence4.ts
#EXTINF: 10,
fichierSequence5.ts
#EXTINF: 10,
fichierSequence6.ts
Copier le code
Règles de mise à jour 3.live m3u8
La liste des fichiers m3u8 en direct doit être mise à jour en permanence, mettre à jour les règles:
Supprimez le premier fichier (pensez lu) dans une liste de lecture de fichiers
Mettre à jour en permanence le tag EXT-X-MEDIA-SEQUENCE, incrémenter de 1
4. Expérience
Ecrire un petit programme pour générer des m3u8 en direct pour les tests
Usage:
m3u8_gen.exe start_num list_count durée nom_fichier.m3u8 [préfixe]
Exemple d'utilisation:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Générer le fichier live.m3u8 comme
Copier le code
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Copier le code
Ecrire un script BAT pour mettre à jour le fichier live.m3u8 toutes les 10 s
Copier le code
@ Echo off
f
|
Entrez l'email pour avoir une surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
FMUSER Wirless transmet la vidéo et l'audio plus facilement!
Contactez-Nous
Adresse :
No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620
Catégories
Newsletter