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
Bir neçə gün əvvəl HTTP canlı yayım (HLS) texnologiyasını öyrənmək və C + + ilə yazılmış bir HLS kodlayıcı hlsliveencoder tətbiq etmək üçün bir az vaxt sərf etdim. Funksiyası kamera və mikrofonu, real vaxt H.264 video kodlamasını və aac audio kodlamasını çəkmək və HLS protokol spesifikasiyasına görə, bölünmüş standart TS faylı və m3u8 indeks sənədini yaratmaqdır. Hlsliveencoder və üçüncü tərəf HTTP serverim (məsələn, nginx) vasitəsilə HTTP-nin canlı yayımını uğurla həyata keçirdik və iPhone-da sınaqdan keçdik. Qazancların bir hissəsini buraya yazacam.
1. HLS Texnologiyasının təhlili
HTTP canlı yayım (HLS), canlı və istəyə əsasən axın mediyasını həyata keçirə bilən, Apple Inc tərəfindən tətbiq olunan HTTP-yə əsaslanan bir axın media nəqli protokoludur. Əsasən IOS sistemində IOS cihazları (iPhone və iPad kimi) üçün audio və video canlı və istəyə uyğun həllər təmin etmək üçün istifadə olunur. Tələb olunan HLS, əsasən tələb olunan ümumi bir seqmentli HTTP-dir. Fərq, seqmentlərinin çox kiçik olmasıdır. HLS-i tələbə uyğun həyata keçirmək üçün əsas media sənədlərini bölməkdir. Hazırda istifadə edilə bilən bir çox açıq mənbəli vasitə var. Burada müzakirə etməyəcəyəm, sadəcə HLS canlı yayım texnologiyasından danış.
RTMP protokolu, RTSP protokolu, MMS protokolu və s. Kimi ümumi canlı yayım protokolları ilə müqayisədə HLS canlı yayımının ən böyük fərqi, canlı müştərinin tam bir məlumat axını almamasıdır. HLS protokolu canlı məlumat axınını server tərəfində davamlı, qısamüddətli və uzun media sənədləri (mpeg-ts formatı) kimi saxlayır, müştəri tərəfi isə bu kiçik faylları davamlı olaraq yükləyir və oynayır, çünki server tərəfi həmişə yeni kiçik fayllar yaradır. son canlı məlumat, belə ki müştəri tərəfi yalnız canlı həyata keçirmək üçün serverdən alınan faylları oynamalıdır. Görünür ki, HLS VOD texnologiyası vasitəsi ilə canlı yayımı həyata keçirir. Məlumat HTTP protokolu vasitəsilə ötürüldüyü üçün, firewall və ya proxy problemini nəzərə almağa ehtiyac qalmır və faylları bölmək vaxtı çox azdır. Müştəri tez bir zamanda müxtəlif bant genişliyi şəraitində səsləndirməyə uyğunlaşmaq üçün kod dərəcəsini seçib dəyişə bilər. Bununla birlikdə, HLS-in texniki xüsusiyyətləri səbəbindən gecikmə həmişə adi canlı yayım protokolundan daha yüksəkdir.
Yuxarıdakı anlayışa görə, HTTP canlı yayımını canlı olaraq əldə etmək üçün aşağıdakı əsas texnologiyaları öyrənməli və tətbiq etməliyik.
(1) Video mənbəyi və səs mənbəyi məlumatlarını toplayın
(2) Orijinal məlumatlar H264 və AAC tərəfindən kodlanır
(3) Video və səs məlumatları mpeg-ts paketləri şəklində paketlənir
(4) HLS seqmentasiya generasiya strategiyası və m3u8 indeks faylı
2. HTTP nəqliyyat protokolu
Bunların arasında əvvəlki məqaləmdə birinci və ikinci məqamlardan bəhs olundu və son nöqtə mövcud HTTP serverindən istifadə edə biləcəyimizə görə üçüncü və dördüncü nöqtələrin tətbiqi açardır.
(1) Proqram çərçivəsi və tətbiqi
Yuxarıda göstərilən analizlər nəticəsində HLS canlı kodlayıcı məntiqi və prosesi əsasən aydındır: səs və video kodlaşdırma mövzularını işə salın, DirectShow (və ya digər) texnologiya vasitəsi ilə səs və video əldə olunmasını həyata keçirin və sonra video üçün sırasıyla libx264 və libfaac-ı axtarın və audio kodlaşdırma. İki kodlama mövzuları səs və video məlumatlarını real vaxtda kodladıqdan sonra, xüsusi bölmə strategiyasına uyğun olaraq mpeg-ts formatında bir seqment faylında saxlayırlar. Bir seqment faylı saxlanıldıqda, m3u8 indeks faylı yenilənir. Aşağıdakı şəkildə göstərildiyi kimi:
Yuxarıdakı şəkildə video və səs məlumatlarını aldıqdan sonra hlsliveencoder-in əvvəlcə mövcud bölmənin bitib-bitməməsini təyin etməsi və TS bölməsinin davamlı nəslini davam etdirmək üçün yeni bir bölmə yaratması lazımdır. Qeyd etmək lazımdır ki, yeni parçalanma oyunçunun kodunu açmağın qarşısını almaq üçün açar çərçivədən başlamalıdır. Əsas kod aşağıdakı kimidir:
Tsmuxer interfeysi də nisbətən sadədir.
(2) HLS seqmenti yaratmaq strategiyası və m3u8
① Seqmentasiya strategiyası
HLS-nin seqmentasiya strategiyasının əsasən hər 10 saniyədə bir bölünməsi tövsiyə olunur. Əlbətdə ki, spesifik vaxt bölünmənin həqiqi uzunluğuna görə qeyd olunmalıdır
Ümumiyyətlə, önbelleğe və digər səbəblərə görə son üç fragman ünvanı indeks sənədində saxlanılır və "sürüşmə pəncərə" şəklində yenilənir.
② m3u8 sənədinin tətbiqi
M3u8, HTTP canlı axınının indeks sənədidir. M3u8 kimi qəbul edilə bilər. M3U formatlı faylın əsas etibarı ilə fərq, m3u8 faylının UTF-8 simvol kodlaşdırmasından istifadə etməsidir.
Kodu kopyalayın
# Extm3u M3U fayl başlığı, ilk sətirdə yerləşdirilməlidir
# Ext-x-media ardıcıllığının ilk TS seqmentinin seriya nömrəsi
# Ext-x-targetduration hər TS seqmentinin maksimum müddəti
# Ext-x-allow-cache önbelleğe icazə verir
Ext-x-endlist m3u8 sənədinin # sonu
# Əlavə məlumat əlavə edin, müddət, bant genişliyi və s. Kimi bölünən məlumat
|
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