FMUSER Wirless Transmituj wideo i audio łatwiejsze!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
1、 Rozwój mobilnej transmisji wideo na żywo
Można zauważyć, że od komputerów osobistych po telefony komórkowe, coraz więcej aplikacji do transmisji na żywo jest dostępnych online, a transmisje mobilne weszły w bezprecedensową fazę eksplozji. Jednak w przypadku większości mobilnych transmisji na żywo jest on nadal wdrażany głównie przez natywnych klientów, ale HTML5 odgrywa również niezastąpioną rolę w zakończeniu mobilnej transmisji na żywo, na przykład HTML5. Dzięki zaletom szybkiej transmisji i łatwości wydania, HTML5 może również odtwarzać wideo na żywo, gdy jest to najważniejsze.
Całą transmisję na żywo można podzielić na:
(1) Terminal do nagrywania wideo: Ogólnie rzecz biorąc, jest to komputerowe urządzenie wejściowe audio i wideo lub kamera lub mikrofon na terminalu mobilnym. Obecnie głównym elementem jest wideo z telefonu komórkowego.
(2) Odtwarzacz wideo: może to być odtwarzacz na komputerze, natywny odtwarzacz po stronie telefonu komórkowego i etykieta wideo HTML5. Obecnie nadal jest głównym natywnym odtwarzaczem na telefon komórkowy.
(3) Serwer wideo: generalnie jest to serwer nginx, który służy do akceptowania źródła wideo dostarczanego przez stronę nagrywania wideo i świadczenia usługi przesyłania strumieniowego do końca odtwarzania wideo.
2, nagrywanie wideo HTML5:
Do nagrywania wideo HTML5, potężna technologia webrtc (komunikacja WEB w czasie rzeczywistym) to technologia, która obsługuje rozmowy głosowe lub wideo w czasie rzeczywistym w przeglądarce internetowej. Wadą jest to, że działa lepiej tylko na PC Chrome, a strona mobilna nie jest idealna.
Podstawowy proces nagrywania wideo za pomocą webrtc to:
Zadzwoń do window.navigator.webkitGetUserMedia (uzyskaj dane wideo z kamery komputera użytkownika).
Konwertuj pozyskane dane strumienia wideo na window.webkitRTCPeerConnection (format danych strumienia wideo).
Używanie websocket do przesyłania danych strumienia wideo na serwer
Ponieważ wiele metod wymaga poprzedzenia przeglądarki, wiele przeglądarek mobilnych nie obsługuje webrtc, więc rzeczywiste nagrywanie wideo jest nadal realizowane przez klienta (IOS, Android), a efekt będzie lepszy.
3、 Transmisja wideo na żywo HTML5:
Do odtwarzania wideo można użyć protokołu HLS (przesyłanie strumieniowe HTTP na żywo), aby odtwarzać strumieniowe przesyłanie na żywo. IOS i Android naturalnie obsługują ten protokół. Bezpośrednie konfigurowanie i używanie tagów wideo jest proste.
Oto prosty kod do odtwarzania wideo na żywo za pomocą wideo:
(1) co to jest protokół HLS:
W skrócie cały strumień jest podzielony na małe pliki, które są pobierane w oparciu o protokół HTTP. Tylko niektóre są pobierane na raz. Wspomniany wcześniej plik .M3u8 wprowadzony do transmisji wideo na żywo HTML5 oparty jest na protokole HLS, który przechowuje metadane strumienia wideo.
Każdy plik.M3u8 odpowiada kilku plikom TS, które są danymi do rzeczywistego przechowywania wideo. Plik m3u8 przechowuje tylko informacje konfiguracyjne i powiązane ścieżki niektórych plików TS. Podczas odtwarzania wideo plik .M3u8 jest zmieniany dynamicznie. Etykieta wideo przeanalizuje plik i znajdzie odpowiedni plik TS do odtworzenia. Aby więc przyspieszyć, plik .M3u8 zostanie użyty do analizy pliku i znalezienia odpowiedniego pliku TS do odtworzenia. Dlatego, aby przyspieszyć, plik .M3u8 zostanie użyty do analizy pliku i znalezienia odpowiedniego pliku TS do odtworzenia. Dlatego w celu przyspieszenia umieść go na serwerze WWW, a plik TS na CDN.
Plik .M3u8 jest w rzeczywistości plikiem M3U zakodowanym w UTF-8. Ten plik nie może być odtwarzany sam, a jedynie plik tekstowy zawierający informacje o odtwarzaniu.
(2) Proces żądania HLS:
Adres URL żądania HTTP m3u8.
Serwer zwraca listę odtwarzania m3u8, która jest aktualizowana w czasie rzeczywistym. Ogólnie adres URL 5 segmentów danych jest podawany jednocześnie.
Klient analizuje listę odtwarzania m3u8, a następnie żąda adresu URL każdego segmentu w celu uzyskania strumienia danych TS.
(3) Opóźnienie transmisji na żywo HLS:
Wiemy, że protokół HLS dzieli transmisję na żywo na mały segment wideo do pobrania i odtworzenia. Załóżmy więc, że lista zawiera 5 plików TS, każdy plik TS zawiera 5 sekund treści wideo, a całkowite opóźnienie wynosi 25 sekund. Ponieważ kiedy widzisz te filmy, host nagrał wideo i przesłał je, więc opóźnienie jest spowodowane tym. Oczywiście długość listy i rozmiar pojedynczego pliku TS można skrócić, aby zmniejszyć opóźnienie. W skrajnych przypadkach długość listy można skrócić do 1, a czas trwania TS wynosi 1 s. Zwiększy to jednak liczbę żądań i zwiększy obciążenie serwera. Gdy prędkość sieci jest niska, zostanie wygenerowany większy bufor. Dlatego czas TS zalecany przez Apple trwa oficjalnie 10 sekund, więc znacznie zmieni opóźnienie 30 sekund. Tak więc serwer odbiera strumień, transkoduje, zapisuje, wycina blok, a następnie dystrybuuje go do klienta. Oto główna przyczyna opóźnienia.
Aby uzyskać więcej pytań dotyczących opóźnień, odwiedź oficjalny adres Apple:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Jednak wideo na żywo HTML5 ma kilka niezastąpionych zalet:
① Dobra komunikacja, łatwe udostępnianie i inne operacje.
② Może być wydawany dynamicznie, co sprzyja iteracji wymagań produktu w czasie rzeczywistym i szybkiemu uruchomieniu.
③ Bez instalowania aplikacji otwórz przeglądarkę bezpośrednio.
4, IOS zbieranie (nagrywanie) danych audio i wideo OS
W przypadku akwizycji i nagrywania audio i wideo najpierw wyjaśniono następujące pojęcia:
(1) Kodowanie wideo: kodowanie wideo odnosi się do sposobu, w jaki plik w formacie wideo jest konwertowany na inny plik w formacie wideo za pomocą określonej technologii kompresji. Wideo nagrane za pomocą iPhone'a, którego używamy, musi zostać zakodowane, przesłane i zdekodowane, zanim będzie można je odtworzyć w odtwarzaczu po stronie użytkownika.
(2) Standard kodeków: najważniejsze standardy kodeków w transmisji strumieni wideo to H.261, H.263 i H.264 ITU, w których protokół HLS obsługuje kodowanie w formacie H.264.
(3) Kodowanie audio: podobnie jak w przypadku kodowania wideo, oryginalny strumień audio jest kodowany, przesyłany, dekodowany zgodnie z określonymi standardami i odtwarzany w odtwarzaczu. Oczywiście dźwięk ma również wiele standardów kodowania, takich jak kod PCM, kod wma, kod AAC itp. Metoda kodowania dźwięku obsługiwana przez nasz protokół HLS to kod AAC.
Akwizycja danych wideo i audio dzieli się głównie na następujące etapy:
(1) akwizycja danych wideo i audio za pomocą kamery na IOS
(2) W systemie IOS oryginalny strumień danych audio i wideo może być gromadzony przez avcapturesession i avcapturedevice.
(3) Wideo jest zakodowane przy użyciu h264, a dźwięk jest zakodowany w formacie AAC. W IOS istnieją już spakowane biblioteki kodowania do realizacji kodowania audio i wideo.
(4) Dane audio i wideo po zakodowaniu są składane i zapieczętowane;
(5)Nawiąż połączenie RTMP i prześlij je do serwera.
Poniżej przedstawiono specyficzny proces gromadzenia danych audio i wideo:
(1) o RTMP:
Protokół przesyłania wiadomości w czasie rzeczywistym (RTMP) to zestaw protokołów wideo na żywo opracowany przez firmę Macromedia, a obecnie należący do firmy Adobe. Podobnie jak w przypadku HLS, może być używany do transmisji wideo. Różnica polega na tym, że RTMP nie może odtwarzać w przeglądarce IOS opartej na flashu, ale jest lepszy w czasie rzeczywistym niż HLS. Tak więc ten protokół jest zwykle używany do przesyłania strumienia wideo, czyli przesyłania strumienia wideo na serwer.
(2) przepływ pchający
Tak zwany streaming odnosi się do przesyłania zakodowanych przez nas danych audio i wideo na serwer strumienia wideo. W kodzie IOS powszechnie używane jest przesyłanie strumieniowe RTMP. Librtmp IOS, biblioteka innej firmy, może być używana do przesyłania strumieniowego. Librtmp obejmuje niektóre podstawowe interfejsy API, z których mogą korzystać użytkownicy. Na przykład wypchnij interfejs API itd., skonfiguruj adres serwera, a następnie prześlij transkodowany strumień wideo na serwer.
Jak więc zbudować serwer streamingowy?
Zbudowano prosty serwer do przesyłania strumieniowego. Ponieważ przesyłany przez nas strumień wideo jest oparty na protokole RTMP, serwer musi obsługiwać RTMP. Może podjąć następujące kroki:
(1)Zainstaluj serwer nginx.
(2) Zainstalowane jest rozszerzenie RTMP nginx. Skonfiguruj plik conf dla nginx
(3) Uruchom ponownie nginx i zapisz adres przesyłania strumieniowego RTMP jako rtmp://ip : 1935/hls/mystream, gdzie HLS_ Path reprezentuje adres wygenerowanych plików.M3u8 i TS, HLS_ Fragment reprezentuje długość wycinka, a mystream reprezentuje instancję. Nazwa pliku do wygenerowania może być ustawiona samodzielnie.
5、 Interakcja użytkownika podczas transmisji na żywo:
Jeśli chodzi o interakcję użytkownika podczas transmisji na żywo, można ją z grubsza podzielić na:
dawać prezenty.
Aby komentować lub grać
Do dostarczania prezentów można wykorzystać DOM i CSS3, aby zrealizować logikę wysyłania prezentów i specjalną animację prezentów w HTML5. Trudności techniczne nie są duże.
Aby zapora była nieco bardziej złożona, może być konieczne zwrócenie uwagi na następujące kwestie:
Wydajność pocisku w czasie rzeczywistym może być wysyłana i odbierana w czasie rzeczywistym przez webscock i renderowana.
W przypadku przeglądarek, które nie obsługują websocket, można je zdegradować jedynie do długiego sondowania lub wysyłania żądań przez front-end timer w celu uzyskania wyskakujących okienek w czasie rzeczywistym.
Wykrywanie animacji i kolizji (tj. brak nakładania się) i tak dalej w renderowaniu
|
Wpisz e-mail, aby otrzymać niespodziankę
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
FMUSER Wirless Transmituj wideo i audio łatwiejsze!
Kontakt
Adres:
Nr 305 Pokój HuiLan Budynek nr 273 Huanpu Road Guangzhou Chiny 510620
Kategorie
Newsletter