Kamery IP i streaming na Youtube – temat z pozoru prosty, ale nadal wywołujący falę pytań i niejasności. Możliwości jest wiele – od bardzo prostych, aż do mocno rozbudowanych i skomplikowanych narzędzi.
IP cameras and Youtube streaming – it looks very easy but cause many questions and doubts. There are many possibilities – simple but also very powerful and complicated tools.
(English version below)
Głównym celem poniższego wpisu jest pokazanie możliwości stosowania strumienia audio/wideo z kamery IP do streamingu na żywo np. na kanale Youtube. Większość kamer jest w stanie wygenerować strumień RTSP (Real Time Streaming Protocol) który z kolei nie jest akceptowany przez serwisy streamingowe typu YT (tutaj liczy się RTMP – Real Time Messaging Protocol). Tak więc głównym celem jest konwersja z RTSP do RTMP wraz z ustawieniem odpowiedniej jakości i kilku innych zmiennych.
Przygotowanie kanału Youtube do streamingu na żywo
Zanim przejdziemy do konkretnych aplikacji musimy przygotować się do procesu streamingu:
Zaczynamy od przygotowania naszego kanału Youtube do “przyjęcia” materiału na żywo (domyślnie funkcja streamowania jest wyłączona):
Creator studio -> stream now -> get started:
Weryfikacja konta następuje z wykorzystaniem numeru telefonu:
I teraz nie pozostaje nic innego jak odczekanie 24 godzin celem pełnej aktywacji konta:
Po tym czasie konto Youtube jest gotowe do przyjęcia strumienia z dowolnego źródła (ważne jest posiadanie własnego “klucza”, którego opis znaleźć będzie można w dalszej części artykułu).
Aplikacje:
Poza podziałem na aplikacje pod względem trudności obsługi warto uwzględnić również podział na aplikacje płatne i bezpłatne. Oczywiście większość z nas woli stosować darmowe aplikacje, jednakże płatne są niejednokrotnie lepiej dopracowane, bardziej intuicyjne i mają pełne wsparcie producenta (co może mieć duże znaczenie w przypadku, kiedy nie do końca znamy produkt oraz będziemy korzystać z niego w bardziej komercyjny sposób). Naturalnie poniższa lista nie wyczerpuje tematyki związanej z programami do streamingu jednakże zawiera ona narzędzia, które sprawdziłem i wykorzystuje w praktyce. Zatem do rzeczy:
Bezpłatne:
OBS – Open Broadcaster Software (Windows/Linux/Mac)
Można go nazwać królem bezpłatnych narzędzi do streamingu. Poza tą funkcjonalnością ma również wiele dodatkowych opcji takich jak: konwersja plików, przechwytywanie obrazu/pulpitu (wideo), i wiele innych (wszystko w połączeniu z audio). To bogactwo ma jednak swoją cenę – mnogość funkcji generuje niekiedy problemy z konfiguracją.
Wdrożenie streamingu z kamery IP do Youtube z wykorzystaniem OBS znajduje się na poniższym filmie:
FFmpeg (Windows/Linux/Raspberry)
Proste do bólu, ale zarazem skuteczne – cała konfiguracja to odpowiednie sparametryzowanie pliku wykonywalnego ffmpeg.exe. Poniżej moja propozycja (oparta oczywiście o różne źródła internetowe i własne testy):
1 2 3 |
ffmpeg -f lavfi -i anullsrc -rtsp_transport udp -i "rtsp://camera_user:camera_pass@192.168.10.200:554/cam/realmonitor?channel=1&subtype=0" -tune zerolatency -vcodec libx264 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/your-key-from-youtube |
Kod najlepiej edytować w edytorze txt i przygotować go do własnych potrzeb.
Dodatkowe uwagi:
- jeśli planujemy streamować rozdzielczość FullHD to zapewnijmy łącze wyjściowe (upload) na poziomie minimum 3-4Mbit/s
- w przypadku problemów z dekodowaniem spradźmy czy ustawiony jest kodek H.264 (często domyślnie kamery IP korzystają z H.265)
- obciążenie procesora jest stosunkowo wysokie podczas operacji konwersji i strumieniowania
- możemy strumieniować zarówno obraz jak i dźwięk
Działanie ffmpeg w praktyce:
Płatne:
Manycam (Windows/Mac)
Dlaczego właśnie Manycam? Po pierwsze nie jest (bardzo) drogi i w opcji lifetime mamy dożywotnie wsparcie (wszystkie kolejne aktualizacje). Dodatkowo jest bardzo prosty w obsłudze (wysoce intuicyjny interfejs), a jednocześnie daje spore możliwości konfiguracji i pracy z różnymi źródłami strumieni. Opcje typu: obraz w obrazie, dodatkowe napisy, rysowanie po przesyłanym obrazie, przełączanie pomiędzy różnymi źródłami – wszystko to dostępne jest praktycznie za pośrednictwem kilku kliknięć. Konfiguracja strumieniowania z kamery IP do Youtube można znaleźć poniżej:
Inne rozwiązania:
Rozwiązaniem nieco bardziej skomplikowanym wydawać się może oprogramowanie bazujące na Raspberry (chociażby wspomniane powyżej ffmpeg), jednakże ma ono swoje niezaprzeczalne zalety:
- kompaktowy rozmiar w połączeniu mobilnością pozwala na uruchomienie streamingu praktycznie w każdym miejscu z zasięgiem WiFi/GSM
- niewielki pobór prądu – co może mieć znaczenie przy rozwiązaniach zasilanych akumulatorami
- jednorazowa konfiguracja per lokalizacja i urządzenie jest praktycznie bezobsługowe
Należy również wspomnieć o kamerach z “wbudownym” modułem konwersji i bezpośredniego strumieniowania do youtube – co prawda w przypadku np. kamer Axis należy posiłkować się zewnętrznym oprogramowaniem, które należy zainstalować bezpośrednio na kamerze (np. https://camstreamer.com/) co jest rozwiązaniem eleganckim (ponieważ urządzenie brzegowe wykonuje całą pracę), jednakże być może bardziej kosztowne i mniej elastyczne (np. w porównaniu do Manycam).
English version:
Main aim of this article is to show possibilities related with streaming from IP cameras to Youtube directly. Most of IP cameras can generate RTSP stream (Real Time Streaming Protocol) which is not accepted by most streaming services (like Youtube – in this case we need to consider RTMP – Real Time Messaging Protocol). Therefore our main aim is to convert RTSP to RTMP together with correct settings and few variables.
Youtube channel preparations
Before we start proper camera/stream configuration we need to prepare our Youtube channel for streaming (by default this option is turn off)
Creator studio -> stream now -> get started:
Like always – verification by mobile:
Now we need to wait 24 h for full activation:
After this time Youtube account will be ready to start streaming (important part is a private/own key – it will be describe in the next chapters).
Applications:
On the one hand we can divide apps on easy or difficult to use but on the other hand also for free to use and commercial. Of course most of us like free applications (who likes pay for something which you can have for free 🙂 but in many cases commercial equivalent can be better prepare, have easier and more intuitive layout and (what can be important for some of us) provides client online support. To be honest: below list is only top of the hill of software in Internet but in my opinion (I’m using them in practice) it can be a complete list for all who want to choose free/commercial streaming product for almost any purpose.
Free of charge:
OBS – Open Broadcaster Software (Windows/Linux/Mac)
We can call it: king of free streaming tools 🙂 Except this functionality there are also many other features like: file conversions, grabbing desktop, and many many more (of course if you like: in connection with audio). This “wealth” has its price: many settings can generate issue with configuration.
Take a look on streaming deployment based on OBS in practice:
FFmpeg (Windows/Linux/Raspberry)
Without GUI, without issue – simple as… FFmpeg 🙂 This is the best description of this tool – of course only if you are fan of command prompt! Whole configuration is related with using correct parameters in executable file: ffmpeg.exe. Below my proposition of string which can be use to stream to youtube (based on my tests and internet pages):
1 2 3 |
<span style="color: #808080;">ffmpeg -f lavfi -i anullsrc -rtsp_transport udp -i "rtsp://camera_user:camera_pass@192.168.10.200:554/cam/realmonitor?channel=1&subtype=0" -tune zerolatency -vcodec libx264 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/your-key-from-youtube</span> |
To make your live easier before you put this in command prompt window edit this in e.g. notepad.
Additional remarks:
- when you consider to stream FullHD quality – remember about upload Internet connection at least 3-4Mbit/s
- if you see errors from ffmpeg and no transmition check what kind of codec you choose on camera (should be H.264 instead of H.265)
- CPU load are quite high – you should use modern PC/Mac for this
- we can stream video and audio
FFmpeg in practice:
Paid software:
Manycam (Windows/Mac)
Why Manycam? First: it is not expensive at all (in lifetime option we have unlimited updates and support). Second: Manycam is very intuitive and easy to use/operate but it can give you many settings and flexible approach from many sources. Settings like: picture-in-picture, additional description on stream, drawing, switch between sources and many more – all of this are available based on few clicks! Below you can find streaming to youtube configuration in practice:
Another solutions:
A little bit more complex solution can be based on Raspberry (e.g. mentioned ffmpeg) but there are a lot of additional prons:
- extremely compact size – full mobility, connection via WiFi/LTE
- low power consumption – power source like a power bank can be enugh even for few hours of transmission!
- usually one time configuration and the device is maintenance-free
It also good to mention about cameras which are included conversion engine (built-in) like e.g. Axis – but in this case we need to add costs related with third party software which needs to be install on the camera (e.g. https://camstreamer.com/). Of course this is very smart solution (edge device can make whole work) but in some case can be more expensive and less flexible (for instance in comparison to Manycam).