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 -> Italian
ja.fmuser.org -> японски
ko.fmuser.org -> корейски
lv.fmuser.org -> латвийски
lt.fmuser.org -> Литовски
mk.fmuser.org -> македонски
ms.fmuser.org -> малайски
mt.fmuser.org -> Малтийски
no.fmuser.org -> Norwegian
fa.fmuser.org -> персийски
pl.fmuser.org -> полски
pt.fmuser.org -> португалски
ro.fmuser.org -> Romanian
ru.fmuser.org -> руски
sr.fmuser.org -> сръбски
sk.fmuser.org -> словашки
sl.fmuser.org -> Словенски
es.fmuser.org -> испански
sw.fmuser.org -> суахили
sv.fmuser.org -> шведски
th.fmuser.org -> Thai
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-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# 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, 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
Поток за адаптация с един процент
#EXTM3U
# EXT-X-TARGETDURATION: 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-TARGETDURATION
Определете максималната продължителност на всеки 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. На живо m3u8 няма този етикет.
# EXT-X-STREAM-INF
Атрибути:
BANDWIDTH определя скоростта на предаване
ПРОГРАМА-ИД уникален идентификатор
CODECS определя типа кодиране на потока
# EXT-X-DISCONTINUITY
Когато се срещне тагът, се променят следните атрибути:
файлов формат
брой и вид на песните
параметри за кодиране
кодираща последователност
последователност на клеймото за време
# EXT-X-VERSION Този атрибут може да се използва или не, не можете да имате нито един
M3U8 е разделен на M3U8 от първо ниво и M3U8 от второ ниво. Най-високото ниво M3U8 се използва главно за многостепенна адаптация. M3U8 от второ ниво е истинският файл с резени.
По подразбиране клиентът първо ще избере заявката с най-висок битрейт. Ако установи, че битрейтът не може да бъде достигнат, той ще поиска поток с ниска битрейт
Файл от най-високо ниво M3U8 в реална употреба е както следва:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 972800
22.m3u8
Горният файл M3U8 по-горе дефинира два файла от второ ниво, 11.m3u8 и 22.m3u8, и клиентът ще избере един от тях, за да получи съдържанието му.
Съдържанието на вторичния файл M3U8 е както следва:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-TARGETDURATION: 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-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
Копирайте код
Запазете горния файл 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-TARGETDURATION: 10
# EXT-X-VERSION: 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, който е премахнат от файла на плейлиста. Media URI трябва да бъдат премахнати от файла на плейлиста в реда, в който се показват в плейлиста. Актуализираният индексен файл представя движещ се прозорец в непрекъснат поток. Този тип сесии са подходящи за непрекъснати излъчвания.
Ето същия плейлист, след като е актуализиран с нови медийни URI:
Листинг 4 Плейлист на живо след актуализиране на медийните URI.
Копирайте код
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 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 списък_ брой продължителност име на файл.m3u8 [префикс]
Пример за употреба:
m3u8_gen.exe 1 3 10 на живо.m3u8 hls /
Генерирайте файл live.m3u8 като
Копирайте код
#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
Копирайте код
Напишете BAT скрипт, за да актуализирате файла live.m3u8 на всеки 10 секунди
Копирайте код
@ Ехо разстояние
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 -> Italian
ja.fmuser.org -> японски
ko.fmuser.org -> корейски
lv.fmuser.org -> латвийски
lt.fmuser.org -> Литовски
mk.fmuser.org -> македонски
ms.fmuser.org -> малайски
mt.fmuser.org -> Малтийски
no.fmuser.org -> Norwegian
fa.fmuser.org -> персийски
pl.fmuser.org -> полски
pt.fmuser.org -> португалски
ro.fmuser.org -> Romanian
ru.fmuser.org -> руски
sr.fmuser.org -> сръбски
sk.fmuser.org -> словашки
sl.fmuser.org -> Словенски
es.fmuser.org -> испански
sw.fmuser.org -> суахили
sv.fmuser.org -> шведски
th.fmuser.org -> Thai
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
Категории
Бюлетин