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 -> Ідыш
фон
MP4 - наш распаўсюджаны фармат відэа, і часта пры прайграванні відэа на серверы гэта непасрэдна запытаная крыніца відэа MP4. Але на самой справе гэта нядобра. Файл загалоўка MP4 [ftyp + moov] вялікі, і для першапачатковага прайгравання неабходна загрузіць поўны файл загалоўка і прааналізаваць яго, а затым загрузіць пэўную даўжыню прайграванага відэароліка для прайгравання. Акрамя таго, з павелічэннем памеру відэа загаловачны файл будзе працягваць расці, і пачатковы час прайгравання будзе больш. У сувязі з гэтай сітуацыяй неабходны метад, які можа паскорыць першапачатковы аналіз відэа. HLS - гэта рашэнне, прапанаванае Apple для вырашэння гэтай праблемы.
HLS
HLS - гэта абрэвіятура HTTP Live Streaming. Гэта пратакол перадачы сеткавых мультымедыйных сетак на аснове HTTP, прапанаваны Apple. Ён можа падтрымліваць жывую трансляцыю і па патрабаванні адначасова, а таксама мультывызначэнне, аўдыя- і відэадарожкі з падвойным трэкам, субтытры і іншыя функцыі. Яго прынцып складаецца ў тым, каб падзяліць цэлае відэа на некалькі невялікіх відэа, і поўнае прайграванне фарміруецца шляхам зрошчвання гэтых сегментаў.
HLS шырока выкарыстоўваецца на мабільных тэрміналах. Цяперашнія кліенты, якія падтрымліваюць пратакол HLS, ўключаюць:
iOS 3.0 і вышэй, AVPlayer падтрымлівае HLS
Android 3.0 і вышэй
Adobe Flash Player 11.0 і вышэй
Яго агульны прынцып такі:
1. Збярыце аўдыя і відэа
2. Кадзіруйце аўдыя і відэа на серверы
3. Пасля кадавання перадайце яго Segmenter Stream у выглядзе транспартнага патоку MPEG-2
4. Зразальнік стварае індэксны файл і спіс прайгравання ts, індэксны файл выкарыстоўваецца для абазначэння становішча аўдыё і відэа, а ts - сапраўдны мультымедыйны кліп
5. Змесціце рэсурсы папярэдняга кроку на HTTP-сервер
6. Кліент просіць індэксны файл для прайгравання, і змест прайгравання можна знайсці праз індэксны файл
M3U8
Ключавым этапам рэалізацыі HLS з'яўляецца чацвёрты крок вышэй, а менавіта арганізацыя індэксных файлаў і спісаў прайгравання. Тут выкарыстоўваецца фармат M3U8. M3U8 - гэта версія Unicode M3U, 8 азначае, што выкарыстоўваецца кадаванне UTF-8, і M3U, і M3U8 - гэта фарматы файлаў для мультымедыйных спісаў.
Апісанне фармату M3U8
Часам нам можа спатрэбіцца ўручную змяніць змест файла M3U8 для тэставання альбо ў некаторых асаблівых выпадках, таму нам неабходна пэўнае разуменне яго фармату. Вызначэнне гэтага фармату напісана ў дакуменце RFC 8216. Далей прыведзены некаторыя нататкі:
Файлы M3U8 павінны быць закадзіраваны ў UTF-8 і не могуць выкарыстоўваць парадак байтаў з пазнакай парадку байтаў (BOM) і не могуць утрымліваць кантрольныя сімвалы utf-8 (U + 0000 ~ U_001F і U + 007F ~ u + 009F)
Кожны радок змесціва файла M3U8 - гэта альбо пусты радок, URI, альбо радок, які пачынаецца з #, і пустыя сімвалы не могуць з'яўляцца.
Убудаваныя тэгі - гэта ўсе радкі, якія пачынаюцца з #EXT, і ўлічваюць рэгістр.
URI - гэта шлях змесціва, які можа быць адносным альбо абсалютным
Файл спіса майстра M3U8
Асноўны файл індэкса M3U8 звычайна выкарыстоўваецца для ўказання некалькіх крыніц індэкса. Давайце спачатку прааналізуем змест асноўнага файла m3u8 hls_vod_mvp.m3u8, яго галоўка выглядае так
Фармат загалоўка
#EXTM3U
# EXT-X-ВЕРСІЯ: 7
# EXT-X-НЕЗАЛЕЖНЫ СЭГМЕНТ Капіраваць код
# EXTM3U паказвае, што файл у фармаце M3U, і ўсе файлы фармату M3U павінны змясціць змесціва ў першы радок.
# EXT-X-VERSIOn паказвае сумяшчальную версію спісу прайгравання, якая ў цяперашні час складае 7.
# EXT-X-НЕЗАЛЕЖНЫЯ СЕГМЕНТЫ Гэты тэг указвае на тое, што ўсе ўзоры мультымедыя ў сегменце мультымедыя можна дэкадаваць незалежна, не абапіраючыся на інфармацыю пра іншыя сегменты медыя.
Фармат субтытраў
Змест ніжэй - некаторыя загалоўкі, змест подпісаў не з'яўляецца неабходным.
# EXT-X-MEDIA: TYPE = ЗАГАДЫ, GROUP-ID = "subs", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = ЗАГАДЫ, GROUP-ID = "subsC", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "субтытры / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = ЗАГАЛОЎ, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "субтытры / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = ЗАГАДЫ, GROUP-ID = "subsC", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "субтытры / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = ЗАГАДЫ, GROUP-ID = "subs", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "субтытры / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = ЗАГАДЫ, GROUP-ID = "subsC", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "субтытры / zhoc / prog_index.m3u8 "Капіяваць код
# EXT-X-MEDIA выкарыстоўваецца для ўказання шматмоўных рэсурсаў спіса мультымедыйных матэрыялаў аднолькавага зместу.
TYPE - гэта тып рэсурсу, а дадатковым змесцівам з'яўляюцца: AUDIO, VIDEO, TITLES, CLOSED-CIPTIONS.
Прыведзены вышэй змест усталёўвае TYPE = SUBTITLES, які з'яўляецца тыпам субтытраў.
GROUP-ID - гэта група, да якой належыць шматмоўны пераклад, і з'яўляецца абавязковым параметрам
NAME - гэта чытаемая інфармацыя пра апісанне патоку перакладу, і гэта значэнне адпавядае displayName AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED - гэта тры значэнні BOOL, якія адпавядаюць выбару патоку перакладу па змаўчанні, калі адсутнічае неабходная інфармацыя. Паток прайгравання прайграваецца, калі карыстальнік не адлюстроўвае налады. FORCED дзейнічае толькі для тыпу субтытраў і выкарыстоўваецца для пазначэння бягучага аўтаматычнага выбару патоку перакладу. .
LANGUAGE выкарыстоўваецца для ўказання тыпу мовы, які ўсталёўваецца ў адпаведнасці з [кодам мовы ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm "Моўны код ISO 639"). Калі прайгравальнік па змаўчанні выбірае субтытры, імя адлюстроўванага спісу субтытраў усталёўваецца ў адпаведнасці з гэтым значэннем.
URI - гэта інфармацыя пра месцазнаходжанне рэсурсу, дзе ён адпавядае файлу M3U8 з падзагалоўкам. subtitles / eng / prog_index.m3u8 - гэта адносны шлях,
З дапамогай прыведзенай вышэй інфармацыі мы можам прааналізаваць значэнне вышэйзгаданага зместу так: Цяперашняе відэа падтрымлівае тры субтытры: англійскую, японскую і кітайскую. Але кожная мова мае два паведамленні EXT-X-MEDIA. Розніца паміж імі складаецца ў групоўцы, адна згрупавана ў падгруппы, а другая - у падгруппу. Чаму існуе дзве групы? Пра гэта я раскажу пазней.
Фармат відэа
Зноў паглядзіце ўніз, каб знайсці індэкс відэакантэнту:
#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: Гэты атрыбут вызначае рэзервовую крыніцу, гэта значыць шлях прайгравання відэа і некаторую інфармацыю пра відэа. Далей прыводзіцца канфігурацыя адпаведнага зместу: ШЫРОТА ПРАШЫРНАСЦІ - гэта пікавая бітавая хуткасць, 827299 - 827299bit / s, што з'яўляецца самым высокім пікавым часам Спажывае 101 КБ трафіку ў секунду.
Сярэдняя прапускная здольнасць - гэта сярэдняя бітавая хуткасць, 747464
CODECS кадуе інфармацыю, avc1.64001f, mp4a.40.2, avc ўяўляе фармат кадавання h264, наступны 64001f - параметр кадавання, прадстаўлены шаснаццатковым, 64, 00, 1f, адпаведна, прадстаўляюць тры розныя значэнні параметра. mp4a - гэта фармат аўдыякадавання, а наступныя 40.2 - параметры кадавання аўдыё.
RESOLUTION - гэта дазвол відэа. Бягучае дазвол крыніцы відэа - 640x360.
FRAME-RATE - гэта максімальная частата кадраў, 29.970 ўяўляе максімальную частату кадраў для бягучага прайгравання - 29.970 кадраў у секунду.
AUDIO - гэта аўдыягрупа, а program_audio - назва адпаведнай аўдыягрупы.
SUBTITLES абазначае адпаведную групу субтытраў, а subs - гэта назва адпаведнай групы субтытраў. Вышэйзгаданая інфармацыя пра субтытры мае GROUP-ID, і гэта значэнне ёй адпавядае.
URI - шлях змесціва, 0640 / 0640.m3u8 адпавядае шляху файла m3u8 крыніцы відэа. Гэта відаць па інфармацыі пра захоп пакетаў.
Ніжэй EXT-X-STREAM-INF знаходзіцца EXT-XI-FRAME-STREAM-INF, які ўяўляе сабой I кадр (ключавы кадр) мультымедыйнага рэсурсу, які змяшчаецца ў файле спісу прайгравання. Паколькі I-кадр - гэта толькі малюнак, ён не ўтрымлівае гукавы кантэнт, а астатнія параметры адпавядаюць фармату відэа-змесціва.
Пасля гэтага ёсць відэакрыніцы, якія адпавядаюць розным дазволам, 1920x1080, 1280x720, 960x540, 480x270. Паколькі HLS аўтаматычна пераключае дазвол у залежнасці ад сітуацыі ў сетцы, для выбару звычайна падрыхтавана некалькі дазволаў. Згодна з аналізам захопленых дадзеных, першы прайграваны сегмент мае дазвол 640, другі - 8 пасля гэтага - 480 дазволаў, а потым пераключаецца на дазвол 640.
аўдыёфарматаў
Пагляд уніз - гэта індэкс адпаведнага аўдыя
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audio1 / audio1.m3u8" Капіяваць Кодэкс
# EXT-X-MEDIA з'явіўся вышэй, але ў ім не згадваецца спіс для некалькіх моў.
TYPE = AUDIO, на гэты раз тып аўдыя.
GROUP-ID - гэта ідэнтыфікатар групы, які адпавядае зместу AUDIO ў EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 адпавядае гукавому шляху.
Альтэрнатыўныя крыніцы розных фарматаў кадавання
У асноўным файле M3U8 мы таксама можам убачыць крыніцу відэа з дазволам 640, што не тое ж самае, што і вышэйзгаданае дазвол 640. Змест яго такі:
#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" Капіяваць Кодэкс
Фармат кадавання CODECS - hvc1.2.4.H150.B0, mp4a.40.2, фармат кадавання аўдыё не змяніўся, але фармат кадавання відэа змяніўся. hvc1 - адзін з фарматаў кадавання HEVC (H265). Гэта фармат кадавання відэа новага пакалення, запушчаны Apple. З-за праблем з сумяшчальнасцю многія кліенты не могуць разабраць гэты фармат, таму ён не вельмі папулярны. З'яўляюцца відэакрыніцы гэтага фармату. Тут павінна быць рэзервовая копія. Параўноўваючы два змесцівы аднаго і таго ж дазволу, можна выявіць, што бітавая хуткасць фармату hvc1 вышэйшая, чым у фармаце avc1, што паказвае, што змест hvc1 большае, а ступень сціскання avc1 пры гэтым самым дазволе вышэй.
У адпаведнасці з крыніцай відэа фармату hvc1 змяніліся таксама групоўка змесціва субтытраў і аўдыягрупаванне змесціва, з-за чаго ў вышэйпералічаных субтытрах ёсць дзве копіі адной мовы і яны адпавядаюць відэакрыніцам у фарматах avc1 і hvc1.
Гэта асноўны спіс M3U8. Аўдыё і відэа гэтага змесціва апрацоўваюцца асобна, але яны таксама могуць быць аб'яднаны.
Файл M3u8, які змяшчае інфармацыю аб сродках масавай інфармацыі
Возьмем у якасці прыкладу файл 0640.m3u8
#EXTM3U
# EXT-X-ВЕРСІЯ: 4
# EXT-X-Мэтавая працягласць: 7
# EXT-X-MEDIA-SEQUENCE: 1
# ТЫП EXT-X-PLAYLIST: VOD
# EXTINF: 6.006,
0640_00001.ts
# EXTINF: 6.006,
0640_00002.ts
# EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLIST Капіюйце код
# EXTM3U і # EXT-X-VERSION - гэта загаловак файла M3U і нумар сумяшчальнай версіі адпаведна. Гэты фармат з'яўляецца ранняй версіяй, таму нумар версіі ніжэйшы за асноўны файл.
EXT-X-TARGETDURATION ўяўляе максімальную працягласць кожнага сегмента прайгравання, 7 - 7 секунд, і сегменты ў гэтым каталогу не могуць перавышаць 7 секунд.
EXT-X-MEDIA-SEQUENCE ўяўляе парадкавы нумар першага сегмента спіса прайгравання, а 1 - тое, што сегмент прайгравання пачынаецца з 1.
#EXTINF ўяўляе працягласць сегмента, 6.006 азначае, што бягучы сегмент складае 6.006s. Інфармацыя пра агульную працягласць відэа атрымліваецца шляхам назапашвання гэтага значэння.
0640_00001.ts - адносны шлях кліпа. Файл ts ўяўляе сабой фрагмент відэа ці аўдыё, і ён можа быць у фарматах ts, mp4, aac і іншых. Таму што было паказана, каб адкрыць з 1
|
Увядзіце адрас электроннай пошты, каб атрымаць сюрпрыз
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
катэгорыі
бюлетэнь