FMUSER Wirless Video və Səsi Daha Asan ötürür!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
HLS və Http Live Streaming, Apple tərəfindən təyin olunan real vaxt axını üçün protokollardır. HLS HTTP protokolu əsasında həyata keçirilir. Yayım məzmunu iki hissədən ibarətdir, biri M3U8 təsvir sənədidir, digəri isə TS media sənədidir.
1. M3U8 faylı
Media faylı bir sıra etiketlərdən ibarət olan mətndə təsvir olunur.
#EXTM3U
# EXT-X-Hədəf: 5
# ÇIXARIŞ: 5,
./0.ts
# ÇIXARIŞ: 5,
./1.ts
# EXTM3U: Hər bir M3U8 sənədinin ilk sətri bu etiket olmalıdır.
# EXT-X-Hədəf: Maksimum media seqmentinin uzunluğunu (saniyə) göstərin. #EXTINF-də göstərilən vaxt uzunluğu bu maksimum dəyərdən az və ya bərabər olmalıdır. Bu dəyər yalnız bir dəfə görünə bilər.
# EXTINF: Tək bir media sənədinin uzunluğunu təsvir edin. ./0.ts kimi media faylları izləyir
2. ts faylı
Ts faylı bir nəqliyyat axını faylıdır, əsas video kodlaşdırma formatı h264 / mpeg4, səs isə acc / MP3-dir.
Ts faylı üç təbəqəyə bölünür: ts qat Nəqliyyat axını, pes qat Paket Elemental Stream, es qat Elementary Stream. Es təbəqəsi səs və video məlumatlarıdır və pes təbəqəsi, səs və video məlumatlarına əlavə edilmiş zaman damgası kimi məlumat çərçivəsi təsvir məlumatlarıdır. Ts təbəqəsi, pes qatındakı məlumat axınının müəyyənləşdirilməsi və ötürülməsi üçün lazımi məlumatları əlavə etməkdir
Qeyd: təfərrüatlar aşağıdakı kimidir
(1) ts qat Ts paketin ölçüsü 188 bayta sabitlənir və ts qat üç hissəyə bölünür: ts başlığı, uyğunlaşma sahəsi və faydalı yük. Ts başlığı 4 bayta sabitlənmişdir; uyğunlaşma sahəsi ola bilər və ya olmaya bilər və əsas funksiyası 188 baytdan az məlumat doldurmaqdır; faydalı yük pes məlumatlarıdır.
ts başlığı
8x0-də sabitlənmiş sync_byte 47b sinxronizasiya baytı
transport_error_indicator 1b ts başlığının uyğunlaşma sahəsindən sonra yararsız bir bayt olduğunu göstərən nəqliyyat səhv göstəricisi, ümumiyyətlə 0, bu bayt uyğunlaşma sahəsinin uzunluğunda sayılır
payload_unit_start_indicator 1b Tam bir məlumat paketinin əvvəlində 1 kimi qeyd olunan yükləmə vahidinin başlanğıc göstəricisi
transport_priority 1b Nəqliyyat prioriteti, 0 aşağı prioritet, 1 yüksək prioritetdir, ümumiyyətlə 0
pid 13b pid dəyəri
transport_scrambling_control 2b Nəqliyyat dırmaşma nəzarəti, 00 şifrələnməmiş deməkdir
adaptation_field_control 2b Uyğunlaşma sahəsinin daxil olub-olmaması, '00' qorunur; '01' uyğunlaşma sahəsi yoxdur, yalnız faydalı yük deməkdir; '10' yalnız uyğunlaşma sahəsi deməkdir, faydalı yük yoxdur; '11' uyğunlaşmanın Domain və faydalı yükə də daxil olduğunu göstərir.
davamlılıq_counter 4b 0-f-dən artan sayğac, başlanğıc dəyəri mütləq 0 almır, lakin davamlı olmalıdır
Ts qatının məzmunu PID dəyəri ilə müəyyən edilir və əsas məzmuna aşağıdakılar daxildir: PAT cədvəli, PMT cədvəli, səs axını və video axını. Ts axınını təhlil etmək üçün əvvəlcə PAT cədvəlini tapmaq lazımdır, PAT-ı tapdığınız müddətdə PMT-ni, sonra isə audio və video axınlarını tapa bilərsiniz. PAT cədvəlinin PID dəyəri 0 olaraq təyin edilmişdir. PAT cədvəli və PMT cədvəlinin mütəmadi olaraq ts axınına daxil edilməsi lazımdır, çünki istifadəçi istənilən vaxt ts axınına qoşula bilər, bu aralıq nisbətən azdır, ümumiyyətlə hər bir neçə PAT və PMT əlavə etmək üçün video çərçivələr. PAT və PMT cədvəlləri lazımdır və SDT (xidmət təsviri cədvəli) kimi digər cədvəllər də əlavə edilə bilər, lakin PAT və PMT olduğu müddətdə hls axını oynanır.
PAT cədvəli: Əsas funksiyası PMT cədvəlinin PID dəyərini göstərməkdir.
PMT cədvəli: Əsas funksiyası səs və video axınının PID dəyərini təyin etməkdir.
Səs axını / video axını: Səs və video məzmunu daşıyın.
uyğunlaşma
adaptasiya_ sahə_length 1B uyğunlaşma sahəsi uzunluğu, arxadakı bayt sayı
bayraq 1B, PCR-i göstərmək üçün 0x50, ya da PCR-i daxil etməmək üçün 0x40 çəkir
PCR 5B Proqram Saatı Referansı, proqram saatı referansı, kodlayıcıya uyğun sistem zamanlama saatını (sistem vaxtı saat) bərpa etmək üçün istifadə olunur.
stuffing_bytes xB doldurma baytları, dəyəri 0xff
Uyğunlaşma sahəsinin uzunluğu ötürmə xətası göstəricisi ilə müəyyən edilmiş bir baytı əhatə etməlidir. pcr proqram saatı referansıdır, pcr, dts, pts hamısı eyni sistem saatının seçilmiş dəyərləridir, pcr artımlıdır, buna görə də dts dəyəri olaraq təyin edilə bilər, səs məlumatlarına pcr lazım deyil. Sahə yoxdursa, ipad oynaya bilər, ancaq vlc oynaya bilməz. Ts axını qablaşdırarkən, PAT və PMT masalarında uyğunlaşma sahəsi yoxdur. Uzunluq kifayət deyilsə, yalnız 0xff doldurun. Həm video axınının, həm də səs axınının bir uyğunlaşma sahəsi əlavə etməsi lazımdır ki, bu da adətən ilk ts paketinə və bir çərçivənin son ts paketinə əlavə olunur və orta ts paketi əlavə edilmir.
PAT formatı
table_id 8b PAT cədvəli 0x00 olaraq sabitlənmişdir
bölüm_syntax_indicator 1b 1-ə bərabərdir
sıfır 1b 0-da sabitlənir
ayrılmış 2b 11-ə düzəldilmişdir
section_length 12b Aşağıdakı məlumatların uzunluğu
transport_stream_id 16b 0x0001 olaraq təyin edilmiş nəqliyyat axını identifikatoru
ayrılmış 2b 11-ə düzəldilmişdir
version_number 5b Versiya nömrəsi, 00000 olaraq təyin edilmiş, PAT dəyişərsə, versiya nömrəsi 1 artacaqdır
current_next_indicator 1b 1-ə düzəldilib, bu PAT cədvəlinin istifadə oluna biləcəyini ifadə edir, 0 olduqda növbəti PAT cədvəlini gözləyin
section_number 8b 0x00 olaraq sabitlənmişdir
last_section_number 8b 0x00 olaraq sabitlənmişdir
Başlanğıc dövrü
program_number 16b Proqram nömrəsi 0x0000 olduqda bunun NIT, proqram nömrəsi 0x0001 olduqda PMT olduğu deməkdir
ayrılmış 3b 111-ə düzəldilmişdir
Proqram nömrəsinin məzmununa uyğun PID 13b PID dəyəri
Son döngə
Əvvəlki məlumatların CRC32 32b CRC32 yoxlama kodu
PMT formatı
table_id 8b PMT cədvəlinin hər hansı bir dəyəri var, 0x02
bölüm_syntax_indicator 1b 1-ə bərabərdir
sıfır 1b 0-da sabitlənir
ayrılmış 2b 11-ə düzəldilmişdir
section_length 12b Aşağıdakı məlumatların uzunluğu
program_sayı 16b kanal nömrəsi, yəni mövcud PMT ilə əlaqəli kanal deməkdir, dəyəri 0x0001
ayrılmış 2b 11-ə düzəldilmişdir
version_number 5b Versiya nömrəsi, 00000 olaraq təyin edilmiş, PAT dəyişərsə, versiya nömrəsi 1 artacaqdır
current_next_indicator 1b 1-ə bərabərdir
section_number 8b 0x00 olaraq sabitlənmişdir
last_section_number 8b 0x00 olaraq sabitlənmişdir
ayrılmış 3b 111-ə düzəldilmişdir
PCR_PID 13b Video PID olaraq təyin edilmiş PCR-nin (proqram istinad saatı) yerləşdiyi TS paketinin PID-si
ayrılmış 4b 1111-ə düzəldilmişdir
program_info_length 12b 0x000 olaraq təyin olunan proqram təsviri məlumatı yox deməkdir
Başlanğıc dövrü
stream_type 8b Axın növü, işarəsi Video və ya Səs və ya digər məlumatlardır, h.264 kodlaşdırma 0x1b-yə, aac kodlaşdırma 0x0f-ə, mp3 kodlaşdırma 0x03-ə uyğundur
ayrılmış 3b 111-ə düzəldilmişdir
stream_type uyğun elementary_PID 13b PID
ayrılmış 4b 1111-ə düzəldilmişdir
ES_info_length 12b Təsvir məlumatı, 0x000 olaraq təyin edilmiş, yox deməkdir
Son döngə
Əvvəlki məlumatların CRC32 32b CRC32 yoxlama kodu
(2) pes qat
PES təbəqəsi hər video / səs çərçivəsinə zaman damgası və digər məlumatlar əlavə edir. PES paketi bir çox məzmundan ibarətdir və biz yalnız ən çox istifadə olunanları buraxırıq.
pes başlanğıc kodu 3B başlanğıc kodu, 0x000001 olaraq sabitlənmişdir
axın id 1B səs dəyəri (0xc0-0xdf), ümumiyyətlə 0xc0
Video dəyəri (0xe0-0xef), ümumiyyətlə 0xe0
pes paket uzunluğu 2B arxasındakı pes məlumatlarının uzunluğu, 0 məhdudiyyətsiz uzunluq deməkdir,
Yalnız video məlumat uzunluğu 0xffff-dən çox olacaq
Bayraq 1B ümumiyyətlə 0x80 dəyərini alır, yəni məlumatların şifrələnməməsi, prioritetinin olmaması və məlumatların yedəklənməsi deməkdir
Bayraq 1B dəyəri 0x80 yalnız pts, 0xc0 dəyəri pts və dts deməkdir
pes data length 1B Aşağıdakı məlumatların uzunluğu, dəyəri 5 və ya 10-dur
pts 5B 33bit dəyər
dts 5B 33bit dəyər
pts ekran zaman damğası və dts kod açma vaxtı damğasıdır. Video məlumatları üçün hər iki zaman damgası tələb olunur. Səs verilənlərinin nöqtələri və nöqtələri eynidir, buna görə yalnız ballara ehtiyac var. B çərçivələrindən qaynaqlanan iki zaman damgası, pts və dts var. I və P çərçivələrin nöqtələri dts-ə bərabərdir. Bir videoda B kare yoxdursa, pts həmişə dts ilə eyni olacaq. Video çərçivələrini fayldan ardıcıl oxuyun və çıxarılan kadrların ardıcıllığı dts ardıcıllığı ilə eynidir. DTS alqoritmi nisbətən sadədir, başlanğıc dəyəri + artımı kifayətdir, pts hesablanması daha mürəkkəbdir və ofsetin dts-ə əlavə edilməsi lazımdır.
Səs peslərində yalnız nöqtələr var (dts ilə eyni), videonun I və P kadrlarında hər iki zaman damgası olmalıdır və video B kadrında yalnız ballar lazımdır (dts ilə eyni). PTS və dts paketləmək üçün video çərçivə növünü bilməlisiniz, ancaq konteyner formatına görə çərçivə növünü qiymətləndirə bilmərik. Çərçivə növünü almaq üçün h.264 məzmununu təhlil etməlisiniz.
məsələn:
IPBBBP
Oxu qaydası: 1 2 3 4 5 6
dts sifarişi: 1 2 3 4 5 6
pts sifarişi: 1 5 3 2 4 6
İstəyə uyğun video dts alqoritmi:
dts = başlanğıc dəyəri + 90000 / video_frame_rate, başlanğıc dəyəri özbaşına olaraq göstərilə bilər, amma ən yaxşısı 0 götürməyin, video_frame_rate 23, 30 kimi kadr dərəcəsidir.
pts və dts zaman şkalasına əsaslanır, 1s = 90000 zaman ölçüsü, bir çərçivə 90000 / video_frame_rate zaman şkalası olmalıdır.
Bir kadrın zaman şkalasını seçmə tezliyinə bölmək bir kadrın oxunma müddətinə çevrilə bilər
İstəyə uyğun audio dts alqoritmi:
dts = başlanğıc dəyəri + (90000 * audio_samples_per_frame) / audio_sample_rate, audio_samples_per_frame dəyəri kodeklə əlaqəlidir, aac dəyəri 1024, mp3 dəyəri 1158, audio_sample_rate, 24000, 41000 kimi seçmə nisbətidir. AAC bir çərçivəni dekodlayır Kanal başına 1024 nümunə, yəni kadrın müddəti 1024 / sample_rate saniyə deməkdir. Beləliklə, hər bir çərçivənin zaman damgası 0, 1024 / sample_rate, ..., 1024 * n / sample_rate saniyəsidir.
Canlı videonun nöqtələri və nöqtələri birbaşa canlı məlumat axınındakı vaxtdan istifadə etməli və formullarla hesablanmamalıdır.
(3) es qat
Es qat səs və video məlumatlarına aiddir, yalnız h.264 video və aac audio təqdim edirik.
h.264 video:
H.264 məlumatlarını qablaşdırmaq üçün video məlumatlarına bir nalu (Şəbəkə Abstraksiya Qatı vahidi) əlavə etməliyik. Nalu nalu başlığını və nalu növünü əhatə edir. Nalu başlığı 0x00000001 (çərçivənin başlanğıcı) və ya 0x000001 (çərçivədə) kimi sabitlənir. H.264 məlumatları dilimlərdən ibarətdir və dilimlərin tərkibinə aşağıdakılar daxildir: video, sps, pps və s. Nalu növü sonrakı h.264 məlumatlarının məzmununu müəyyənləşdirir.
F 1b yasaq_zero_bit, h.264, bunun 0 olmasını şərtləndirir
NRI 2b nal_ref_idc, dəyəri 0 ~ 3, bu nalunun əhəmiyyətini göstərir, mən çərçivə, sps, pps ümumiyyətlə 3, P çərçivə ümumiyyətlə 2, B çərçivə ümumiyyətlə 0 alır
5b növü aşağıdakı cədvələ baxın
nal_unit_type təsviri
0 istifadə olunmayıb
1 IDR olmayan şəkil, IDR əsas çərçivəyə aiddir
2 dilim bölmə A
3 dilim bölmə B
|
Sürpriz almaq üçün e-poçt daxil edin
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
FMUSER Wirless Video və Səsi Daha Asan ötürür!
Əlaqə
Ünvan:
No. 305 Otaq HuiLan Bina No.273 Huanpu Yolu Guangzhou Çin 510620
Kateqoriyalar
Newsletter