{"id":12951,"date":"2026-09-09T18:25:00","date_gmt":"2026-09-09T16:25:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=12951"},"modified":"2026-10-24T06:04:55","modified_gmt":"2026-10-24T04:04:55","slug":"tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/","title":{"rendered":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP"},"content":{"rendered":"<p>Adres RTSP wskazuje us\u0142ug\u0119 multimedialn\u0105 i \u017c\u0105dany strumie\u0144. RTSP steruje sesj\u0105; obraz jest cz\u0119sto przesy\u0142any w pakietach RTP. Obs\u0142uga, \u015bcie\u017cki, uwierzytelnianie i transport zale\u017c\u0105 od modelu oraz oprogramowania. Udane po\u0142\u0105czenie jest pierwszym sprawdzeniem, a nie dowodem niezawodnego nagrywania.<\/p>\n<h2>1. Ustalenie w\u0142a\u015bciwego serwera<\/h2>\n<p>Hostem mo\u017ce by\u0107 kamera, rejestrator, konsola Protect lub serwer przekazuj\u0105cy strumie\u0144. Adres musi wskazywa\u0107 komponent udost\u0119pniaj\u0105cy dany strumie\u0144. Konto kamery nie dzia\u0142a automatycznie na rejestratorze. Port 554 jest typowym portem RTSP, ale rozstrzyga rzeczywista konfiguracja.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-12947-rtsp-20261024-pl.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"RTSP: sprawdzenie ka\u017cdej warstwy\"><figcaption>Kod stanu to wskaz\u00f3wka, nie pe\u0142na diagnoza<\/figcaption><\/figure>\n<p>Poni\u017cszy fikcyjny adres pokazuje sk\u0142adniki. Dane logowania w URL s\u0105 konwencj\u0105 obs\u0142ugiwan\u0105 przez klienta i wymagaj\u0105 sprawdzenia zgodno\u015bci. Oddzielne pola logowania s\u0105 lepszym wyborem, je\u015bli aplikacja je udost\u0119pnia.<\/p>\n<pre><code>rtsp:\/\/viewer:Example%402026@192.0.2.10:554\/Streaming\/Channels\/102\nschemat | u\u017cytkownik:has\u0142o    | host      | port | \u015bcie\u017cka<\/code><\/pre>\n<p>Host, dane logowania ani port nie s\u0105 identyczne we wszystkich kamerach. Adres IPv6 wymaga nawias\u00f3w kwadratowych, np. <code>rtsp:\/\/[2001:db8::10]:554\/stream<\/code>. Ci\u0105g zapytania mo\u017ce wybiera\u0107 dodatkowe ustawienia. Dok\u0142adne znaczenie wynika z dokumentacji urz\u0105dzenia.<\/p>\n<h2>2. Pobranie \u015bcie\u017cki z urz\u0105dzenia lub dokumentacji<\/h2>\n<table>\n<thead>\n<tr>\n<th>Rodzina urz\u0105dze\u0144<\/th>\n<th>Przyk\u0142adowa \u015bcie\u017cka<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Hikvision<\/td>\n<td><code>\/Streaming\/channels\/101 \u00b7 \/Streaming\/channels\/102<\/code><\/td>\n<\/tr>\n<tr>\n<td>Amcrest IP<\/td>\n<td><code>\/cam\/realmonitor?channel=1&amp;subtype=0<\/code><\/td>\n<\/tr>\n<tr>\n<td>Reolink<\/td>\n<td><code>\/Preview_01_main \u00b7 \/Preview_01_sub<\/code><\/td>\n<\/tr>\n<tr>\n<td>Axis<\/td>\n<td><code>\/axis-media\/media.amp?streamprofile=PROFILE<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To przyk\u0142ady, nie uniwersalne adresy. We wzorcu Hikvision numer kana\u0142u poprzedza dwucyfrowe oznaczenie strumienia: kana\u0142 12 i strumie\u0144 02 daj\u0105 1202. Kana\u0142 nie zawsze oznacza fizyczny obiektyw. Parametr rozdzielczo\u015bci Axis \u017c\u0105da obs\u0142ugiwanego rozmiaru, a nie automatycznie sta\u0142ego \u201epodstrumienia\u201d.<\/p>\n<p>W zgodnej us\u0142udze multimedialnej ONVIF <code>GetProfiles<\/code> wskazuje dost\u0119pne profile. <code>GetStreamUri<\/code> \u017c\u0105da URI dla wybranego profilu i transportu. Nadal wymagaj\u0105 sprawdzenia uwierzytelnianie, osi\u0105galno\u015b\u0107 i zgodno\u015b\u0107 klienta. Zwr\u00f3cony adres prywatny nie jest automatycznie dost\u0119pny z innej sieci.<\/p>\n<p>Oficjalna lista port\u00f3w Ubiquiti wymienia dla Protect zar\u00f3wno RTSPS na 7441, jak i RTSP na 7447. Wcze\u015bniejsze twierdzenie o sta\u0142ym odrzucaniu zwyk\u0142ego RTSP by\u0142o zbyt szerokie. Skonfigurowany, obs\u0142ugiwany adres eksportu i wersja konsoli maj\u0105 pierwsze\u0144stwo przed zgadywaniem zmian w URL.<\/p>\n<h2>3. Kodowanie danych logowania nie jest szyfrowaniem<\/h2>\n<p>Znaki zastrze\u017cone mog\u0105 zmienia\u0107 spos\u00f3b podzia\u0142u URL. Nazwa u\u017cytkownika i has\u0142o wymagaj\u0105 oddzielnego kodowania: <code>@ \u2192 %40<\/code>, <code>\/ \u2192 %2F<\/code>, <code># \u2192 %23<\/code>, <code>? \u2192 %3F<\/code>, <code>% \u2192 %25<\/code> oraz spacja <code>\u2192 %20<\/code>. Dwukropek zapisany jako <code>%3A<\/code> usuwa niejednoznaczno\u015b\u0107, lecz dwukropek wewn\u0105trz informacji o u\u017cytkowniku nie zawsze ko\u0144czy to pole. Warto\u015bci ju\u017c zakodowanej nie nale\u017cy kodowa\u0107 ponownie.<\/p>\n<p>Kodowanie procentowe jest odwracalne i nie zapewnia poufno\u015bci. Digest nie przesy\u0142a samego has\u0142a otwartym tekstem, ale nie szyfruje obrazu i nie jest gwarantowanym sposobem logowania ka\u017cdej kamery. Basic bez ochrony transportu ujawnia dane mo\u017cliwe do odzyskania. RTSPS chroni po\u0142\u0105czenie steruj\u0105ce przez TLS; ochrona medi\u00f3w zale\u017cy od uzgodnionego transportu.<\/p>\n<p>Oddzielne konto podgl\u0105du ogranicza uprawnienia. Adresy i identyfikatory nadal wymagaj\u0105 ochrony w argumentach proces\u00f3w, dziennikach i konfiguracji. Lokalne kodowanie pozwala unikn\u0105\u0107 wysy\u0142ania prawdziwego has\u0142a do internetowego kodera.<\/p>\n<h2>4. Sprawdzenie metadanych z limitem czasu<\/h2>\n<p>Przyk\u0142ad dla Basha wymaga ffprobe i GNU <code>timeout<\/code>. Odczytuje URL bez wy\u015bwietlania na terminalu, \u017c\u0105da transportu TCP wewn\u0105trz kana\u0142u steruj\u0105cego i zwraca metadane pierwszego strumienia wideo. Wpisany adres nie staje si\u0119 dos\u0142ownym poleceniem historii pow\u0142oki. Rozwini\u0119ty argument nadal mo\u017ce by\u0107 widoczny przy uprawnionym sprawdzaniu proces\u00f3w lub w b\u0142\u0119dach.<\/p>\n<pre><code>IFS= read -r -s -p &#x27;RTSP URL: &#x27; RTSP_URL\nprintf &#x27;\\n&#x27;\ntimeout -k 2s 15s ffprobe -v error \\\n  -rtsp_transport tcp -timeout 5000000 \\\n  -select_streams v:0 \\\n  -show_entries stream=codec_name,width,height,avg_frame_rate \\\n  -of json &quot;$RTSP_URL&quot;\nprobe_status=$?\nunset RTSP_URL\nprintf &#x27;Exit status: %s\\n&#x27; &quot;$probe_status&quot;<\/code><\/pre>\n<p><code>-timeout 5000000<\/code> ogranicza oczekiwanie na operacje gniazda RTSP do pi\u0119ciu sekund w sprawdzonej wersji FFmpeg 7.1.5. Zewn\u0119trzne polecenie nak\u0142ada osobny limit 15 sekund oraz dalsze dwie sekundy przed wymuszonym zako\u0144czeniem. GNU timeout zwykle zwraca kod 124 po przekroczeniu limitu. Poprawnie dzia\u0142aj\u0105ca kamera nie musi odpowiedzie\u0107 w dwie sekundy.<\/p>\n<p>Kodek i rozmiar w JSON potwierdzaj\u0105 przydatne metadane, nie ci\u0105g\u0142y odbi\u00f3r pakiet\u00f3w ani udane dekodowanie. Brak pozycji wideo nie oznacza zaliczonego testu obrazu. Nast\u0119pnie odtwarzacz i reprezentatywne nagranie powinny sprawdzi\u0107 rzeczywiste klatki, ruch, zmian\u0119 dnia i nocy oraz ponowne po\u0142\u0105czenie.<\/p>\n<table>\n<tbody>\n<tr>\n<th>401 Unauthorized<\/th>\n<td>Uwierzytelnianie jest wymagane albo nie powiod\u0142o si\u0119. Pierwsze \u017c\u0105danie logowania mo\u017ce by\u0107 normalne; poprawno\u015b\u0107 \u015bcie\u017cki nie jest dowiedziona.<\/td>\n<\/tr>\n<tr>\n<th>404 Not Found<\/th>\n<td>Nie znaleziono \u017c\u0105danego zasobu. Sam kod nie potwierdza przyj\u0119cia danych logowania.<\/td>\n<\/tr>\n<tr>\n<th>Connection refused<\/th>\n<td>Punkt ko\u0144cowy lub po\u015brednik odrzuci\u0142 po\u0142\u0105czenie TCP. Sprawdzenia wymagaj\u0105 cel, port, us\u0142uga i zapora.<\/td>\n<\/tr>\n<tr>\n<th>Timeout<\/th>\n<td>Po\u0142\u0105czenie lub odczyt nie zako\u0144czy\u0142 si\u0119 w terminie. Analizy wymagaj\u0105 etap, transport, trasa, obci\u0105\u017cenie i dzienniki.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Przeplatanie TCP pozwala unikn\u0105\u0107 osobnych port\u00f3w UDP dla medi\u00f3w. Nie naprawia b\u0142\u0119dnej \u015bcie\u017cki, nieobs\u0142ugiwanego kodeka, braku uprawnie\u0144 ani utraty \u0142\u0105czno\u015bci. UDP r\u00f3wnie\u017c mo\u017ce by\u0107 odpowiednie; utrata pakiet\u00f3w i buforowanie decyduj\u0105 o praktycznej r\u00f3\u017cnicy op\u00f3\u017anienia.<\/p>\n<h2>5. \u015awiadomy podzia\u0142 detekcji i nagrywania<\/h2>\n<p>Frigate pozwala przypisa\u0107 wej\u015bciom role <code>detect<\/code> i <code>record<\/code>. Fragment pokazuje role dla potwierdzonej \u015bcie\u017cki w stylu Hikvision. Pe\u0142na konfiguracja wymaga tak\u017ce w\u0142a\u015bciwych ustawie\u0144 nagrywania i walidacji w zainstalowanej wersji Frigate.<\/p>\n<pre><code>cameras:\n  driveway:\n    ffmpeg:\n      inputs:\n        - path: &quot;rtsp:\/\/{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.0.2.10:554\/Streaming\/Channels\/102&quot;\n          input_args: preset-rtsp-generic\n          roles: [detect]\n        - path: &quot;rtsp:\/\/{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.0.2.10:554\/Streaming\/Channels\/101&quot;\n          input_args: preset-rtsp-generic\n          roles: [record]<\/code><\/pre>\n<p>Podstawianie zmiennych \u015brodowiskowych dzia\u0142a tylko w udokumentowanych polach konfiguracji. Zmienna has\u0142a zawiera tutaj warto\u015b\u0107 zakodowan\u0105 dla URL. Chroniony plik \u015brodowiskowy ogranicza przypadkowe udost\u0119pnienie; warto\u015bci w dzia\u0142aj\u0105cym procesie nie staj\u0105 si\u0119 przez to sejfem na sekrety.<\/p>\n<p>Mniejszy strumie\u0144 detekcji mo\u017ce ograniczy\u0107 dekodowanie, ale odleg\u0142e obiekty mog\u0105 by\u0107 zbyt ma\u0142e. Przy tym samym kadrze zmiana szeroko\u015bci z 3840 na 640 pikseli zmniejsza liniow\u0105 g\u0119sto\u015b\u0107 do jednej sz\u00f3stej. Je\u015bli idealizowany obiekt zajmowa\u0142 172,8 piksela, po skalowaniu zostaje 28,8 piksela. Kadrowanie, perspektywa i kodowanie mog\u0105 zmieni\u0107 wynik praktyczny. To nie gwarancja wykrycia.<\/p>\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n<h3>Czy go2rtc zawsze potrzebuje jednego po\u0142\u0105czenia z kamer\u0105?<\/h3>\n<p>Kilku odbiorc\u00f3w mo\u017ce wsp\u00f3\u0142dzieli\u0107 jeden strumie\u0144 wej\u015bciowy. R\u00f3\u017cne \u017ar\u00f3d\u0142a strumienia g\u0142\u00f3wnego i podstrumienia nadal mog\u0105 wymaga\u0107 osobnych po\u0142\u0105cze\u0144 z kamer\u0105. Limity sesji zale\u017c\u0105 od modelu; uniwersalna granica dw\u00f3ch lub czterech sesji jest nieuzasadniona.<\/p>\n<h3>Czy rezerwacja DHCP rozwi\u0105zuje ka\u017cd\u0105 p\u00f3\u017aniejsz\u0105 awari\u0119?<\/h3>\n<p>Rezerwacja pomaga utrzyma\u0107 przewidywalny adres. Konflikty adres\u00f3w, routing, zasilanie, oprogramowanie, ustawienia us\u0142ug i zmiany kont pozostaj\u0105 mo\u017cliwe. Restart routera nie musi zmienia\u0107 dzier\u017cawy adresu.<\/p>\n<h3>Dlaczego strumie\u0144 urywa si\u0119 po pewnym czasie?<\/h3>\n<p>Dzienniki powinny rozr\u00f3\u017cnia\u0107 utrat\u0119 transportu, wyga\u015bni\u0119cie sesji i restart klienta lub urz\u0105dzenia. Znaczenie maj\u0105 obs\u0142ugiwany mechanizm RTSP keepalive i limit sesji serwera; brak informacji RTCP nie jest jedynym wyja\u015bnieniem. Automatyczne ponowne \u0142\u0105czenie mo\u017ce przywr\u00f3ci\u0107 us\u0142ug\u0119 bez ustalenia pierwotnej przyczyny.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/ffmpeg.org\/ffmpeg-protocols.html\" target=\"_blank\" rel=\"noopener noreferrer\">FFmpeg: RTSP demuxer<\/a><\/li>\n<li><a href=\"https:\/\/ffmpeg.org\/ffprobe.html\" target=\"_blank\" rel=\"noopener noreferrer\">FFmpeg: ffprobe<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc2326.txt\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 2326: RTSP 1.0<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc3986.txt\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 3986: URI syntax<\/a><\/li>\n<li><a href=\"https:\/\/help.ui.com\/hc\/en-us\/articles\/218506997-Required-Ports-Reference\" target=\"_blank\" rel=\"noopener noreferrer\">Ubiquiti: Protect ports<\/a><\/li>\n<li><a href=\"https:\/\/support.reolink.com\/articles\/900000630706-Introduction-to-RTSP\/\" target=\"_blank\" rel=\"noopener noreferrer\">Reolink: RTSP paths<\/a><\/li>\n<li><a href=\"https:\/\/supportusa.hikvision.com\/a\/solutions\/articles\/17000129064\" target=\"_blank\" rel=\"noopener noreferrer\">Hikvision: RTSP stream<\/a><\/li>\n<li><a href=\"https:\/\/support.amcrest.com\/hc\/en-us\/articles\/360059019972-Accessing-Amcrest-Products-Using-RTSP\" target=\"_blank\" rel=\"noopener noreferrer\">Amcrest: RTSP products<\/a><\/li>\n<li><a href=\"https:\/\/developer.axis.com\/vapix\/network-video\/video-streaming\/\" target=\"_blank\" rel=\"noopener noreferrer\">Axis: video streaming<\/a><\/li>\n<li><a href=\"https:\/\/docs.frigate.video\/configuration\/config\/\" target=\"_blank\" rel=\"noopener noreferrer\">Frigate: configuration substitution<\/a><\/li>\n<li><a href=\"https:\/\/docs.frigate.video\/configuration\/cameras\/\" target=\"_blank\" rel=\"noopener noreferrer\">Frigate: camera input roles<\/a><\/li>\n<li><a href=\"https:\/\/docs.frigate.video\/configuration\/restream\/\" target=\"_blank\" rel=\"noopener noreferrer\">Frigate: restream<\/a><\/li>\n<li><a href=\"https:\/\/www.onvif.org\/specs\/srv\/media\/ONVIF-Media-Service-Spec.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">ONVIF Media 24.12: GetProfiles \/ GetStreamUri<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wiarygodny test RTSP rozdziela adres serwera, logowanie, transport i zapisany obraz. Tutorial wyja\u015bnia \u015bcie\u017cki zale\u017cne od urz\u0105dzenia, kodowanie danych logowania, ograniczony czasowo test ffprobe oraz osobne wej\u015bcia Frigate do detekcji i nagrywania.<\/p>\n","protected":false},"author":1,"featured_media":24050,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92652],"tags":[92460,92310,92238],"class_list":["post-12951","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-cctv-pl","tag-monitoring-cctv-pl-pl","tag-networking-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-09T16:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-24T04:04:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP\",\"datePublished\":\"2026-09-09T16:25:00+00:00\",\"dateModified\":\"2026-10-24T04:04:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/\"},\"wordCount\":1066,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-12951-rtsp-20261024-dark.png\",\"keywords\":[\"CCTV\",\"Networking\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/\",\"name\":\"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-12951-rtsp-20261024-dark.png\",\"datePublished\":\"2026-09-09T16:25:00+00:00\",\"dateModified\":\"2026-10-24T04:04:55+00:00\",\"description\":\"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-12951-rtsp-20261024-dark.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-12951-rtsp-20261024-dark.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cctv-pl\\\/tutorials-pl-cctv-pl\\\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik","description":"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik","og_description":"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-09T16:25:00+00:00","article_modified_time":"2026-10-24T04:04:55+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP","datePublished":"2026-09-09T16:25:00+00:00","dateModified":"2026-10-24T04:04:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/"},"wordCount":1066,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png","keywords":["CCTV","Networking","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/","name":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png","datePublished":"2026-09-09T16:25:00+00:00","dateModified":"2026-10-24T04:04:55+00:00","description":"Jak powstaje adres RTSP cz\u0119\u015b\u0107 po cz\u0119\u015bci, jakiej \u015bcie\u017cki u\u017cywa ka\u017cdy producent i jak ffprobe odr\u00f3\u017cnia z\u0142\u0105 \u015bcie\u017ck\u0119 od z\u0142ego has\u0142a.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-12951-rtsp-20261024-dark.png","width":1200,"height":630,"caption":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cctv-pl\/tutorials-pl-cctv-pl\/tutorial-budowanie-i-sprawdzanie-adresow-rtsp-kamer-ip\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Budowanie i sprawdzanie adres\u00f3w RTSP kamer IP"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=12951"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12951\/revisions"}],"predecessor-version":[{"id":24054,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12951\/revisions\/24054"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/24050"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=12951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=12951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=12951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}