FMUSER Бесправадная перадача відэа і аўдыё лягчэй!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> афрыкаанс
sq.fmuser.org -> албанская
ar.fmuser.org -> арабская
hy.fmuser.org -> Армянскі
az.fmuser.org -> азербайджанскі
eu.fmuser.org -> баскская
be.fmuser.org -> Беларуская
bg.fmuser.org -> Балгарская
ca.fmuser.org -> каталонская
zh-CN.fmuser.org -> кітайскі (спрошчаны)
zh-TW.fmuser.org -> Кітайскі (традыцыйны)
hr.fmuser.org -> харвацкая
cs.fmuser.org -> чэшская
da.fmuser.org -> дацкая
nl.fmuser.org -> Галандская
et.fmuser.org -> эстонская
tl.fmuser.org -> філіпінская
fi.fmuser.org -> фінская
fr.fmuser.org -> Французская
gl.fmuser.org -> галісійская
ka.fmuser.org -> грузінскі
de.fmuser.org -> нямецкая
el.fmuser.org -> Грэчаскі
ht.fmuser.org -> Гаіцянскі крэол
iw.fmuser.org -> іўрыт
hi.fmuser.org -> хіндзі
hu.fmuser.org -> Венгерская
is.fmuser.org -> ісландская
id.fmuser.org -> інданезійская
ga.fmuser.org -> ірландскі
it.fmuser.org -> Італьянская
ja.fmuser.org -> японскі
ko.fmuser.org -> карэйская
lv.fmuser.org -> латышскі
lt.fmuser.org -> Літоўскі
mk.fmuser.org -> македонская
ms.fmuser.org -> малайская
mt.fmuser.org -> мальтыйская
no.fmuser.org -> Нарвежскі
fa.fmuser.org -> персідская
pl.fmuser.org -> польская
pt.fmuser.org -> партугальская
ro.fmuser.org -> Румынская
ru.fmuser.org -> руская
sr.fmuser.org -> сербская
sk.fmuser.org -> славацкая
sl.fmuser.org -> Славенская
es.fmuser.org -> іспанская
sw.fmuser.org -> суахілі
sv.fmuser.org -> шведская
th.fmuser.org -> Тайская
tr.fmuser.org -> турэцкая
uk.fmuser.org -> украінскі
ur.fmuser.org -> урду
vi.fmuser.org -> В'етнамская
cy.fmuser.org -> валійская
yi.fmuser.org -> Ідыш
HLS і Http Live Streaming - гэта пратаколы для трансляцыі ў рэжыме рэальнага часу, вызначаныя Apple. HLS рэалізаваны на аснове пратакола HTTP. Змест перадачы ўключае дзве часткі, адна - файл апісання M3U8, а другая - медыя-файл TS.
1. Файл M3U8
Медыя-файл апісаны ў тэксце, які складаецца з шэрагу тэгаў.
#EXTM3U
# EXT-X-Мэтавая працягласць: 5
# EXTINF: 5,
./0.ц
# EXTINF: 5,
./1.ц
# EXTM3U: Першы радок кожнага файла M3U8 павінен быць гэтым тэгам.
# EXT-X-TARGETDURATION: Пакажыце максімальную працягласць сегмента носьбіта (у секундах). Працягласць часу, указаная ў #EXTINF, павінна быць меншай або роўнай гэтаму максімальнаму значэнню. Гэта значэнне можа з'явіцца толькі адзін раз.
#EXTINF: Апішыце даўжыню аднаго медыяфайла. Далей ідуць медыя-файлы, такія як ./0.ts
Ён можа распаўсюджвацца па HTTP на прыладах iOS і Mac. Стандарт прайгравання - файл m3u8, пашыраны на m3u, а мультымедыйны файл - MPEG2-TS альбо AAC (толькі аўдыя).
Ёсць два сцэнарыі прымянення файлаў m3u8:
Шматскорасны паток адаптацыі,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, прапускная здольнасць = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, прапускная здольнасць = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, прапускная здольнасць = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, прапускная здольнасць = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Адаптацыйны паток з адной хуткасцю
#EXTM3U
# EXT-X-Мэтавая працягласць: 5220
# EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
Міжнародная арганізацыя па стандартах вызначае гэты дакумент RFC:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Файл m3u8 з'яўляецца пашырэннем файла m3u. Пашыраныя ключавыя словы вызначаны ў RFC:
сярод іх:
# EXT-X-Мэтавая працягласць
Вызначце максімальную працягласць кожнай TS.
# EXT-X-MEDIA-SEQUENCE
Вызначце серыйны нумар першага файла ў бягучым файле m3u8. Кожны файл TS мае фіксаваны і унікальны серыйны нумар у файле m3u8. Серыйны нумар выкарыстоўваецца для пераключэння хуткасці кода для выраўноўвання падчас MBR.
# EXT-X-KEY
Вызначце спосаб шыфравання і URL ключавога файла, які выкарыстоўваецца для атрымання 16-байтнага ключавога файла для дэкадавання файла TS.
Атрыбуты:
МЕТАД
URL
# EXT-X-PROGRAM-DATE-TIME
Абсалютны час першага файла
# EXT-X-ALLOW-CACHE
Ці дазволіць кэш.
# EXT-X-ENDLIST
Паказвае канец файла m3u8. Live m3u8 не мае гэтага тэга.
# EXT-X-STREAM-INF
Атрыбуты:
BANDWIDTH вызначае бітавую хуткасць
Унікальны ідэнтыфікатар PROGRAM-ID
CODECS вызначае тып кадавання патоку
# EXT-X-ПРЫКАНАСЦЬ
Пры выяўленні тэга змяніліся наступныя атрыбуты:
фармат файла
колькасць і тып дарожак
параметры кадавання
паслядоўнасць кадавання
паслядоўнасць пазнакі часу
# EXT-X-VERSION Гэты атрыбут можна выкарыстоўваць ці не, вы можаце не мець яго
M3U8 дзеліцца на M3U8 верхняга ўзроўню і M3U8 другога ўзроўню. Верхні ўзровень M3U8 у асноўным выкарыстоўваецца для шматступенчатай адаптацыі. Другі ўзровень M3U8 - гэта сапраўдны файл зрэзаў.
Па змаўчанні кліент спачатку абярэ запыт з самым высокім бітрэйт. Калі ён выявіць, што бітрэйт нельга дасягнуць, ён запытае паток з нізкім бітрэйтам
Файл верхняга ўзроўню M3U8 у рэальным выкарыстанні выглядае наступным чынам:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, прапускная здольнасць = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, прапускная здольнасць = 972800
22.m3u8
Верхні файл M3U8 вышэйшага ўзроўню вызначае два файлы другога ўзроўню, 11.m3u8 і 22.m3u8, і кліент абярэ адзін з іх, каб атрымаць яго змест.
Змест другаснага файла M3U8 выглядае наступным чынам:
#EXTM3U
# EXT-X-ВЕРСІЯ: 1
# EXT-X-Мэтавая працягласць: 10
# EXT-X-MEDIA-SEQUENCE: 0
# EXTINF: 3,
1-4.ц
# EXTINF: 8,
1-6.ц
# EXTINF: 8,
1-8.ц
# EXTINF: 8,
1-10.ц
# EXTINF: 8,
1-12.ц
# EXTINF: 8,
1-14.ц
# EXTINF: 8,
1-16.ц
# EXTINF: 9,
1-18.ц
# EXTINF: 6,
1-20.ц
# EXTINF: 8,
1-22.ц
# EXTINF: 9,
1-24.ц
# EXTINF: 3,
1-26.ц
# EXT-X-ENDLIST
Пасля таго, як кліент атрымае вышэйзгаданы другасны файл M3U8, ён будзе працягваць запытваць файл унутры, і потым яго можна будзе прайграваць.
Вышэй гаворыцца пра сітуацыю па патрабаванні і прамую трансляцыю, у файле M3U8 будуць атрыбуты, якія паведамляюць, што ён жывы, і кліент перыядычна запытвае новыя файлы M3U8.
// Калі HLS рэалізуе трансляцыю па запыце і ў прамым эфіры, розніца ў файле M3U8
1. Апісанне праблемы
Нядаўна я правёў тэст прайгравання транскадаванага фрагмента, выкарыстоўваючы HLS (HTTP Live Streaming) для прамой трансляцыі. Кожны час сегментацыі TS складае 10 секунд, і наступныя жывыя файлы m3u8 ствараюцца ў адпаведнасці з файламі сегментацыі TS
Скапіруйце код
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-Мэтавая працягласць: 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
Скапіруйце код
Захавайце прыведзены файл m3u8 як live.m3u8, змесціце яго ў каталог дакументаў Apache і прайграйце наступны URL з VLC:
http://localhost/live.m3u8
Тэст выявіў, што першы файл, які пачаў гуляць, быў не 1.ts. Пасля некалькіх выпрабаванняў было ўстаноўлена, што:
Пакуль у спісе больш за тры файлы, апошнія тры файлы ў спісе заўсёды прайграваюцца
2. Рашэнне праблемы
Вельмі сумна, што пасля пошуку ў Інтэрнэце я не знайшоў эфектыўнай інфармацыі. У такой самай сітуацыі сутыкнуўся прыяцель, ён падзяліўся сваім досведам пасля яе вырашэння?
Параіўшыся з калегам, калега сказаў, што гэта магчыма, таму што спіс бягучых файлаў m3u8 неабходна абнаўляць у рэжыме рэальнага часу. Калі мы робім тэст, спачатку ў канцы можна дадаць # EXT-X-ENDLIST. Гэты метад пратэставаны. Ён працуе, але гэта больш не працуе рэжым m3u8
Пасля паўторнага пошуку ў Інтэрнэце я пацвердзіў, што нарэшце знайшоў апісанне m3u8 у рэальным часе
Плэй-ліст у рэальным часе (рассоўнае акно)
Для жывых сеансаў індэксны файл абнаўляецца шляхам выдалення URI медыя з файла па меры стварэння і прадастаўлення новых медыяфайлаў.
Важна: тэг EXT-X-ENDLIST адсутнічае ў спісе прайгравання ў рэальным часе, што азначае, што новыя медыяфайлы будуць дададзены ў індэксны файл па меры іх з'яўлення.
Глядзіце спіс 3 для прыкладу прайграванага прайгравання ў рэальным часе, якое яно з'явіцца ў пачатку сеанса.
Лістынг 3 Плэй-ліст у пачатку сесіі.
Скапіруйце код
#EXTM3U
# EXT-X-Мэтавая працягласць: 10
# EXT-X-ВЕРСІЯ: 3
# EXT-X-MEDIA-SEQUENCE: 1
# EXTINF: 10,
fileSequence1.ts
# EXTINF: 10,
fileSequence2.ts
# EXTINF: 10,
fileSequence3.ts
# EXTINF: 10,
fileSequence4.ts
# EXTINF: 10,
fileSequence5.ts
Скапіруйце код
Значэнне тэга EXT-X-MEDIA-SEQUENCE ПАВІННА павялічвацца на 1 для кожнага URI мультымедыя, які выдаляецца з файла спісу прайгравання. URI мультымедыя павінны быць выдалены з файла спісу прайгравання ў тым парадку, у якім яны з'яўляюцца ў спісе прайгравання. Абноўлены індэксны файл уяўляе рухомае акно ў бесперапынны паток. Гэты тып сеансаў падыходзіць для бесперапынных трансляцый.
Вось той самы спіс прайгравання пасля абнаўлення новымі медыя-URI:
Лістынг 4 "Плэй-ліст" пасля абнаўлення URI медыя.
Скапіруйце код
#EXTM3U
# EXT-X-Мэтавая працягласць: 10
# EXT-X-ВЕРСІЯ: 3
# EXT-X-MEDIA-SEQUENCE: 2
# EXTINF: 10,
fileSequence2.ts
# EXTINF: 10,
fileSequence3.ts
# EXTINF: 10,
fileSequence4.ts
# EXTINF: 10,
fileSequence5.ts
# EXTINF: 10,
fileSequence6.ts
Скапіруйце код
3. жывыя правілы абнаўлення m3u8
Спіс жывых файлаў m3u8 неабходна пастаянна абнаўляць, правілы абнаўлення:
Выдаліце верхні (думайце прайграны) файл у спісе прайгравання файла
Пастаянна абнаўляйце тэг EXT-X-MEDIA-SEQUENCE, павялічваючы на 1
4. Эксперымент
Напішыце невялікую праграму для стварэння жывога m3u8 для тэставання
Выкарыстанне:
m3u8_gen.exe start_num list_count працягласць filename.m3u8 [прэфікс]
Прыклад выкарыстання:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Стварыць файл live.m3u8 як
Скапіруйце код
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-Мэтавая працягласць: 10
# EXTINF: 10
hls / 1.ts
# EXTINF: 10
hls / 2.ts
# EXTINF: 10
hls / 3.ts
Скапіруйце код
Напішыце сцэнар BAT для абнаўлення файла live.m3u8 кожныя 10 секунд
Скапіруйце код
@ ECHO OFF
f
|
Увядзіце адрас электроннай пошты, каб атрымаць сюрпрыз
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> афрыкаанс
sq.fmuser.org -> албанская
ar.fmuser.org -> арабская
hy.fmuser.org -> Армянскі
az.fmuser.org -> азербайджанскі
eu.fmuser.org -> баскская
be.fmuser.org -> Беларуская
bg.fmuser.org -> Балгарская
ca.fmuser.org -> каталонская
zh-CN.fmuser.org -> кітайскі (спрошчаны)
zh-TW.fmuser.org -> Кітайскі (традыцыйны)
hr.fmuser.org -> харвацкая
cs.fmuser.org -> чэшская
da.fmuser.org -> дацкая
nl.fmuser.org -> Галандская
et.fmuser.org -> эстонская
tl.fmuser.org -> філіпінская
fi.fmuser.org -> фінская
fr.fmuser.org -> Французская
gl.fmuser.org -> галісійская
ka.fmuser.org -> грузінскі
de.fmuser.org -> нямецкая
el.fmuser.org -> Грэчаскі
ht.fmuser.org -> Гаіцянскі крэол
iw.fmuser.org -> іўрыт
hi.fmuser.org -> хіндзі
hu.fmuser.org -> Венгерская
is.fmuser.org -> ісландская
id.fmuser.org -> інданезійская
ga.fmuser.org -> ірландскі
it.fmuser.org -> Італьянская
ja.fmuser.org -> японскі
ko.fmuser.org -> карэйская
lv.fmuser.org -> латышскі
lt.fmuser.org -> Літоўскі
mk.fmuser.org -> македонская
ms.fmuser.org -> малайская
mt.fmuser.org -> мальтыйская
no.fmuser.org -> Нарвежскі
fa.fmuser.org -> персідская
pl.fmuser.org -> польская
pt.fmuser.org -> партугальская
ro.fmuser.org -> Румынская
ru.fmuser.org -> руская
sr.fmuser.org -> сербская
sk.fmuser.org -> славацкая
sl.fmuser.org -> Славенская
es.fmuser.org -> іспанская
sw.fmuser.org -> суахілі
sv.fmuser.org -> шведская
th.fmuser.org -> Тайская
tr.fmuser.org -> турэцкая
uk.fmuser.org -> украінскі
ur.fmuser.org -> урду
vi.fmuser.org -> В'етнамская
cy.fmuser.org -> валійская
yi.fmuser.org -> Ідыш
FMUSER Бесправадная перадача відэа і аўдыё лягчэй!
Кантакт
Адрас:
No.305 Нумар HuiLan Будынак No.273 Huanpu Road Гуанчжоу Кітай 510620
катэгорыі
бюлетэнь