FMUSER Wirless överför video och ljud enklare!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
bakgrund
MP4 är vårt vanliga videoformat och ofta när vi spelar servervideor är det direkt den begärda MP4-videokällan. Men i själva verket är detta inte bra. MP4-headerfilen [ftyp + moov] är stor, och den första uppspelningen måste ladda ner hela headerfilen och analysera den och sedan ladda ner en viss längd av det spelbara videoklippet för att kunna spelas. När videoklippets storlek ökar kommer rubrikfilen dessutom att växa och den initiala uppspelningstiden blir längre. Med tanke på denna situation behövs en metod som kan påskynda den första analysen av videon. HLS är den lösning som Apple föreslår för att lösa detta problem.
HLS
HLS är förkortningen för HTTP Live Streaming. Det är ett HTTP-baserat streamingöverföringsprotokoll för medianätverk som föreslås av Apple. Det kan stödja live och on-demand samtidigt, såväl som multi-definition, ljud och video dubbelspår, undertexter och andra funktioner. Dess princip är att dela upp en hel video i flera små videor, och hela uppspelningen bildas genom att skarva dessa segment.
HLS används ofta på mobila terminaler. De nuvarande klienterna som stöder HLS-protokollet inkluderar:
iOS 3.0 och senare stöder AVPlayer inbyggt HLS
Android 3.0 och över
Adobe Flash Player 11.0 och senare
Dess allmänna princip är följande:
1. Samla in ljud och video
2. Koda ljud och video på servern
3. Efter kodning, överlämna den till Stream Segmenter i form av MPEG-2 transportström
4. Skivaren skapar en indexfil och en ts-spellista, indexfilen används för att indikera ljud- och videopositionen och ts är ett riktigt multimediaklipp
5. Lägg resurserna från föregående steg på HTTP-servern
6. Klienten begär indexfilen för uppspelning och uppspelningsinnehållet kan hittas genom indexfilen
M3U8
Ett viktigt steg för att förverkliga HLS är det fjärde steget ovan, nämligen organisationen av indexfiler och ts-spellistor. M3U8-formatet används här. M3U8 är Unicode-versionen av M3U, 8 betyder att UTF-8-kodning används, och både M3U och M3U8 är filformat för multimedia-listor.
M3U8 formatbeskrivning
Ibland kan vi behöva ändra innehållet i M3U8-filen manuellt för testning eller i vissa speciella fall, så vi måste ha en viss förståelse för dess format. Definitionen av detta format är skrivet i RFC 8216-dokumentet. Följande är några anteckningar:
M3U8-filer måste vara kodade i UTF-8 och kan inte använda byteordning (BOM) byteordning och får inte innehålla utf-8-kontrolltecken (U + 0000 ~ U_001F och U + 007F ~ u + 009F)
Varje rad i M3U8-filinnehållet är antingen en tom rad, en URI eller en sträng som börjar med # och inga tomma tecken kan visas.
De inbyggda taggarna är alla strängar som börjar med #EXT och är skiftlägeskänsliga.
URI är innehållsvägen, som kan vara en relativ väg eller en absolut sökväg
Master M3U8-listfil
Den huvudsakliga M3U8-indexfilen används vanligtvis för att specificera flera indexkällor. Låt oss först analysera innehållet i huvudm3u8-filen hls_vod_mvp.m3u8, dess huvud är så här
Rubrikformat
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTS Kopiera kod
# EXTM3U indikerar att filen är i M3U-format, och alla M3U-formatfiler ska placera innehållet på första raden.
# EXT-X-VERSIOn anger den kompatibla versionen av spellistan, som för närvarande är 7.
# EXT-X-OBEROENDE-SEGMENT Denna tagg indikerar att alla medieprover i ett mediasegment kan avkodas oberoende utan att förlita sig på annan mediesegmentinformation.
Undertextformat
Innehållet nedan är en del bildtexter, innehållet i bildtexter är inte nödvändigt.
# EXT-X-MEDIA: TYPE = UNDERTITEL, GROUP-ID = "subs", NAMN = "Engelska", STANDARD = JA, AUTOSELECT = JA, Tvingad = NEJ, SPRÅK = "eng", URI = "undertexter / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = UNDERTITEL, GROUP-ID = "subsC", NAMN = "engelska", STANDARD = JA, AUTOSELECT = JA, Tvingad = NEJ, SPRÅK = "eng", URI = "undertexter / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = UNDERTITEL, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "undertexter / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = UNDERTITEL, GRUPP-ID = "subsC", NAMN = "japanska", STANDARD = JA, AUTOSELECT = JA, Tvingad = NEJ, SPRÅK = "jpn", URI = "undertexter / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = UNDERTITEL, GROUP-ID = "subs", NAMN = "Kinesiska", STANDARD = JA, AUTOSELECT = JA, Tvingad = NEJ, SPRÅK = "zho", URI = "undertexter / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = UNDERTITEL, GROUP-ID = "subsC", NAMN = "kinesiska", STANDARD = JA, AUTOSELECT = JA, Tvingad = NEJ, SPRÅK = "zho", URI = "undertexter / zhoc / prog_index.m3u8 "Kopiera kod
# EXT-X-MEDIA används för att ange flerspråkiga medielistresurser med samma innehåll.
TYP är resurstypen och det valfria innehållet är: LJUD, VIDEO, UNDERTITEL, STÄNGD KAPITLER.
Ovanstående innehåll ställer in TYPE = SUBTITLES, vilket är undertexttypen.
GROUP-ID är den grupp som den flerspråkiga översättningen tillhör och är en nödvändig parameter
NAME är den läsbara beskrivningsinformationen för översättningsströmmen och detta värde motsvarar displaynamnet för AVMediaSelectionOption.
STANDARD, AUTOSELECT, FORCED är tre BOOL-värden som motsvarar om översättningsströmmen är vald som standard om nödvändig information saknas. Uppspelningsströmmen spelas upp när användaren inte visar inställningarna. FORCED är endast giltigt för undertexttypen och används för att markera det aktuella automatiska valet av översättningsströmmen. .
SPRÅK används för att ange språktyp, som ställs in enligt [ISO 639-språkkoden] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm "ISO 639 språkkod") standard. När systemets standardspelare väljer undertexter, ställs namnet på listan över undertexter in enligt detta värde.
URI är platsinformationen för resursen, där den motsvarar en undertextad M3U8-fil. undertexter / eng / prog_index.m3u8 är en relativ väg,
Genom ovanstående information kan vi analysera betydelsen av ovanstående innehåll som: Den aktuella videon stöder tre undertexter: engelska, japanska och kinesiska. Men varje språk har två EXT-X-MEDIA-meddelanden. Skillnaden mellan dem är grupperingen, den ena är grupperad i subs och den andra grupperas i subsC. Varför finns det två grupper? Jag pratar om detta senare.
videoformat
Titta ner igen för indexet för videoinnehållet:
#EXT-X-STREAM-INF:BANDWIDTH=827299,AVERAGE-BANDWIDTH=747464,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970,AUDIO="program_audio",SUBTITLES=" subs"
0640 / 0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=360849,AVERAGE-BANDWIDTH=320932,CODECS="avc1.64001f",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"Copy code
EXT-X-STREAM-INF: Detta attribut anger en säkerhetskopieringskälla, det vill säga videouppspelningsvägen och lite videoinformation. Följande är konfigurationen av motsvarande innehåll: BANDBredden är toppbithastigheten, 827299 är 827299bit / s, vilket är den högsta topptiden Förbrukar 101 kB trafik per sekund.
MEDELBANDBREDD är den genomsnittliga bithastigheten 747464
CODECS kodar information, avc1.64001f, mp4a.40.2, avc representerar h264-kodningsformatet, följande 64001f är kodningsparametern representerad av hexadecimal, 64, 00, 1f representerar tre olika parametervärden. mp4a är ett ljudkodningsformat och följande 40.2 representerar ljudkodningsparametrar.
RESOLUTION är videoupplösningen. Den aktuella videokällans upplösning är 640x360.
FRAME-RATE är den maximala bildfrekvensen, 29.970 representerar den maximala bildfrekvensen för den aktuella uppspelningen är 29.970 bilder per sekund.
AUDIO är ljudgruppen och program_audio är namnet på motsvarande ljudgrupp.
Undertexter anger motsvarande undergrupp och under är namnet på motsvarande undergrupp. Ovanstående undertextinformation har ett GROUP-ID, och detta värde motsvarar det.
URI är innehållssökvägen, 0640 / 0640.m3u8 motsvarar m3u8-filvägen för videokällan. Detta kan ses i paketinfångningsinformationen.
Nedanför EXT-X-STREAM-INF finns EXT-XI-FRAME-STREAM-INF, som representerar I-ramen (nyckelramen) för multimediaresursen som finns i spellistfilen. Eftersom I-ramen bara är en bild innehåller den inte ljudinnehåll och de återstående parametrarna överensstämmer med videoinnehållsformatet.
Därefter finns det videokällor som motsvarar olika upplösningar, 1920x1080, 1280x720, 960x540, 480x270. Eftersom HLS automatiskt byter upplösning i enlighet med nätverkssituationen är flera upplösningar i allmänhet förberedda för val. Enligt analysen av de fångade uppgifterna är det första segmentet som spelas 640 upplösning, det andra till åtta segment därefter 8 upplösning, och sedan byts det till 480 upplösning.
ljudformat
Tittar ner är indexet för motsvarande ljud
# EXT-X-MEDIA: TYPE = LJUD, GROUP-ID = "program_audio", SPRÅK = "eng", NAMN = "Alternativt ljud", AUTOSELECT = JA, STANDARD = JA, URI = "audio1 / audio1.m3u8" Kopiera Koda
# EXT-X-MEDIA dök upp ovan, men nämnde inte listan för flera språk.
TYP = LJUD, den här gången är ljudet.
GROUP-ID är grupp-ID som motsvarar AUDIO-innehållet i EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 motsvarar ljudvägen.
Alternativa källor till olika kodningsformat
I huvudfilen M3U8 kan vi också se en videokälla med 640 upplösning, som inte är densamma som ovanstående 640-upplösning. Dess innehåll är så här:
#EXT-X-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,VIDEO-RANGE=SDR,CODECS="hvc1.2.4.H150.B0,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970 ,AUDIO="program_audio_0",SUBTITLES="subsC"
0640c / prog_index.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,CODECS="hvc1.2.4.H150.B0",RESOLUTION=640x360,URI="0640c/iframe_index.m3u8"
# EXT-X-MEDIA: TYPE = LJUD, GROUP-ID = "program_audio_0", SPRÅK = "eng", NAMN = "Alternativt ljud", AUTOSELECT = JA, STANDARD = JA, URI = "audioc / prog_index.m3u8" Kopiera Koda
CODECS-kodningsformatet är hvc1.2.4.H150.B0, mp4a.40.2, ljudkodningsformatet har inte ändrats men videokodningsformatet har ändrats. hvc1 är ett av HEVC (H265) kodningsformaten. Det är en ny generation videokodningsformat som lanserades av Apple. På grund av kompatibilitetsproblem kan många klienter inte analysera detta format, så det är inte särskilt populärt. Videokällor i detta format visas. Det borde vara en säkerhetskopia här. Jämförelse av två innehåll med samma upplösning kan det konstateras att bithastigheten för hvc1-format är högre än för avc1-format, vilket visar att innehållet av hvc1 är större och kompressionsförhållandet för avc1 är högre under samma upplösning.
Motsvarar videokällan i hvc1-formatet har dess gruppering av textning och ljudinnehåll ändrats, varför ovanstående undertexter har två kopior av samma språk, och de motsvarar videokällorna i avc1- och hvc1-format.
Detta är huvudlistan för M3U8. Ljud och video för detta innehåll behandlas separat, men de kan också kombineras.
M3u8-fil som innehåller medieinformation
Ta filen 0640.m3u8 som ett exempel
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X-MÅL: 7
# EXT-X-MEDIA-SEKVENS: 1
# EXT-X-PLAYLIST-TYPE: VOD
#EXTINF: 6.006,
0640_00001.ts
#EXTINF: 6.006,
0640_00002.ts
#EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLISTCopiera kod
# EXTM3U och # EXT-X-VERSION är M3U-filhuvud respektive kompatibelt versionsnummer. Detta format är en tidig version så versionsnumret är lägre än huvudfilen.
EXT-X-TARGETDURATION representerar den maximala varaktigheten för varje uppspelningssegment, 7 representerar 7 sekunder, och segmenten i den här katalogen får inte överstiga 7 sekunder.
EXT-X-MEDIA-SEQUENCE representerar sekvensnumret för det första segmentet i spellistan, och 1 representerar att play-segmentet börjar från 1.
#EXTINF representerar segmentets varaktighet, 6.006 betyder att det aktuella segmentet är 6.006s. Den totala informationen om videolängd erhålls genom att ackumulera detta värde.
0640_00001.ts är klippets relativa sökväg. Ts-filen representerar en bit video eller ljud, och den kan vara i ts, mp4, aac och andra format. Eftersom det har specificerats att öppna från 1
|
Ange e-post för att få en överraskning
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
FMUSER Wirless överför video och ljud enklare!
Kontakta oss
Adress:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Kategorier
Nyhetsbrev