2015-03-25 47 views
8

Próbuję ustanowić system zdolny do nadawania zrzutu ekranu komputera do kilku innych komputerów w sieci LAN.Jak transmitować strumień wideo w sieci LAN w czasie rzeczywistym?

Do tej pory udało mi się zainstalować nginx na Raspberry Pi z modułem rtmp i mogę przesyłać strumieniowo używając Raspberry jako serwera RTMP przez OBS. Używam VLC do oglądania strumienia.

Oto problem. Komputer główny wykonujący emisję będzie wyświetlał licznik czasu, który odlicza i potencjalnie kanały kamery, więc najlepiej byłoby ograniczyć opóźnienie transmisji do minimum (w czasie rzeczywistym?). Obecnie mam 4-6 sekundowe opóźnienie między tym, co dzieje się na ekranie, a strumieniem i szukam sposobów na jego dalszą redukcję.

  • Czy istnieje sposób określenia, ile czasu opóźnienia wynika z kodowania i jaka jest jego część z powodu przeniesienia?
  • Aktualnie przechwytuję w rozdzielczości 1080p30 i wypróbowuję opcje takie jak zmniejszanie skali i minimalizuję wpływ sieci na nieskuteczność.
  • Czytałem inne tematy dotyczące transmisji LAN na tym forum i ktoś wspomniał, że RTMP nie było dobrym podejściem ... Jeśli tak, jakie byłoby lepsze podejście?
  • Wszelkie sugestie są mile widziane i doceniane. Najbardziej interesują mnie darmowe rozwiązania, ponieważ nie mam budżetu i robię to za darmo dla kogoś innego.
  • Sprawdziłem również streaming VLC, ale nie chcę pokazywać całego ekranu komputera, ponieważ byłyby kontrolki, których widzowie nie muszą widzieć. Jedyną rzeczą, którą VLC może z tym zrobić, jest określenie, która część ekranu ma być nadawana, co nie wydaje się być świetnym rozwiązaniem. Wybrałem OBS, ponieważ jest to jedyne bezpłatne oprogramowanie do nadawania, które może nadawać określone okno według mojej wiedzy.

góry dzięki :)

+0

Trudno powiedzieć, nie widząc parametrów kodowania. Jeśli nie masz nic przeciwko cli [FFmpeg] (https://www.ffmpeg.org/) jest jednym z najlepszych narzędzi open-source. – aergistal

Odpowiedz

8

Pierwszy Chyba masz rację użyć OBS, to wielki projekt pozwala uchwycić wiele rzeczy.

Jeśli chcesz zoptymalizować szybkość wideo istnieje wiele sposobów można spróbować:

  • Pierwszy z nich jest użycie innego klienta RTMP, VLC jest dobra, ale używa zbyt dużo pamięci podręcznej, spróbuj this one na przykład (wystarczy ustawić odpowiednią RTMP URL, usuń wejście netgroup i połączyć),
  • Następnie można spróbować innego serwera, napisałem poniższy tutorial How to set up your own RTMFP server using MonaServer,
  • i wreszcie można zmodyfikować parametry pozabilansowe (używam " Twitch "parametry, które są zoptymalizowane do czasu rzeczywistego).

Dla mnie z OBS + MonaServer + mój VideoPlayer Mam opóźnienie 2 sekundy, to nie jest w czasie rzeczywistym, ale to już jest lepsze.

Ostatnią rzeczą, OBS jest znany dodać opóźnienia na sesjach RTMP, wiem, że jest możliwe, aby ją poprawić poprzez modyfikację kodu źródłowego OBS ale tutaj jest to trochę trudne ...

Mam nadzieję, że go pomoże Ci! Skontaktuj się ze mną, jeśli potrzebujesz więcej informacji.