FMUSER Wirless Verzend video en audio eenvoudiger!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
HLS en Http Live Streaming zijn door Apple gedefinieerde protocollen voor real-time streaming. HLS wordt geïmplementeerd op basis van het HTTP-protocol. De transmissie-inhoud bestaat uit twee delen: het ene is het M3U8-beschrijvingsbestand en het andere is het TS-mediabestand.
1. M3U8-bestand
Het mediabestand wordt beschreven in tekst, die is samengesteld uit een reeks tags.
#EXTM3U
# EXT-X-DOELDUUR: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: De eerste regel van elk M3U8-bestand moet deze tag zijn.
# EXT-X-TARGETDURATION: Specificeer de maximale duur van het mediasegment (seconden). De tijdsduur die is opgegeven in #EXTINF, moet kleiner zijn dan of gelijk zijn aan deze maximale waarde. Deze waarde kan maar één keer voorkomen.
#EXTINF: Beschrijf de lengte van een enkel mediabestand. Mediabestanden volgen, zoals ./0.ts
Het kan worden gedistribueerd via HTTP op iOS-apparaat en Mac. De afspeellijststandaard is het m3u8-bestand uitgebreid met m3u, en het mediabestand is MPEG2-TS- of AAC-bestand (alleen audio).
Er zijn twee toepassingsscenario's voor m3u8-bestanden:
Aanpassingsstroom met meerdere snelheden,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAMMA-ID = 1, BANDBREEDTE = 1280000
# EXT-X-STREAM-INF: PROGRAMMA-ID = 1, BANDBREEDTE = 2560000
# EXT-X-STREAM-INF: PROGRAMMA-ID = 1, BANDBREEDTE = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Aanpassingsstroom met één snelheid
#EXTM3U
# EXT-X-DOELDUUR: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
De International Standards Organization definieert dit rfc-document:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Het m3u8-bestand is een extensie van het m3u-bestand. De uitgebreide trefwoorden zijn gedefinieerd in de rfc:
onder hen:
# EXT-X-DOELDUUR
Definieer de maximale duur van elke TS.
# EXT-X-MEDIA-SEQUENTIE
Definieer het serienummer van het eerste bestand in het huidige m3u8-bestand. Elk ts-bestand heeft een vast en uniek serienummer in het m3u8-bestand. Het serienummer wordt gebruikt om de codesnelheid voor uitlijning tijdens MBR te wijzigen.
# EXT-X-SLEUTEL
Definieer de versleutelingsmethode en de url van het sleutelbestand, dat wordt gebruikt om het 16 bytes sleutelbestand op te halen om het ts-bestand te decoderen.
Attributen:
METHODE
URL
# EXT-X-PROGRAMMA-DATUM-TIJD
Absolute tijd van het eerste bestand
# EXT-X-ALLOW-CACHE
Of cache moet worden toegestaan.
# EXT-X-ENDLIST
Geeft het einde van het m3u8-bestand aan. Live m3u8 heeft deze tag niet.
# EXT-X-STREAM-INF
Attributen:
BANDWIDTH specificeert de bitsnelheid
PROGRAMMA-ID unieke ID
CODECS specificeert het coderingstype van de stream
# EXT-X-DISCONTINUITY
Wanneer de tag wordt aangetroffen, zijn de volgende kenmerken gewijzigd:
bestandsformaat
aantal en type tracks
coderingsparameters
coderende sequentie
tijdstempel volgorde
# EXT-X-VERSION Dit attribuut kan worden gebruikt of niet, u kunt er geen hebben
M3U8 is onderverdeeld in M3U8 op het hoogste niveau en M3U8 op het tweede niveau. De M3U8 van het hoogste niveau wordt voornamelijk gebruikt voor aanpassing op meerdere snelheden. De M3U8 van het tweede niveau is het echte slice-bestand.
Standaard selecteert de client eerst het verzoek met de hoogste bitrate. Als het merkt dat de bitrate niet kan worden bereikt, zal het een stream met een lage bitrate aanvragen
Een M3U8-bestand op het hoogste niveau dat daadwerkelijk wordt gebruikt, is als volgt:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAMMA-ID = 201273221265, BANDBREEDTE = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAMMA-ID = 201273221265, BANDBREEDTE = 972800
22.m3u8
Het M3U8-bestand op het hoogste niveau hierboven definieert twee bestanden op het tweede niveau, 11.m3u8 en 22.m3u8, en de klant zal er een selecteren om de inhoud op te halen.
De inhoud van het secundaire M3U8-bestand is als volgt:
#EXTM3U
# EXT-X-VERSIE: 1
# EXT-X-DOELDUUR: 10
# EXT-X-MEDIA-SEQUENTIE: 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
Nadat de client het bovenstaande secundaire M3U8-bestand heeft ontvangen, blijft het het bestand binnenin opvragen en kan het worden afgespeeld.
Het bovenstaande gaat over de on-demand situatie en de situatie van live-uitzending, er zullen attributen in het M3U8-bestand zijn om aan te geven dat het live is, en de klant zal periodiek nieuwe M3U8-bestanden opvragen.
// Wanneer HLS on-demand en live-uitzending realiseert, is het verschil met M3U8-bestand
1. Probleembeschrijving
Onlangs heb ik een transcoded slice-afspeeltest gedaan, met behulp van HLS (HTTP Live Streaming) om de live-uitzending te doen. Elke TS-segmentatietijd is 10 seconden en de volgende live m3u8-bestanden worden gegenereerd volgens de TS-segmentatiebestanden
Kopieer code
#EXTM3U
# EXT-X-MEDIA-SEQUENTIE: 1
# EXT-X-DOELDUUR: 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
Kopieer code
Sla het bovenstaande m3u8-bestand op als live.m3u8, plaats het in de Apache-documentdirectory en speel de volgende URL af met VLC:
http://localhost/live.m3u8
Uit de test bleek dat het eerste bestand dat werd afgespeeld niet 1.ts was. Na verschillende tests werd vastgesteld dat:
Zolang er meer dan drie bestanden in de lijst staan, worden altijd de laatste drie bestanden in de lijst afgespeeld
2. Probleemoplossing
Het is heel triest dat ik na het zoeken op internet geen effectieve informatie heb gevonden. Een buddy kwam in dezelfde situatie terecht, deelde hij zijn ervaring nadat hij deze had opgelost?
Na overleg met een collega zei de collega dat het mogelijk is omdat de live m3u8-bestandslijst in realtime moet worden bijgewerkt. Als we een test doen, kunnen we aan het einde eerst # EXT-X-ENDLIST toevoegen. Deze methode is getest. Het werkt, maar dit is niet langer de live m3u8-modus
Na opnieuw op internet te hebben gezocht, bevestigde ik dat ik eindelijk een live m3u8-beschrijving had gevonden
Live-afspeellijst (schuifvenster)
Voor live-sessies wordt het indexbestand bijgewerkt door media-URI's uit het bestand te verwijderen wanneer nieuwe mediabestanden worden gemaakt en beschikbaar worden gesteld.
Belangrijk: de EXT-X-ENDLIST-tag is niet aanwezig in de Live-afspeellijst, wat aangeeft dat nieuwe mediabestanden aan het indexbestand zullen worden toegevoegd zodra ze beschikbaar komen.
Zie Listing 3 voor een voorbeeld van een live-afspeellijst zoals deze aan het begin van een sessie zou verschijnen.
3 Live-afspeellijsten aan het begin van een sessie weergeven.
Kopieer code
#EXTM3U
# EXT-X-DOELDUUR: 10
# EXT-X-VERSIE: 3
# EXT-X-MEDIA-SEQUENTIE: 1
#EXTINF: 10,
bestandSequence1.ts
#EXTINF: 10,
bestandSequence2.ts
#EXTINF: 10,
bestandSequence3.ts
#EXTINF: 10,
bestandSequence4.ts
#EXTINF: 10,
bestandSequence5.ts
Kopieer code
De waarde van de EXT-X-MEDIA-SEQUENCE-tag MOET met 1 worden verhoogd voor elke media-URI die uit het afspeellijstbestand wordt verwijderd. Media-URI's moeten uit het afspeellijstbestand worden verwijderd in de volgorde waarin ze in de afspeellijst verschijnen. Het bijgewerkte indexbestand presenteert een bewegend venster in een continue stroom. Dit type sessie is geschikt voor continue uitzendingen.
Hier is dezelfde afspeellijst nadat deze is bijgewerkt met nieuwe media-URI's:
Listing 4 Live Playlist na het updaten van de media-URI's.
Kopieer code
#EXTM3U
# EXT-X-DOELDUUR: 10
# EXT-X-VERSIE: 3
# EXT-X-MEDIA-SEQUENTIE: 2
#EXTINF: 10,
bestandSequence2.ts
#EXTINF: 10,
bestandSequence3.ts
#EXTINF: 10,
bestandSequence4.ts
#EXTINF: 10,
bestandSequence5.ts
#EXTINF: 10,
bestandSequence6.ts
Kopieer code
3. live m3u8-updateregels
De lijst met live m3u8-bestanden moet continu worden bijgewerkt, update regels:
Verwijder het bovenste (denk gespeelde) bestand in een afspeellijst met bestanden
Werk de EXT-X-MEDIA-SEQUENCE-tag continu bij, oplopend met 1
4. Experimenteren
Schrijf een klein programma om live m3u8 te genereren om te testen
Gebruik:
m3u8_gen.exe start_num list_count duur bestandsnaam.m3u8 [prefix]
Gebruiksvoorbeeld:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Genereer live.m3u8-bestand als
Kopieer code
#EXTM3U
# EXT-X-MEDIA-SEQUENTIE: 1
# EXT-X-DOELDUUR: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Kopieer code
Schrijf een BAT-script om het live.m3u8-bestand elke 10 seconden bij te werken
Kopieer code
@ Echo off
f
|
Voer een e-mailadres in om een verrassing te ontvangen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
FMUSER Wirless Verzend video en audio eenvoudiger!
Neem contact op
Adres:
No.305 Zaal HuiLan Gebouw No.273 Huanpu Road Guangzhou China 510620
Categorieën
Nieuwsbrief