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ş
Son zamanlarda video canlı projesiyle iletişime geçmeye başladım, ayrıca video canlıyla ilgili bazı kavramları, teknolojileri ve çözümleri de özetledim.
Her şeyden önce, canlı video kavramını anlayın. Birkaç yaygın video protokolü şunlardır: RTMP, http-flv, HLS, RTP / RTCP.
Ardından canlı yayın ve ilgili teknolojilerin tüm sürecini açıklayacağız.
1 、 Canlı video protokolü
Canlı yayın alanında iki tür canlı yayın vardır: etkileşimli canlı yayın ve etkileşimli olmayan canlı yayın.
Etkileşimli olmayan canlı yayın (örneğin: Canlı geçit töreni, NBA Canlı Yayın, Şampiyonlar Ligi canlı yayını vb.) Yüksek düzeyde etkileşimli değildir ve 10 saniye veya daha fazla gecikmeye izin verir. Nispeten az kaynakla karakterizedir ve çok kanallı kod çevrimine uygundur (kullanıcılar bunu ağ koşullarına göre izleyebilir).
Etkileşimli canlı yayının tipik sahneleri, gösteri canlı yayınını, oyun canlı yayınını vb. İçerir. Sunucu ile izleyici arasındaki etkileşimin yüksek gereksinimleri nedeniyle, bu canlı yayınların 5S içinde ertelenmesi gerekir. Etkileşimli canlı yayının özellikleri şunlardır: daha fazla kaynak, çok kanallı kod çevrimine uygun olmayan, ara sunucu yalnızca bir geçiş rolü olarak.
Canlı içerik aktarım ortamı ağdır ve ağda video veya ses iletmek için ilgili protokollere ihtiyaç vardır. Şu anda canlı sahneler için uygun olan yaygın protokoller aşağıdaki gibidir.
1. RTMP protokolü (HTML 5 tarafından desteklenmez, flash tarafından desteklenir)
RTMP, Adobe'nin patent protokolü olan bir akış ortamı protokolüdür. TCP'ye dayalı olarak, Çin'de çok popülerdir.
Popüler neden: Açık kaynak yazılım ve açık kaynak kitaplığının desteği kararlı ve eksiksizdir ve en yaygın kullanılan akış ve akış çözümleri temelde kararlı bir şekilde çalışabilir. Örneğin: açık kaynak librtmp itme akışı kitaplığı, hizmet tarafında nginx RTMP eklentisi, çekme akışı ijkplayer oyun kitaplığına sahiptir.
2. Http-flv protokolü (HTML 5 tarafından desteklenmez, flash tarafından desteklenir)
Bu, medya içeriğini yayınlamak için HTTP protokolünü kullanmaktır. HTTP daha basittir ve RTMP'den daha iyi bilinir. İçerik gecikmesi de 2-5 saniye olabilir ve açılış hızı daha hızlıdır çünkü HTTP'nin kendisinde karmaşık bir durum etkileşimi yoktur. Dolayısıyla gecikme açısından http-flv, RTMP'den daha iyidir.
3. HLS protokolü (HTML desteği, Flash desteği)
HTTP canlı akışı, apple tarafından önerilen HTTP'ye dayalı bir akışlı ortam aktarım protokolüdür. HLS'nin çok büyük bir avantajı vardır: HTML5 doğrudan açılabilir ve oynatılabilir; Bu, canlı bir bağlantının herhangi bir bağımsız uygulama yüklemeye gerek kalmadan bir tarayıcıyla wechat ve diğer yönlendirme yoluyla paylaşılabileceği anlamına gelir, bu nedenle çok popülerdir. Sosyal canlı uygulama, HLS sadece gerekli. HLS'ye dayalı canlı akış URL'si, birkaç yeni küçük video TS dosyası içeren bir m3u8 dosyasıdır. Bu oynatma modunun gecikmesi nispeten yüksektir (bu, TS dosyasının boyutuyla ilgilidir) ve aynı şehir ağında 5-7 saniye gecikmeye ulaşabilir.
4. RTP / RTCP protokolü
Gerçek zamanlı aktarım protokolü, İnternet üzerindeki multimedya veri akışı için bir taşıma katmanı protokolüdür. RTCP, etkileşimli kontrolün sinyalini iletir ve RTP, gerçek ortam verilerini iletir.
RTP, video gözetim, video konferans ve IP telefonda yaygın olarak kullanılmaktadır, çünkü video konferans ve IP telefonun önemli deneyimlerinden biri güçlü gerçek zamanlı içeriktir.
Yukarıdaki üç protokolle karşılaştırıldığında, RTP ile bunlar arasındaki önemli bir fark, UDP protokolünün varsayılan olarak veri iletmek için kullanılmasıdır, RTMP ve HTTP ise TCP protokolüne dayanır.
Senaryo analizini kullanın: Gerçek zamanlı ses ve video akışı sahnesinin güvenilir garantiye ihtiyacı yoktur, bu nedenle yeniden iletim mekanizmasına gerek yoktur. Görüntüyü ve sesi gerçek zamanlı olarak görmek, ağ titrediğinde bazı içerikleri kaybetmek, resmi bulanıklaştırmak ve ekranı açmak önemli değildir. Yeniden iletmek için, TCP gecikmeye ve asenkronize neden olur. Yeniden iletim nedeniyle belirli bir içerik bölümü bir saniye sonra gelirse, tüm konuşma bir saniye ertelenir. Ağ titremesi ile gecikme iki veya üç saniyeye çıkacaktır. İstemci oynatma ile ilgilenmezse, doğrudan yayın deneyimi ciddi şekilde etkilenecektir. Nasıl optimize edileceği aşağıdaki makalede açıklanacaktır.
Sonuç: canlı yayın protokolünün seçiminde, RTMP veya http-flv seçilirse, 2-5 saniyelik bir içerik gecikmesi olduğu anlamına gelir, ancak açık gecikme söz konusu olduğunda, http-flv, RTMP'den daha iyidir. . HLS, 5-7 saniyelik içerik gecikmesine sahiptir. Canlı yayın için RTP'yi seçmek, canlı yayını 1 saniye içinde geciktirebilir. Bununla birlikte, bildiğimiz kadarıyla, büyük CDN üreticileri RTP'ye dayalı canlı yayını desteklemiyor, bu nedenle mevcut yerel ana akım RTMP veya http-flv'dir.
2 、 Video canlı yayın süreci
Canlı videoyla ilgili teknik süreç şudur: gerçek zamanlı video akışı edinimi - video akışı kodlaması - video akışı iletimi - video akışı kod çözme - video oynatma.
1. Gerçek zamanlı video yakalama fikri
a) Android kamera çekim önizlemesinde setpreviewcallback ayarlanarak, ön-ön-çerçeve arayüzü, her bir video akışının verilerini gerçek zamanlı olarak yakalamak için gerçekleştirilir.
b) Android medyarecorder aracılığıyla, setoutputfile işlevinde localsocket'i bağlayın.
c) Kamera videosu almak için ffmpeg veya getstreamer kullanarak medya sunucusu modu.
2. Video sıkıştırma kodlamasının gerçekleştirilmesi
a) Kodlama olmadan, orijinal yuv420sp video çerçevesi doğrudan soket aracılığıyla iletilir.
b) JEPG, orijinal yuv420sp video çerçevesini H.264'e sıkıştırır ve sonra iletir.
c) H.264 / avc. Orijinal yuv420sp video çerçevesi H.264'e sıkıştırılır ve sonra iletilir. H264 tabanlı yaygın açık kaynaklı kodlayıcılar arasında JM, x264, t264, hdot264 vb. Bulunur.
d). mpeg4. Orijinal yuv420sp video çerçevesini MPEG4'e sıkıştırın ve ardından iletin
3. Video aktarımı fikri
a). soket iletimi
b). HTTP aktarımı
c). RTP / RTSP iletimi
d). live555 gibi akışlı ortam sunucusu modu
4. Video kod çözme işleminin gerçekleştirilmesi
a). kodlamaya karşılık gelen kod çözücü
5. Video oynatma fikri
a). Android video görüntüleme aracılığıyla
b). Android mediaplay aracılığıyla
c). çerçeve görüntüsünü doğrudan kanvas üzerinden yapıştırın
|
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