FMUSER Kablosuz Video ve Sesi Daha Kolay İletin!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Arnavutça
ar.fmuser.org -> Arapça
hy.fmuser.org -> Ermeni
az.fmuser.org -> Azerice
eu.fmuser.org -> Bask Dili
be.fmuser.org -> Beyaz Rusça
bg.fmuser.org -> Bulgar
ca.fmuser.org -> Katalanca
zh-CN.fmuser.org -> Çince (Basitleştirilmiş)
zh-TW.fmuser.org -> Çince (Geleneksel)
hr.fmuser.org -> Hırvatça
cs.fmuser.org -> Çekçe
da.fmuser.org -> Danca
nl.fmuser.org -> Hollandalı
et.fmuser.org -> Estonca
tl.fmuser.org -> Filipinli
fi.fmuser.org -> Fince
fr.fmuser.org -> Fransızca
gl.fmuser.org -> Galiçyaca
ka.fmuser.org -> Gürcüce
de.fmuser.org -> Almanca
el.fmuser.org -> Yunanca
ht.fmuser.org -> Haiti Kreyolu
iw.fmuser.org -> İbranice
hi.fmuser.org -> Hintçe
hu.fmuser.org -> Macar
is.fmuser.org -> İzlandaca
id.fmuser.org -> Endonezya
ga.fmuser.org -> İrlandalı
it.fmuser.org -> İtalyan
ja.fmuser.org -> Japonca
ko.fmuser.org -> Korece
lv.fmuser.org -> Letonca
lt.fmuser.org -> Litvanya
mk.fmuser.org -> Makedonca
ms.fmuser.org -> Malayca
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Farsça
pl.fmuser.org -> Lehçe
pt.fmuser.org -> Portekizce
ro.fmuser.org -> Romen
ru.fmuser.org -> Rusça
sr.fmuser.org -> Sırpça
sk.fmuser.org -> Slovakça
sl.fmuser.org -> Slovence
es.fmuser.org -> İspanyolca
sw.fmuser.org -> Svahili
sv.fmuser.org -> İsveççe
th.fmuser.org -> Tay
tr.fmuser.org -> Türkçe
uk.fmuser.org -> Ukraynaca
ur.fmuser.org -> Urduca
vi.fmuser.org -> Vietnamca
cy.fmuser.org -> Galce
yi.fmuser.org -> Yidiş
Bugün, Apple tarafından önerilen ve tanıtılan HLS anlaşmasını tanıtacağım. İşte Wikipedia'dan bir tanım.
HTTP Canlı Akışı (HLS olarak kısaltılır), Apple tarafından önerilen HTTP tabanlı bir akış ortamı ağı iletim protokolüdür. Apple'ın QuickTime X ve iPhone yazılım sistemlerinin bir parçasıdır. Tüm akışı, indirilecek küçük HTTP tabanlı dosyalara bölerek ve bir seferde yalnızca birkaçını indirerek çalışır. Medya akışı oynatılırken, müşteri aynı kaynağı birçok farklı alternatif kaynaktan farklı oranlarda indirmeyi seçebilir, bu da medya akışı oturumunun farklı veri hızlarına uyum sağlamasına izin verir. Bir medya akışı oturumu başlatırken, müşteri mevcut medya akışlarını bulmak için meta verileri içeren genişletilmiş bir M3U (m3u8) çalma listesi dosyası indirecektir.
HLS yalnızca temel HTTP mesajlarını ister. Gerçek Zamanlı Aktarım Protokolünün (RTP) aksine, HLS, HTTP verilerinin geçmesine izin veren herhangi bir güvenlik duvarı veya proxy sunucusundan geçebilir. Medya akışlarını iletmek için içerik dağıtım ağlarını kullanmak da kolaydır.
Apple, HLS protokolünü, ilk aşamada gayri resmi bir standart olarak IETF'e sunulan bir İnternet taslağı (adım adım sunulan) olarak görüyor. Bununla birlikte, Apple zaman zaman bazı küçük güncellemeler sunsa da, IETF bu standardın geliştirilmesiyle ilgili başka herhangi bir işlem yapmamıştır. [1]
1. Sözleşmeye giriş
HLS sözleşmesi şunları şart koşmaktadır:
(1) Videonun paketleme formatı TS'dir.
(2) Video kodlama formatı H264 ve ses kodlama formatı MP3, AAC veya AC-3'tür.
(3) TS video dosyasının kendisine ek olarak, oynatmayı kontrol etmek için kullanılan bir m3u8 dosyası (metin dosyası) da tanımlanmıştır.
Apple neden HLS protokolünü öneriyor? Aslında, esas olarak RTMP protokolündeki bazı problemleri çözmektir. Örneğin, RTMP protokolü veri iletmek için standart bir HTTP arabirimi kullanmaz, bu nedenle bazı özel ağ ortamlarında bir güvenlik duvarı tarafından engellenebilir. Ancak, HLS veri iletmek için HTTP protokolünü kullandığından, güvenlik duvarı tarafından korunma durumuyla karşılaşmayacaktır (80 arayüzünün geçmesine izin vermeyecek bir güvenlik duvarı yoktur).
Yüke ek olarak, RTMP durum bilgisi olan bir protokoldür ve video akışını oynatan her istemci için durumu sürdürmesi gerektiğinden video sunucusunu sorunsuz bir şekilde genişletmek zordur. HLS, durumsuz protokole (HTTP) dayanırken, istemci yalnızca sunucuda depolanan sıradan TS dosyalarını sırayla indirir ve denge, sıradan HTTP dosya sunucusunun yük dengelemesi kadar basittir.
Ek olarak, HLS protokolünün kendisi bit hızı uyarlamasını uygular ve farklı bant genişliklerine sahip cihazlar otomatik olarak bit hızlarına en uygun video oynatmaya geçebilir. Aslında HLS'nin en büyük avantajı babasının Apple olmasıdır. Apple, yalnızca kendi IOS aygıtlarında ve terk edilmiş flaşta HLS için yerel destek sağlar. Android ayrıca Pingguo'nun "egzotik prestiji" tarafından HLS'yi yerel olarak desteklemeye zorlanıyor. Bu şekilde Adobe'nin flv ve rtmp gibi video çözümleri, mobil cihazlarda oynatılması için fazladan çalışma gerektirir. Elbette, flaşın mobil cihazlarda yarattığı yüksek performans baskısı aslında kendi sorunu. Bununla birlikte, HLS'nin üstesinden gelinemeyecek bazı tuzakları da vardır. Örneğin, HLS protokolünü kullanan canlı videonun gecikme süresi 10 saniyeden daha aza indirilemezken, RTMP protokolünün gecikmesi 3 veya 4 saniye kadar düşük olabilir. Bu nedenle, canlı yayın gecikmelerine daha duyarlı hizmetler için lütfen HLS'yi dikkatli kullanın.
Bu resmi açıklamama izin verin. Soldan sağa, sol alttaki girişlerin video kaynağının hangi formatta olduğu önemli değildir. Onunla sunucu arasındaki iletişim protokolü de isteğe bağlı olabilir (RTMP gibi). Kısacası, sadece video verilerini sunucuya iletin. Sadece git. Bu video, sunucu sunucusunda HLS formatındaki video dosyalarına (hem TS hem de m3u8 dosyaları) dönüştürülür. Ayrıntılı olarak, sunucudaki Ortam kodlayıcı, video kaynağındaki video verilerinin hedef kodlama formatının (H264) video verilerine dönüştürülmesinden sorumlu bir kod dönüştürme modülüdür. Video kaynağının kodlama formatı herhangi bir video kodlama formatı olabilir (Bkz. "Video Teknolojisinin Temelleri"). H264 video verilerine kod dönüştürüldükten sonra video, akış segmenter modülünde dilimlenir ve dilimin sonucu, dizin dosyası (m3u8) ve ts dosyasıdır. Resimdeki Dağıtım aslında sadece sıradan bir HTTP dosya sunucusudur ve bu durumda müşterinin yalnızca birinci seviye indeks dosyasının yoluna erişmesi gerekir ve HLS video akışını otomatik olarak oynatır.
2. HLS dizin dosyası
Sözde dizin dosyası, daha önce bahsedilen m3u8 metin dosyasıdır.
Yukarıdaki şekilde gösterildiği gibi, istemcinin HLS video akışını oynatma mantığı aslında çok basittir. İlk olarak, ikinci düzey dizin dosyasının adresini (Alternatif-A, Alternatif-B, Alternatif-C) kaydeden birinci düzey Dizin dosyasını indirin ve ardından müşteri İstemci daha sonra ikincil dizin dosyasını ve indirmeyi indirir TS dosyasının adresi ikincil dizin dosyasına kaydedilir, böylece müşteri TS video dosyalarını sırayla indirebilir ve sürekli olarak oynatabilir.
(1) Birinci düzey dizin dosyası
Video kaynağı: 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
bant genişliği, video akışının bit hızını belirtir. PROGRAM-ID işe yaramaz ve dikkat edilmesi gerekmez. Her # EXT-X-STREAM-INF'in sonraki satırı, ikincil dizin dosyasının yoludur. Göreli bir yol veya mutlak bir yol kullanabilirsiniz. Örnekte göreceli yol kullanılmıştır. Bu dosya, farklı bit hızındaki video akışlarının ikincil dizin dosyası yolunu kaydeder. İstemci, hangi video akışının oynatılacağına karar vermek için kendi mevcut ağ bant genişliğini değerlendirebilir. Ayrıca, ağ bant genişliği değiştiğinde bant genişliğiyle eşleşen bir video akışına sorunsuz bir şekilde geçebilir.
#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
İkincil dosya aslında ts dosyasının indirme adresini vermekten sorumludur ve ilgili yol da burada kullanılır. #EXTINF, her bir ts dilim video dosyasının süresini temsil eder. # EXT-X-TARGETDURATION, geçerli video akışındaki dilim dosyasının maksimum süresini belirtir; bu, bu ts dilimlerinin süresinin # EXT-X-TARGETDURATION değerinden büyük olamayacağı anlamına gelir. # EXT-X-PLAYLIST-TYPE: VOD, mevcut video akışının canlı bir akış değil, isteğe bağlı bir akış olduğu anlamına gelir. Diğer bir deyişle, videonun tüm ts dosyaları oluşturulmuştur, # EXT-X- ENDLIST videonun sonunu gösterir. Bu işaretin olması, mevcut akışın canlı olmayan bir akış olduğunu da gösterir.
3. Oynatma modu
Talep üzerine VOD'nin özelliği, tüm dizin dosyalarının ve ts dosyalarının geçerli zaman noktasında elde edilebilmesi ve tüm ts dosyalarının adreslerinin ikincil dizin dosyasına kaydedilmesidir. Bu mod, istemcilerin tüm içeriğe erişmesine izin verir. Yukarıdaki örnek, talep üzerine modda m3u8'in yapısıdır.
Canlı mod, M3u8 ve ts dosyalarını gerçek zamanlı olarak oluşturmaktır. Dizin dosyası her zaman dinamik olarak değişir ve videoyu oynatmak için en son oluşturulan ts dosyasını elde etmek için kayıttan yürütme sırasında ikincil dizin dosyasını sürekli olarak indirmesi gerekir. İkincil bir dizin dosyasının sonunda # EXT-X-ENDLIST işareti yoksa, bunun bir Canlı video akışı olduğu anlamına gelir.
İstemci VOD modunda bir video oynatırken, tüm ts dosyalarının indirme adreslerini almak için aslında yalnızca birinci düzey dizin dosyasını ve ikinci düzey dizin dosyasını bir kez indirmesi gerekir. İstemci bit hızını değiştirmedikçe, herhangi bir dizin dosyasını indirmeye gerek yoktur. Sadece sırayla ts dosyalarını indirin ve oynatın. Ancak Canlı mod biraz farklıdır, çünkü oynatma sırasında yeni ts dosyası da oluşturulur, bu nedenle istemci aslında ikinci düzey dizin dosyasını bir kez indirir, ardından ts dosyasını indirir ve ardından ikinci düzey dizin dosyasını indirir ( bu kez bu İkincil indeks dosyası yeniden yazılmıştır, yeni oluşturulan ts dosyasının indirme adresi kaydedilir) ve ardından yeni ts dosyası indirilir ve bu şekilde oynatma tekrarlanır.
|
Sürpriz almak için e-posta girin
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Arnavutça
ar.fmuser.org -> Arapça
hy.fmuser.org -> Ermeni
az.fmuser.org -> Azerice
eu.fmuser.org -> Bask Dili
be.fmuser.org -> Beyaz Rusça
bg.fmuser.org -> Bulgar
ca.fmuser.org -> Katalanca
zh-CN.fmuser.org -> Çince (Basitleştirilmiş)
zh-TW.fmuser.org -> Çince (Geleneksel)
hr.fmuser.org -> Hırvatça
cs.fmuser.org -> Çekçe
da.fmuser.org -> Danca
nl.fmuser.org -> Hollandalı
et.fmuser.org -> Estonca
tl.fmuser.org -> Filipinli
fi.fmuser.org -> Fince
fr.fmuser.org -> Fransızca
gl.fmuser.org -> Galiçyaca
ka.fmuser.org -> Gürcüce
de.fmuser.org -> Almanca
el.fmuser.org -> Yunanca
ht.fmuser.org -> Haiti Kreyolu
iw.fmuser.org -> İbranice
hi.fmuser.org -> Hintçe
hu.fmuser.org -> Macar
is.fmuser.org -> İzlandaca
id.fmuser.org -> Endonezya
ga.fmuser.org -> İrlandalı
it.fmuser.org -> İtalyan
ja.fmuser.org -> Japonca
ko.fmuser.org -> Korece
lv.fmuser.org -> Letonca
lt.fmuser.org -> Litvanya
mk.fmuser.org -> Makedonca
ms.fmuser.org -> Malayca
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Farsça
pl.fmuser.org -> Lehçe
pt.fmuser.org -> Portekizce
ro.fmuser.org -> Romen
ru.fmuser.org -> Rusça
sr.fmuser.org -> Sırpça
sk.fmuser.org -> Slovakça
sl.fmuser.org -> Slovence
es.fmuser.org -> İspanyolca
sw.fmuser.org -> Svahili
sv.fmuser.org -> İsveççe
th.fmuser.org -> Tay
tr.fmuser.org -> Türkçe
uk.fmuser.org -> Ukraynaca
ur.fmuser.org -> Urduca
vi.fmuser.org -> Vietnamca
cy.fmuser.org -> Galce
yi.fmuser.org -> Yidiş
FMUSER Kablosuz Video ve Sesi Daha Kolay İletin!
İletişim
Adres:
No.305 Oda HuiLan Binası No. 273 Huanpu Yolu Guangzhou Çin 510620
Kategoriler
Kaydolun