Skocz do zawartości
Zaloguj się, aby obserwować  
Desavil

nginx rtmp i hls suma połączeń

Polecane posty

Witam,

Skonfigurowałem sobie nginx z rtmp i hls (dla wsparcia urządzeń mobilnych). Wszystko działa idealnie, ale niestety jak coś działa dobrze to musi pojawić się inny problem...

 

Rtmp działa na protokole rtmp (rtmp://), a hls na protokole http (http://). W module rtmp ustawiłem sobie "max_connections" na np. 100, czyli ilość jednoczesnych połączeń, widzów strumienia. Problem występuje w przypadku hls. Nie wiem w jaki sposób mógłbym połączyć te protokoły, aby suma widzów była liczona razem, tzn. jak uruchomię 80 połączeń hls to z rtmp wolnych będzie tylko 20 i odwrotnie. Najlepiej, gdyby połączenia hls wyświetlały się w statystykach rtmp - rtmpstats.

 

Ma ktoś może jakiś pomysł w jaki sposób mógłbym to rozwiązać?

 

Pozdrawiam!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest już poprawka, tylko nie wprowadzona do kodu modułu. Po prostu statystyki HLS są osobno i nie ma możliwości jako takiego liczenia ilości połączeń. Do tego celu musiałbyś wykorzystać głębsze liczenie skryptem lub po stronie serwera WWW. Nie łatwe, ale da się zrobić (wiem z doświadczenia).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Można coś więcej na temat tej poprawki? Masz na myśli to - https://github.com/arut/nginx-rtmp-module/issues/420 ? Chyba spróbuję to skompilować. :)

 

Na razie rozwiązałem to na zasadzie, oddzielnej ilości slotów dla RTMP i oddzielnej dla HLS (tutaj limituję za pomocą modułu ngx_http_limit_conn_module dla nginx), a zliczam połączenia za pomocą netstat (dla własnych statystyk) - co niestety nie jest dokładne, gdyż zazwyczaj na początku widoczne są dwa połączenia w stanie established, a dopiero po kilku minutach to jedno (właściwe) pozostaje, a niczym one się nie różnią, żeby je odjąć. Ale to już mały problem.

Edytowano przez Desavil (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja zrobiłem to tak, że w nginx-lua mam napisany jak pod-serwer podający HLS i tam liczę na żywo połączenia. Całość jest bardziej skompilkowana niż z tego opisu się wydaje, ale to też nie jest niemożliwość.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×