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
# ЕКСТ-Х-ЦЕЛ: 5
#EXTINF: 5,
./0.тс
#EXTINF: 5,
./1.тс
# EXTM3U: Првата линија на секоја датотека M3U8 мора да биде оваа ознака.
# EXT-X-TARGETDURATION: Наведете ја максималната должина на времето на сегментот на медиумот (секунди). Времетраењето одредено во # EXTINF мора да биде помало или еднакво на оваа максимална вредност. Оваа вредност може да се појави само еднаш.
#EXTINF: Опишете ја должината на една медиумска датотека. Следат медиумски датотеки, како што се ./0.ts
2. датотека ts
Датотеката ts е датотека за пренос на проток, главниот формат за видео кодирање е h264 / mpeg4, а аудиото е acc / MP3.
Датотеката ts е поделена на три слоја: ts слој Транспорт на поток, песен слој Пакетен елементарен поток, слој на основниот поток. Слојот es е аудио и видео податок, а слојот pes е информација за описот на рамката за податоци, како што е временската ознака додадена на аудио и видео податоците. Слојот ts е да ги додаде потребните информации за идентификација и пренос на протокот на податоци во слојот pes
Белешка: Деталите се следниве
(1) ts слој Големината на пакетот ts е фиксирана на 188 бајти, а слојот ts е поделен на три дела: заглавие на ts, поле за адаптација и носивост. Заглавието на ts е фиксирано на 4 бајти; полето за адаптација може или не може да постои, а неговата главна функција е да пополни податоци помалку од 188 бајти; носивоста е pes податоци.
заглавие на ts
sync_byte 8b бајт за синхронизација, фиксиран на 0x47
transport_error_indicator 1б Индикатор за грешка во транспортот, што укажува на тоа дека има бескорисен бајт по прилагодливото поле на заглавието ts, обично 0, овој бајт се смета во должината на полето за прилагодување
payload_unit_start_indicator 1b Индикатор за стартување на единицата за вчитување, кој е означен како 1 на почетокот на целосниот пакет со податоци
transport_priority 1b Приоритет на транспорт, 0 е со низок приоритет, 1 е со висок приоритет, обично 0
вредност на pid 13b pid
transport_scrambling_control 2б Контрола на пренесување на транспорт, 00 значи некриптирана
adaptation_field_control 2б Дали да се вклучи полето за адаптација, „00“ е резервирано; „01“ не значи поле за адаптација, само носивост; „10“ значи само полето за адаптација, без носивост; „11“ значи адаптација е вклучена и домен и носивост.
Continity_counter 4b Зголемување на бројачот, од 0-f, почетната вредност не мора да зема 0, но мора да биде континуирана
Содржината на слојот ts се идентификува со PID вредноста, а главната содржина вклучува: табела PAT, табела PMT, аудио поток и видео поток. За да го анализирате потокот ts, прво мора да ја пронајдете табелата PAT, сè додека го пронајдете PAT, можете да го најдете PMT и потоа да ги најдете аудио и видео струите. PID вредноста на табелата PAT е фиксирана на 0. Табелата PAT и табелата PMT треба редовно да се вметнуваат во потокот ts, бидејќи корисникот може да се приклучи на потокот ts во секое време, овој интервал е релативно мал, обично на секои неколку видео рамки за да додадете PAT и PMT. Табелите PAT и PMT се неопходни, и други табели како што се SDT (табела за опис на услугата) исто така може да се додадат, но потокот hls може да се репродуцира се додека има PAT и PMT.
Табела ПАТ: Неговата главна функција е да ја означи PID вредноста на табелата PMT.
PMT табела: Неговата главна функција е да ја одреди PID вредноста на аудио и видео потокот.
Аудио поток / видео поток: Носете аудио и видео содржина.
адаптација
adaptation_field_length 1B должина на полето за адаптација, бројот на бајти позади
знамето 1B трае 0x50 за да означи PCR или 0x40 да не вклучува PCR
Референца за часовник на програмата PCR 5B, референца за часовник на програмата, што се користи за враќање на часовникот за време на системот STC (системски часовник) во согласност со кодирачот.
stuffing_bytes xB бајти за полнење, вредноста е 0xff
Должината на областа за адаптација вклучува еден бајт идентификуван од индикаторот за грешка во преносот. pcr е референца на часовникот на програмата, pcr, dts, pts се сите примероци вредности на истиот часовник на системот, pcr е инкрементален, така што може да се постави како dts вредност, аудио податоците не треба pcr. Ако нема поле, ipad може да игра, но vlc не може да игра. При пакување на потокот ts, табелите PAT и PMT немаат поле за адаптација. Ако должината не е доволна, само пополнете 0xff. И видео-протокот и аудио-протокот треба да додадат поле за адаптација, кое обично се додава на првиот пакет ts и последниот пакет ts на рамката, а средниот пакет ts не се додава.
Формат PAT
table_id 8b PAT табелата е фиксирана на 0x00
section_syntax_indicator 1b е фиксиран на 1
нула 1б е фиксирана на 0
резервираниот 2б е фиксиран на 11
дел_должина 12б Должината на следниве податоци
transport_stream_id 16b ID на транспортен поток, фиксиран како 0x0001
резервираниот 2б е фиксиран на 11
version_number 5b Број на верзија, фиксиран на 00000, ако се промени ПАТ, бројот на верзијата ќе се зголеми за 1
current_next_indicator 1b е фиксиран на 1, што покажува дека оваа табела PAT може да се користи, ако е 0, почекајте ја следната табела PAT
делот_број 8б е фиксиран на 0x00
last_section_number 8b е фиксиран на 0x00
Започнете јамка
програма_број 16б Кога бројот на програмата е 0x0000, тоа значи дека ова е NIT, кога бројот на програмата е 0x0001, тоа значи дека ова е PMT
резервираниот 3б е фиксиран на 111
PID 13b PID вредност што одговара на содржината на бројот на програмата
Крајна јамка
CRC32 32b CRC32 код за проверка на претходните податоци
Формат PMT
table_id 8b PMT табелата има каква било вредност, 0x02
section_syntax_indicator 1b е фиксиран на 1
нула 1б е фиксирана на 0
резервираниот 2б е фиксиран на 11
дел_должина 12б Должината на следниве податоци
програма_број 16б број на канал, што значи канал поврзан со тековната PMT, вредноста е 0x0001
резервираниот 2б е фиксиран на 11
version_number 5b Број на верзија, фиксиран на 00000, ако се промени ПАТ, бројот на верзијата ќе се зголеми за 1
current_next_indicator 1b е фиксиран на 1
делот_број 8б е фиксиран на 0x00
last_section_number 8b е фиксиран на 0x00
резервираниот 3б е фиксиран на 111
PCR_PID 13b PID на пакетот TS каде што се наоѓа PCR (референтен часовник на програмата), назначен како видео PID
резервираниот 4б е фиксиран на 1111
program_info_length 12b Информации за опис на програмата, назначени како 0x000 значи бр
Започнете јамка
stream_type 8b Тип на тек, ознаката е Видео или Аудио или други податоци, кодирањето h.264 одговара на 0x1b, aac кодирањето одговара на 0x0f, mp3 кодирањето одговара на 0x03
резервираниот 3б е фиксиран на 111
elementary_PID 13b PID што одговара на типот на поток
резервираниот 4б е фиксиран на 1111
ES_info_length 12b Информации за описот, означени како 0x000 значи бр
Крајна јамка
CRC32 32b CRC32 код за проверка на претходните податоци
(2) песен слој
Слојот pes додава временски жиг и други информации на секоја видео / аудио рамка. Пакетот pes содржи многу содржина, а ние ги оставаме само најчесто користените.
pes старт код 3B почетен код, фиксиран на 0x000001
аудио вредност на проток id 1B (0xc0-0xdf), обично 0xc0
Видео вредност (0xe0-0xef), обично 0xe0
должина на пакет pes 2B Должината на податоците за pes зад себе, 0 значи неограничена должина,
Само должината на податоците за видеото ќе надмине 0xffff
Знамето 1B обично ја зема вредноста 0x80, што значи дека податоците не се шифрирани, немаат приоритет и се заштитени со податоци
Знаме 1B вредност 0x80 значи само pts, вредност 0xc0 значи pts и dts
должина на податоците pes 1B Должината на следниве податоци, вредноста е 5 или 10
вредност на броеви 5B 33 бита
dts 5B 33 битна вредност
pts е временската ознака на екранот и dts е временската ознака за декодирање. Двете временски ознаки се потребни за видео-податоци. Точките и точките на аудио податоците се исти, затоа се потребни само поени. Постојат две временски ознаки, pts и dts, кои се предизвикани од B рамки. Точките на рамки I и P се еднакви на dts. Ако видеото нема Б рамки, точките секогаш ќе бидат исти како dts. Прочитајте ги видео рамките последователно од датотеката и редоследот на извлечените рамки е иста како низата dts. Алгоритмот dts е релативно едноставен, почетната вредност + инкрементот е доволен, пресметката на pts е покомплицирана и треба да се додаде поместувањето на dts.
Има само точки во аудио pes (исто како и dts), рамките I и P на видеото мора да ги имаат и временските ознаки, а на рамката за видео B треба само pts (исти како dts). За да спакувате точки и точки, треба да го знаете типот на видео рамката, но не можеме да процениме за типот на рамката преку форматот на контејнерот. Мора да ја анализирате содржината h.264 за да добиете тип на рамка.
на пример:
IPBBBP
Редослед за читање: 1 2 3 4 5 6
dts редослед: 1 2 3 4 5 6
pts ред: 1 5 3 2 4 6
Алгоритам за видео dts на барање:
dts = почетна вредност + 90000 / video_frame_rate, почетната вредност може да биде произволно одредена, но најдобро е да не се зема 0, video_frame_rate е стапка на рамка, како што се 23, 30.
pts и dts се засноваат на временска скала, 1s = 90000 временска скала, една рамка треба да биде 90000 / video_frame_rate временска скала.
Поделбата на временската скала на една рамка со фреквенцијата на земање мостри може да се претвори во времетраење на репродукцијата на една рамка
Алгоритам на аудио dts по потреба:
dts = почетна вредност + (90000 * аудио_примери_пер_ рамка) / аудио_пример_резултат, вредноста на аудио_примерите_пер_рамката е поврзана со кодекот, вредноста на aac е 1024, вредноста на mp3 е 1158, аудио_примерот_раст е стапка на земање примероци, како што е 24000, 41000. AAC декодира рамка од 1024 примероци по канал, што значи дека времетраењето на рамката е 1024 / примерок_раст секунди. Значи, временскиот печат на секоја рамка е 0, 1024 / примерок_рејт, ..., 1024 * n / примерок_раст секунди.
DTS и pts на видеото во живо треба директно да го користат времето во преносот на податоци во живо и не треба да се пресметуваат со формули.
(3) слој
Слојот es се однесува на аудио и видео податоци, ние воведуваме само h.264 видео и aac аудио.
видео 264:
За да ги спакуваме податоците h.264, мора да додадеме nalu (мрежна единица за апстракција на слоеви) на видео-податоците. Налу вклучува заглавие на налу и тип на налу. Заглавието на nalu е фиксирано на 0x00000001 (почеток на рамка) или 0x000001 (во рамка). Податоците за h.264 се составени од парчиња, а содржината на парчињата вклучува: видео, sps, pps, итн. Налу типот ја одредува содржината на последователните h.264 податоци.
F 1b забрането_ нула_бит, h.264 предвидува дека мора да биде 0
NRI 2b nal_ref_idc, вредност 0 ~ 3, укажува на важноста на овој nalu, I рамката, SPS, pps обично земаат 3, P рамката обично трае 2, а B рамката обично трае 0
Тип 5б упатете се на табелата подолу
опис на типот nal_unit
0 не се користи
1 Не-IDR слика, IDR се однесува на рамката на клучот
2 парчиња партиција А.
3 парчиња партиција Б.
|
Внесете е-пошта за да добиете изненадување
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 безжичен пренесува видео и аудио полесно!
Контакт
адреса:
Бр.305 Соба ХуиЛан зграда бр.273 Хуанпу пат Гуангжу Кина 510620
категории
Билтен