FMUSER Wirless Transmit video și audio mai ușor!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albaneză
ar.fmuser.org -> arabă
hy.fmuser.org -> Armeană
az.fmuser.org -> azeră
eu.fmuser.org -> bască
be.fmuser.org -> bielorusă
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> catalană
zh-CN.fmuser.org -> Chineză (simplificată)
zh-TW.fmuser.org -> Chineză (tradițională)
hr.fmuser.org -> croată
cs.fmuser.org -> cehă
da.fmuser.org -> Daneză
nl.fmuser.org -> Dutch
et.fmuser.org -> estonă
tl.fmuser.org -> filipinez
fi.fmuser.org -> finlandeză
fr.fmuser.org -> Franceză
gl.fmuser.org -> Galeză
ka.fmuser.org -> Georgiană
de.fmuser.org -> germană
el.fmuser.org -> greacă
ht.fmuser.org -> Creole haitian
iw.fmuser.org -> ebraică
hi.fmuser.org -> Hindi
hu.fmuser.org -> Maghiară
is.fmuser.org -> islandeză
id.fmuser.org -> indoneziană
ga.fmuser.org -> irlandeză
it.fmuser.org -> Italiană
ja.fmuser.org -> japoneză
ko.fmuser.org -> coreeană
lv.fmuser.org -> letonă
lt.fmuser.org -> lituaniană
mk.fmuser.org -> macedoneană
ms.fmuser.org -> Malay
mt.fmuser.org -> malteză
no.fmuser.org -> norvegiană
fa.fmuser.org -> persană
pl.fmuser.org -> poloneză
pt.fmuser.org -> portugheză
ro.fmuser.org -> Română
ru.fmuser.org -> rusă
sr.fmuser.org -> sârbă
sk.fmuser.org -> slovacă
sl.fmuser.org -> Slovenă
es.fmuser.org -> spaniolă
sw.fmuser.org -> Swahili
sv.fmuser.org -> suedeză
th.fmuser.org -> Thai
tr.fmuser.org -> turcă
uk.fmuser.org -> ucraineană
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnameză
cy.fmuser.org -> galeză
yi.fmuser.org -> idiș
fundal
MP4 este formatul nostru video comun și, adesea, atunci când redăm videoclipuri de pe server, este direct sursa video MP4 solicitată. Dar, de fapt, acest lucru nu este bun. Fișierul antet MP4 [ftyp + moov] este mare, iar redarea inițială trebuie să descarce fișierul antet complet și să-l analizeze, apoi să descarce o anumită lungime a videoclipului redabil pentru a fi redat. În plus, pe măsură ce crește dimensiunea videoclipului, fișierul antet va continua să crească, iar timpul de redare inițială va fi mai lung. Având în vedere această situație, este necesară o metodă care poate accelera analiza inițială a videoclipului. HLS este soluția propusă de Apple pentru a rezolva această problemă.
HLS
HLS este abrevierea HTTP Live Streaming. Este un protocol de transmisie a rețelei media streaming pe bază de HTTP, propus de Apple. Poate suporta simultan live și la cerere, precum și multi-definiție, audio și video dual-track, subtitrări și alte funcții. Principiul său este de a împărți un videoclip întreg în mai multe videoclipuri mici, iar redarea completă se formează prin îmbinarea acestor segmente.
HLS este utilizat pe scară largă pe terminalele mobile. Clienții actuali care acceptă protocolul HLS includ:
iOS 3.0 și versiuni ulterioare, AVPlayer acceptă nativ HLS
Android 3.0 și de mai sus
Adobe Flash Player 11.0 și versiuni ulterioare
Principiul său general este acesta:
1. Colectează audio și video
2. Codificați audio și video pe server
3. După codificare, predați-l către segmentul de flux sub formă de flux de transport MPEG-2
4. Slicerul creează un fișier index și o listă de redare ts, fișierul index este utilizat pentru a indica poziția audio și video, iar ts este un clip multimedia real
5. Puneți resursele pasului anterior pe serverul HTTP
6. Clientul solicită fișierul index pentru redare, iar conținutul redării poate fi găsit prin fișierul index
M3U8
Un pas cheie pentru realizarea HLS este al patrulea pas de mai sus, și anume organizarea fișierelor index și a listelor de redare ts. Aici este utilizat formatul M3U8. M3U8 este versiunea Unicode a M3U, 8 înseamnă că este utilizată codarea UTF-8 și atât M3U, cât și M3U8 sunt formate de fișiere pentru liste multimedia.
Descrierea formatului M3U8
Uneori este posibil să fie nevoie să modificăm manual conținutul fișierului M3U8 pentru testare sau în unele cazuri speciale, deci trebuie să avem o anumită înțelegere a formatului său. Definiția acestui format este scrisă în documentul RFC 8216. Următoarele sunt câteva note:
Fișierele M3U8 trebuie să fie codificate în UTF-8 și să nu poată utiliza ordinea de octeți Byte Order Mark (BOM) și nu pot conține caractere de control utf-8 (U + 0000 ~ U_001F și U + 007F ~ u + 009F)
Fiecare linie a conținutului fișierului M3U8 este fie o linie goală, un URI sau un șir care începe cu # și nu pot apărea caractere goale.
Etichetele încorporate sunt toate șiruri care încep cu #EXT și sunt sensibile la majuscule.
URI este calea conținutului, care poate fi o cale relativă sau o cale absolută
Fișier listă Master M3U8
Fișierul principal index M3U8 este utilizat în general pentru a specifica mai multe surse de index. Să analizăm mai întâi conținutul fișierului principal m3u8 hls_vod_mvp.m3u8, capul său este astfel
Format antet
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTSCopiați codul
# EXTM3U indică faptul că fișierul este în format M3U și toate fișierele în format M3U ar trebui să plaseze conținutul pe prima linie.
# EXT-X-VERSIOn indică versiunea compatibilă a listei de redare, care este în prezent 7.
# EXT-X-INDEPENDENT-SEGMENTS Această etichetă indică faptul că toate eșantioanele media dintr-un segment media pot fi decodate independent fără a se baza pe alte informații din segmentul media.
Formatul subtitrării
Conținutul de mai jos este o serie de subtitrări, conținutul subtitrărilor nu este necesar.
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zhoc / prog_index.m3u8 "Copiați codul
# EXT-X-MEDIA este utilizat pentru a specifica resurse de listă de materiale multilingve cu același conținut.
TIP este tipul de resursă, iar conținutul opțional este: AUDIO, VIDEO, SUBTITLURI, CAPTURI ÎNCHIS.
Conținutul de mai sus setează TYPE = SUBTITLES, care este tipul de subtitrare.
GROUP-ID este grupul căruia îi aparține traducerea multilingvă și este un parametru obligatoriu
NAME este informația de descriere lizibilă a fluxului de traducere, iar această valoare corespunde displayName-ului AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED sunt trei valori BOOL care corespund dacă fluxul de traducere este selectat în mod implicit dacă lipsesc informațiile necesare. Fluxul de redare este redat atunci când utilizatorul nu afișează setările. FORCED este valabil numai pentru tipul de subtitrare și este utilizat pentru a marca selecția automată curentă a fluxului de traducere. .
LIMBA este utilizată pentru a specifica tipul de limbă, care este setat în conformitate cu [codul de limbă ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm „Cod de limbă ISO 639”) standard. Când playerul implicit al sistemului selectează subtitrări, numele listei de subtitrări afișate este setat în funcție de această valoare.
URI este informația de localizare a resursei, unde corespunde unui fișier M3U8 subtitrat. subtitrări / eng / prog_index.m3u8 este o cale relativă,
Prin intermediul informațiilor de mai sus, putem analiza semnificația conținutului de mai sus ca: Videoclipul curent acceptă trei subtitrări: engleză, japoneză și chineză. Dar fiecare limbă are două mesaje EXT-X-MEDIA. Diferența dintre ele este gruparea, una este grupată în subs și cealaltă este grupată în subsC. De ce există două grupuri? Voi vorbi despre asta mai târziu.
Format video
Uită-te din nou în jos, pentru indexul conținutului video:
#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: Acest atribut specifică o sursă de rezervă, adică calea de redare video și câteva informații video. Următoarea este configurația conținutului corespunzător: BANDWIDTH este viteza de vârf de vârf, 827299 este 827299bit / s, care este cel mai mare timp de vârf Consumă 101 KB de trafic pe secundă.
MEDIA-LĂȚIME DE BANDĂ este rata de biți medie, 747464
CODECS codifică informații, avc1.64001f, mp4a.40.2, avc reprezintă formatul de codare h264, următorul 64001f este parametrul de codificare reprezentat de hexazecimal, 64, 00, 1f respectiv reprezintă trei valori diferite ale parametrilor. mp4a este un format de codare audio, iar următorul 40.2 reprezintă parametrii de codare audio.
RESOLUTION este rezoluția video. Rezoluția actuală a sursei video este de 640x360.
FRAME-RATE este rata maximă de cadre, 29.970 reprezintă rata maximă de cadre a redării curente este de 29.970 cadre pe secundă.
AUDIO este grupul audio, iar program_audio este numele grupului audio corespunzător.
SUBTITLURI indică grupul de subtitrări corespunzător, iar subs este numele grupului de subtitrări corespunzător. Informațiile de subtitrare de mai sus au un ID-GRUP și această valoare îi corespunde.
URI este calea conținutului, 0640 / 0640.m3u8 corespunde căii fișierului m3u8 a sursei video. Acest lucru poate fi văzut în informațiile de captare a pachetelor.
Sub EXT-X-STREAM-INF se află EXT-XI-FRAME-STREAM-INF, care reprezintă cadrul I (cadrul cheie) al resursei multimedia conținută în fișierul listei de redare. Deoarece cadrul I este doar o imagine, nu conține conținut audio, iar parametrii rămași sunt în concordanță cu formatul conținutului video.
După aceea, există surse video corespunzătoare diferitelor rezoluții, 1920x1080, 1280x720, 960x540, 480x270. Deoarece HLS va comuta automat rezoluția în funcție de situația rețelei, rezoluțiile multiple sunt, în general, pregătite pentru selecție. Conform analizei datelor captate, primul segment redat este de 640 rezoluție, al doilea până la 8 segmente după aceea sunt 480 rezoluție, iar apoi este trecut la rezoluția 640.
format audio
Privirea în jos este indicele audio corespunzător
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audio1 / audio1.m3u8" Copy Cod
# EXT-X-MEDIA a apărut mai sus, dar nu a menționat lista pentru mai multe limbi.
TIP = AUDIO, de data aceasta tipul este audio.
GROUP-ID este ID-ul grupului, corespunzător conținutului AUDIO din EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 corespunde căii audio.
Surse alternative de diferite formate de codificare
În fișierul principal M3U8, putem vedea și o sursă video cu rezoluție 640, care nu este aceeași cu rezoluția 640 de mai sus. Conținutul său este astfel:
#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 = AUDIO, GROUP-ID = "program_audio_0", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audioc / prog_index.m3u8" Copy Cod
Formatul de codificare CODECS este hvc1.2.4.H150.B0, mp4a.40.2, formatul de codare audio nu s-a modificat, dar formatul de codificare video s-a schimbat. hvc1 este unul dintre formatele de codificare HEVC (H265). Este un format de codare video de nouă generație lansat de Apple. Din cauza problemelor de compatibilitate, mulți clienți nu pot analiza acest format, deci nu este foarte popular. Apar sursele video de acest format Ar trebui să fie o copie de rezervă aici. Comparând două conținuturi cu aceeași rezoluție, se poate constata că rata de biți a formatului hvc1 este mai mare decât cea a formatului avc1, ceea ce arată că conținutul hvc1 este mai mare și raportul de compresie al avc1 este mai mare sub aceeași rezoluție.
Corespunzător sursei video în format hvc1, gruparea conținutului subtitrării și gruparea conținutului audio s-au schimbat, de aceea subtitrările de mai sus au două copii din aceeași limbă și corespund surselor video în formatele avc1 și hvc1.
Aceasta este lista principală a M3U8. Audio și video ale acestui conținut sunt procesate separat, dar pot fi, de asemenea, combinate.
Fișier M3u8 care conține informații media
Luați fișierul 0640.m3u8 ca exemplu
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X-TARGETDURATION: 7
# EXT-X-MEDIA-SEQUENCE: 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-ENDLIST Copiați codul
# EXTM3U și # EXT-X-VERSION sunt antetul fișierului M3U și respectiv numărul versiunii compatibile. Acest format este o versiune anterioară, astfel încât numărul versiunii este mai mic decât fișierul principal.
EXT-X-TARGETDURATION reprezintă durata maximă a fiecărui segment de redare, 7 reprezintă 7 secunde, iar segmentele din acest director nu pot depăși 7 secunde.
EXT-X-MEDIA-SEQUENCE reprezintă numărul de secvență al primului segment al listei de redare și 1, reprezintă că segmentul de redare începe de la 1.
#EXTINF reprezintă durata segmentului, 6.006 înseamnă că segmentul actual este de 6.006s. Informațiile privind durata totală a videoclipului se obțin prin acumularea acestei valori.
0640_00001.ts este calea relativă a clipului. Fișierul ts reprezintă o bucată de videoclip sau audio și poate fi în ts, mp4, aac și alte formate. Deoarece a fost specificat să se deschidă de la 1
|
Introduceți adresa de e-mail pentru a primi o surpriză
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albaneză
ar.fmuser.org -> arabă
hy.fmuser.org -> Armeană
az.fmuser.org -> azeră
eu.fmuser.org -> bască
be.fmuser.org -> bielorusă
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> catalană
zh-CN.fmuser.org -> Chineză (simplificată)
zh-TW.fmuser.org -> Chineză (tradițională)
hr.fmuser.org -> croată
cs.fmuser.org -> cehă
da.fmuser.org -> Daneză
nl.fmuser.org -> Dutch
et.fmuser.org -> estonă
tl.fmuser.org -> filipinez
fi.fmuser.org -> finlandeză
fr.fmuser.org -> Franceză
gl.fmuser.org -> Galeză
ka.fmuser.org -> Georgiană
de.fmuser.org -> germană
el.fmuser.org -> greacă
ht.fmuser.org -> Creole haitian
iw.fmuser.org -> ebraică
hi.fmuser.org -> Hindi
hu.fmuser.org -> Maghiară
is.fmuser.org -> islandeză
id.fmuser.org -> indoneziană
ga.fmuser.org -> irlandeză
it.fmuser.org -> Italiană
ja.fmuser.org -> japoneză
ko.fmuser.org -> coreeană
lv.fmuser.org -> letonă
lt.fmuser.org -> lituaniană
mk.fmuser.org -> macedoneană
ms.fmuser.org -> Malay
mt.fmuser.org -> malteză
no.fmuser.org -> norvegiană
fa.fmuser.org -> persană
pl.fmuser.org -> poloneză
pt.fmuser.org -> portugheză
ro.fmuser.org -> Română
ru.fmuser.org -> rusă
sr.fmuser.org -> sârbă
sk.fmuser.org -> slovacă
sl.fmuser.org -> Slovenă
es.fmuser.org -> spaniolă
sw.fmuser.org -> Swahili
sv.fmuser.org -> suedeză
th.fmuser.org -> Thai
tr.fmuser.org -> turcă
uk.fmuser.org -> ucraineană
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnameză
cy.fmuser.org -> galeză
yi.fmuser.org -> idiș
FMUSER Wirless Transmit video și audio mai ușor!
Contact
Adresa:
Nr. 305 Clădirea HuiLan nr. 273 Huanpu Road Guangzhou China 510620
Categorii
Stiri lunare via e-mail