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ş
1, Mobil video canlı yayınının geliştirilmesi
Görülüyor ki, bilgisayardan cep telefonuna, her geçen gün daha fazla canlı yayın uygulaması çevrimiçi oluyor ve mobil yayının daha önce görülmemiş bir patlama aşamasına girdiği görülüyor. Bununla birlikte, çoğu mobil canlı yayın için, hala esas olarak yerel istemciler tarafından uygulanmaktadır, ancak HTML5, HTML5 gibi mobil canlı yayın ucunda da yeri doldurulamaz bir rol oynamaktadır Hızlı aktarım ve yayınlanması kolay avantajları ile HTML5, canlı olarak da oynayabilir. video en önemli olduğunda.
Canlı yayının tamamı aşağıdaki bölümlere ayrılabilir:
(1) Video kayıt terminali: Genel olarak konuşursak, mobil terminalde bir bilgisayar ses ve video giriş cihazı veya bir kamera veya mikrofondur. Şu anda, cep telefonu videosu ana kısımdır.
(2) Video oynatıcı: bilgisayarda bir oynatıcı, cep telefonu tarafında yerel bir oynatıcı ve HTML5 video etiketi olabilir. Şu anda, hala cep telefonundaki ana yerel oyuncu.
(3) Video sunucusu: genellikle, video kayıt tarafı tarafından sağlanan video kaynağını kabul etmek ve video oynatma sonuna akış hizmetini sağlamak için kullanılan bir nginx sunucusudur.
2 、 HTML5 kayıt videosu:
HTML5 video kaydı için, güçlü webrtc (WEB gerçek zamanlı iletişim), web tarayıcısında gerçek zamanlı sesli veya görüntülü konuşmayı destekleyen bir teknolojidir. Dezavantajı ise yalnızca PC kromunda daha iyi desteklemesi ve mobil tarafının ideal olmamasıdır.
Webrtc ile video kaydetmenin temel süreci şudur:
Window.navigator.webkitGetUserMedia'yı çağırın (kullanıcının PC kamerasının video verilerini alın).
Edinilen video akışı verilerini window.webkitRTCPeerConnection'a (bir video akışı veri formatı) dönüştürün.
Video akışı verilerini sunucuya aktarmak için websocket kullanma
Birçok yöntemin önek olarak tarayıcıya eklenmesi gerektiğinden, birçok mobil tarayıcı webrtc'yi desteklemez, bu nedenle gerçek video kaydı hala istemci (IOS, Android) tarafından uygulanmaktadır ve etki daha iyi olacaktır.
3 、 HTML5 canlı video yayını:
Video oynatma için, canlı akışı oynatmak için HLS (HTTP canlı akış) protokolünü kullanabilirsiniz. IOS ve Android, bu protokolü doğal olarak destekler. Doğrudan video etiketlerini yapılandırmak ve kullanmak kolaydır.
Video kullanarak canlı video oynatmak için basit bir kod:
(1) HLS protokolü nedir:
Kısacası, tüm akış, HTTP'ye dayalı olarak indirilen küçük dosyalara bölünmüştür. Bir seferde yalnızca bazıları indirilir. HTML3 canlı video yayınında tanıtılan M8u5 dosyasının daha önce bahsedilen dosyası, video akışının meta verilerini depolayan HLS protokolüne dayanmaktadır.
Her bir M3u8 dosyası, gerçek video depolaması için veri olan birkaç TS dosyasına karşılık gelir. M3u8 dosyası yalnızca yapılandırma bilgilerini ve bazı TS dosyalarının ilgili yollarını depolar. Video oynatıldığında, M3u8 dosyası dinamik olarak değiştirilir. Video etiketi dosyayı ayrıştıracak ve oynatmak için karşılık gelen TS dosyasını bulacaktır. Bu nedenle hızı hızlandırmak için, dosyayı analiz etmek ve oynatma için karşılık gelen TS dosyasını bulmak için M3u8 dosyası kullanılacaktır. Bu nedenle, hızı artırmak için, dosyayı analiz etmek ve oynatma için karşılık gelen TS dosyasını bulmak için M3u8 dosyası kullanılacaktır. Bu nedenle, hızlandırmak için web sunucusuna ve TS dosyasını CDN'ye koyun.
M3u8 dosyası aslında UTF-3 ile kodlanmış bir M8U dosyasıdır. Bu dosya kendi başına oynatılamaz, sadece oynatma bilgilerini içeren metin dosyası oynatılabilir.
(2) HLS talep süreci:
HTTP isteğinin URL'si m3u8.
Sunucu, gerçek zamanlı olarak güncellenen bir m3u8 çalma listesi döndürür. Genel olarak, bir seferde 5 veri segmentinin URL'si verilir.
Müşteri, m3u8'in oynatma listesini ayrıştırır ve ardından TS veri akışını elde etmek için her segmentin URL'sini ister.
(3) HLS canlı yayın gecikmesi:
HLS protokolünün canlı akışı indirmek ve oynatmak için küçük bir video segmentine böldüğünü biliyoruz. Öyleyse, listenin 5 TS dosyası içerdiğini, her TS dosyasının 5 saniyelik video içeriği içerdiğini ve ardından toplam gecikmenin 25 saniye olduğunu varsayalım. Çünkü bu videoları gördüğünüzde, ev sahibi videoyu kaydetmiş ve yüklemiştir, dolayısıyla gecikme bundan kaynaklanmaktadır. Elbette, gecikmeyi azaltmak için tek bir TS dosyasının liste uzunluğu ve boyutu kısaltılabilir. En uçta, liste uzunluğu 1'e düşürülebilir ve TS süresi 1 saniyedir. Ancak bu, istek sayısını artıracak ve sunucu baskısını artıracaktır. Ağ hızı yavaş olduğunda, daha fazla arabellek üretilecektir. Bu nedenle, Apple tarafından tavsiye edilen TS süresi resmi olarak 10 saniye sürer, bu nedenle 30 saniyelik gecikmeyi büyük ölçüde değiştirecektir. Böylece sunucu akışı alır, kod dönüştürür, kaydeder, bloğu keser ve ardından istemciye dağıtır. İşte gecikmenin temel nedeni.
Gecikmelerle ilgili daha fazla soru için lütfen Apple'ın resmi adresine bakın:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Ancak HTML5 canlı videonun bazı yeri doldurulamaz avantajları vardır:
① İyi iletişim, paylaşımı kolay ve diğer işlemler.
② Ürün gereksinimlerinin gerçek zamanlı yinelemesine ve hızlı piyasaya sürülmesine olanak tanıyan dinamik olarak piyasaya sürülebilir.
③ Uygulamayı yüklemeden tarayıcıyı doğrudan açın.
4 、 IOS toplama (kayıt), ses ve video verileri İşletim Sistemi
Ses ve video edinimi ve kaydı için önce aşağıdaki kavramlar açıklığa kavuşturulmuştur:
(1) Video kodlama: video kodlaması, video formatındaki bir dosyanın belirli bir sıkıştırma teknolojisi aracılığıyla başka bir video format dosyasına dönüştürülme biçimini ifade eder. Kullandığımız iPhone tarafından kaydedilen video, kullanıcı tarafındaki oynatıcıda oynatılmadan önce kodlanmalı, yüklenmeli ve kodu çözülmelidir.
(2)Codec standardı: video akışı iletimindeki en önemli codec standartları, HLS protokolünün H.261 format kodlamasını desteklediği ITU'nun H.263, H.264 ve H.264'ünü içerir.
(3) Ses kodlama: video kodlamaya benzer şekilde, orijinal ses akışı kodlanır, yüklenir, belirli standartlara göre kodu çözülür ve oynatıcıda oynatılır. Tabii ki, sesin PCM kodu, wma kodu, AAC kodu vb. Gibi birçok kodlama standardı da vardır. HLS protokolümüz tarafından desteklenen ses kodlama yöntemi AAC kodudur.
Video ve ses verisi toplama esas olarak aşağıdaki adımlara bölünmüştür:
(1) IOS üzerindeki kamerayı kullanarak video ve ses verisi toplama
(2) IOS'ta, orijinal ses ve video veri akışı avcapturesession ve avcapturedevice tarafından toplanabilir.
(3) Video h264 ile kodlanmıştır ve ses AAC kodludur. IOS'ta, ses ve videonun kodlanmasını gerçekleştirmek için halihazırda paketlenmiş kodlama kitaplıkları bulunmaktadır.
(4) Kodlamadan sonra ses ve video verileri birleştirilir ve mühürlenir;
(5)RTMP bağlantısı kurun ve sunucuya doğru itin.
Aşağıdakiler, ses ve video verilerini toplamanın özel işlemidir:
(1) RTMP hakkında:
Gerçek zamanlı mesajlaşma protokolü (RTMP), Macromedia tarafından geliştirilen bir dizi canlı video protokolüdür ve artık adobe'ye aittir. HLS'de olduğu gibi, video yayını için kullanılabilir. Aradaki fark, RTMP'nin flash tabanlı IOS tarayıcısında oynatılamaması, ancak gerçek zamanlı olarak HLS'den daha iyi olmasıdır. Dolayısıyla bu protokol genellikle video akışını yüklemek için kullanılır, yani video akışı sunucuya gönderilir.
(2) itme akışı
Sözde akış, kodladığımız ses ve video verilerini video akış sunucusuna göndermeyi ifade eder. IOS kodunda, RTMP akışı yaygın olarak kullanılır. Bir üçüncü taraf kitaplığı olan Librtmp IOS, akış için kullanılabilir. Librtmp, kullanıcıların arayabileceği bazı temel API'leri içerir. Örneğin, API'yi vb. Aktarın, sunucu adresini yapılandırın ve ardından kod dönüştürme video akışını sunucuya gönderin.
Peki bir akış sunucusu nasıl kurulur?
Basit akış sunucusu inşa edilmiştir. Yüklediğimiz video akışı RTMP protokolüne dayalı olduğundan, sunucunun RTMP'yi desteklemesi gerekir. Aşağıdaki adımları atabilir:
(1) Bir nginx sunucusu kurun.
(2)nginx'in RTMP uzantısı yüklendi. Nginx için yapılandırma dosyasını yapılandırın
(3) nginx'i yeniden başlatın ve RTMP'nin akış adresini rtmp: // ip: 1935 / hls / mystream olarak yazın; burada HLS_ Yol, oluşturulan M3u8 ve TS dosyalarının adresini, HLS_ Parçası, dilim uzunluğunu ve mystream'i temsil eder. bir örneği temsil eder. Oluşturulacak dosya adı kendiliğinden belirlenebilir.
5 、 Canlı yayında kullanıcı etkileşimi:
Canlı yayındaki kullanıcı etkileşimi için kabaca şu şekilde ayrılabilir:
hediye vermek.
Yorum yapmak veya oynamak
Hediye teslimi için, DOM ve CSS3, hediye gönderme mantığını ve HTML5 üzerinde bazı özel hediye animasyonlarını gerçekleştirmek için kullanılabilir. Teknik zorluklar çok büyük değil.
Bir barajın biraz daha karmaşık olması için şunlara dikkat etmeniz gerekebilir:
Merminin gerçek zamanlı performansı, webscock tarafından gerçek zamanlı olarak gönderilebilir ve alınabilir ve işlenebilir.
Websocket'i desteklemeyen tarayıcılar için, gerçek zamanlı açılır pencere elde etmek için yalnızca uzun yoklama veya ön uç zamanlayıcı istekleri göndermeye indirgenebilirler.
Oluşturmada animasyon ve çarpışma algılama (yani örtüşme yok) vb.
|
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