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, яку запропонувала та просунула компанія Apple. Ось визначення з Вікіпедії.
HTTP Live Streaming (скорочено HLS) - протокол передачі потокових медіа-мереж на основі HTTP, запропонований Apple. Це частина програмного забезпечення Apple QuickTime X та iPhone. Це працює, розділяючи весь потік на невеликі файли на основі HTTP для завантаження та завантажуючи лише кілька за раз. Коли відтворюється мультимедійний потік, клієнт може вибрати завантаження одного ресурсу з різною швидкістю із багатьох різних альтернативних джерел, що дозволяє сеансу потокового мультимедіа адаптуватися до різної швидкості передачі даних. Під час запуску потокового мультимедійного сеансу клієнт завантажує розширений файл списку відтворення M3U (m3u8), що містить метадані, щоб знайти доступні медіапотоки.
HLS запитує лише основні повідомлення HTTP. На відміну від протоколу реального часу (RTP), HLS може проходити через будь-який брандмауер або проксі-сервер, що дозволяє передавати дані HTTP. Також легко використовувати мережі розповсюдження контенту для передачі медіапотоків.
Apple розглядає протокол HLS як проект Інтернету (подається поетапно), який був поданий до IETF як неформальний стандарт на першому етапі. Однак, незважаючи на те, що Apple періодично подає деякі незначні оновлення, IETF не вжив жодних подальших дій щодо розробки цього стандарту. [1]
1. Вступ до угоди
Угода про HLS передбачає:
(1) Формат упаковки відео - TS.
(2) Формат кодування відео - H264, а формат кодування аудіо - MP3, AAC або AC-3.
(3) Окрім самого відеофайлу TS, також визначений файл m3u8 (текстовий файл), який використовується для управління відтворенням.
Чому Apple пропонує протокол HLS? Насправді це головним чином вирішення деяких проблем у протоколі RTMP. Наприклад, протокол RTMP не використовує стандартний інтерфейс HTTP для передачі даних, тому він може бути заблокований брандмауером у деяких спеціальних мережевих середовищах. Однак, оскільки HLS використовує протокол HTTP для передачі даних, він не зіткнеться із ситуацією, коли захищений брандмауером (немає брандмауера, який не пропускає інтерфейс 80).
На додаток до завантаження, RTMP є протоколом, що підтримує стан, і важко плавно розширити відеосервер, оскільки йому потрібно підтримувати стан для кожного клієнта, який відтворює відеопотік. Хоча HLS базується на протоколі без стану (HTTP), клієнт просто завантажує звичайні файли TS, що зберігаються на сервері, по порядку, а баланс такий же простий, як і балансування навантаження звичайного файлового сервера HTTP.
Крім того, сам протокол HLS реалізує адаптацію швидкості передачі даних, а пристрої з різною пропускною здатністю можуть автоматично переключатися на відтворення відео, яке найкраще відповідає їхній швидкості передачі даних. Насправді найбільшою перевагою HLS є те, що його батьком є Apple. Apple забезпечує вбудовану підтримку HLS лише на власних пристроях IOS і відмовленому спалаху. Android також змушений "екзотичним престижем" Pingguo рідно підтримувати HLS. Таким чином, відео-рішення Adobe, такі як flv та rtmp, вимагають додаткової роботи для відтворення на мобільних пристроях. Звичайно, високий тиск продуктивності, спричинений спалахом на мобільних пристроях, насправді є власною проблемою. Однак у ЗСЖ також є деякі підводні камені, які неможливо подолати. Наприклад, час затримки відео в реальному часі за допомогою протоколу HLS не можна зменшити до менш ніж 10 секунд, тоді як затримка протоколу RTMP може становити лише 3 або 4 секунди. Тому, будь ласка, використовуйте HLS з обережністю для служб, які чутливіші до затримок прямого ефіру.
Дозвольте пояснити цю картину. Зліва направо не має значення, в якому форматі знаходиться джерело відеосигналу входів внизу ліворуч. Протокол зв'язку між ним та сервером також може бути довільним (наприклад, RTMP). Коротше кажучи, просто передайте відеодані на сервер. Просто піти. Це відео перетворюється у файли відео формату HLS (як TS, так і файли m3u8) на сервері сервера. Докладніше, медіакодер на сервері є модулем перекодування, відповідальним за перекодування відеоданих у джерелі відеосигналу у відеодані цільового формату кодування (H264). Формат кодування джерела відео може бути будь-яким форматом кодування відео (див. "Основи відеотехнологій"). Після перекодування у відеодані H264 відео нарізається в модулі сегментатора потоку, а результатом зрізу є файл індексу (m3u8) та файл ts. Розподіл на зображенні насправді є просто звичайним файловим сервером HTTP, і тоді клієнту потрібно лише отримати доступ до шляху до індексного файлу першого рівня, і він автоматично відтворить потік відео HLS.
2. Індексний файл HLS
Так званий індексний файл - це текстовий файл m3u8, згаданий раніше.
Як показано на малюнку вище, логіка клієнта для відтворення відеопотоку HLS насправді дуже проста. Спочатку завантажте файл індексу першого рівня, який записує адресу файлу індексу другого рівня (Alternate-A, Alternate-B, Alternate-C), а потім клієнт. Клієнт потім завантажує вторинний файл індексу та завантажує адреса файлу TS записується у вторинний файл індексу, так що клієнт може завантажувати відеофайли TS в порядку і відтворювати їх безперервно.
(1) Індексний файл першого рівня
Джерело відео: https://dco4urblvsasc.cloudfront.net/811/81095_ywfZjAuP/game/index.m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1064000
1000kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000
500kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=282000
250kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2128000
2000kbps.m3u8
пропускна здатність визначає швидкість передачі потоку відео. ІДЕНТИФІКАЦІЯ ПРОГРАМИ марна і на неї не потрібно звертати уваги. Наступним рядком кожного # EXT-X-STREAM-INF є шлях до вторинного файлу індексу. Ви можете використовувати відносний шлях або абсолютний шлях. У прикладі використовується відносний шлях. Цей файл записує шлях вторинного файлу індексу до різних потоків відеопотоку. Клієнт може визначити власну поточну пропускну здатність мережі, щоб вирішити, який відеопотік відтворювати. Він також може плавно переключитися на відеопотік, який відповідає пропускній здатності, коли змінюється пропускна здатність мережі.
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
2000kbps-00001.ts
#EXTINF:10,
2000kbps-00002.ts
#EXTINF:10,
2000kbps-00003.ts
#EXTINF:10,
2000kbps-00004.ts
#EXTINF:10,
... ...
#EXTINF:10,
2000kbps-00096.ts
#EXTINF:10,
2000kbps-00097.ts
#EXTINF:10,
2000kbps-00098.ts
#EXTINF:10,
2000kbps-00099.ts
#EXTINF:10,
2000kbps-00100.ts
#ZEN-TOTAL-DURATION:999.66667
#ZEN-AVERAGE-BANDWIDTH:2190954
#ZEN-MAXIMUM-BANDWIDTH:3536205
#EXT-X-ENDLIST
Вторинний файл фактично відповідає за надання адреси завантаження файлу ts, і тут також використовується відносний шлях. #EXTINF представляє тривалість кожного відеофайлу ts slice. # EXT-X-TARGETDURATION визначає максимальну тривалість файлу фрагмента в поточному відеопотоці, що означає, що тривалість цих фрагментів ts не може бути більшою за значення # EXT-X-TARGETDURATION. # EXT-X-PLAYLIST-TYPE: VOD означає, що поточний відеопотік - це не пряма трансляція, а потік на вимогу. Іншими словами, усі файли ts відео створені, # EXT-X- ENDLIST вказує на кінець відео. Наявність цієї позначки також вказує на те, що поточний потік не є прямим потоком.
3. Режим відтворення
Особливістю VOD на вимогу є те, що всі файли індексу та файли ts можна отримати в поточний момент часу, а адреси всіх файлів ts записуються у вторинний файл індексу. Цей режим дозволяє клієнтам отримувати доступ до всього вмісту. Наведений приклад являє собою структуру m3u8 у режимі на замовлення.
Режим Live - це створення файлів M3u8 і ts в режимі реального часу. Його індексний файл завжди динамічно змінюється, і йому потрібно постійно завантажувати вторинний індексний файл під час відтворення, щоб отримати останній згенерований файл ts для відтворення відео. Якщо в кінці вторинного файлу індексу немає позначки # EXT-X-ENDLIST, це означає, що це потоковий відео в реальному часі.
Коли клієнт відтворює відео у режимі VOD, йому фактично потрібно лише один раз завантажити індексний файл першого рівня та індексний файл другого рівня, щоб отримати адреси завантаження всіх ts-файлів. Якщо клієнт не перемикає бітрейт, немає необхідності завантажувати файли індексу. Просто завантажуйте та відтворюйте файли TS послідовно. Але режим Live дещо відрізняється, оскільки під час відтворення також створюється новий файл ts, тому клієнт фактично завантажує файл індексу другого рівня один раз, потім завантажує файл ts, а потім завантажує файл індексу другого рівня ( на цей раз цей файл вторинного індексу був переписаний, адреса завантаження новоствореного файлу ts записується), а потім завантажується новий файл ts, і відтворення повторюється таким чином.
|
Введіть електронну адресу, щоб отримати сюрприз
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 Будівля No273 Huanpu Road Гуанчжоу Китай 510620
Категорії
Інформаційний бюлетень