Strömning av video från flera kameror till en "mosaikbild"
Strömning av video från flera kameror till en "mosaikbild"
Hej.
Min första postning här och kommer på en rekommendation från en "elektronikkompis" då jag själv inte lyckas klura ut hur man använder "ffserver" och "ffmpeg" tillsammans.
Jag har ett gäng IP-kameror installerade som jag vill bygga gruppbilder för. Jag kör Linux (Debian) på Raspberry PI och har laddat hem och kompilerat libx264 och ffmpeg. Det går alldeles utmärkt att direktströmma gruppbilder till ffplay (o jag antar vad som helst som klarar videoströmmar, tex VLC) - se bild nedan.
Dock lyckas jag inte strömma resultatet till ffserver; ffmpeg bara spottar ur sig: Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Syftet med ffserver är att jag sen kommer att publicera strömmen på min husautomations hemsida och göra att man kan få med alla kamerorna på samma bild med en uppkoppling och endast mot min ffserver (o inte alla kamerorna).
Har ställt frågor på ffmpeg-forumet men jag får inga svar...
- http://ffmpeg.gusari.org/viewtopic.php?f=12&t=2433
- http://ffmpeg.gusari.org/viewtopic.php?f=12&t=2428
Har någon här lyckats med samma sak eller något liknande så tar jag hemskt gärna emot tips och förslag.
/f
Min första postning här och kommer på en rekommendation från en "elektronikkompis" då jag själv inte lyckas klura ut hur man använder "ffserver" och "ffmpeg" tillsammans.
Jag har ett gäng IP-kameror installerade som jag vill bygga gruppbilder för. Jag kör Linux (Debian) på Raspberry PI och har laddat hem och kompilerat libx264 och ffmpeg. Det går alldeles utmärkt att direktströmma gruppbilder till ffplay (o jag antar vad som helst som klarar videoströmmar, tex VLC) - se bild nedan.
Dock lyckas jag inte strömma resultatet till ffserver; ffmpeg bara spottar ur sig: Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Syftet med ffserver är att jag sen kommer att publicera strömmen på min husautomations hemsida och göra att man kan få med alla kamerorna på samma bild med en uppkoppling och endast mot min ffserver (o inte alla kamerorna).
Har ställt frågor på ffmpeg-forumet men jag får inga svar...
- http://ffmpeg.gusari.org/viewtopic.php?f=12&t=2433
- http://ffmpeg.gusari.org/viewtopic.php?f=12&t=2428
Har någon här lyckats med samma sak eller något liknande så tar jag hemskt gärna emot tips och förslag.
/f
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Strömning av video från flera kameror till en "mosaikbil
Som vanligt med allt som är öppenkod så är det gratis och funkar ofta bra... om man bara läser källkoden och har en längre mail konversation på polska med utvecklaren.
Jag streamade video med VLC, samtidigt som jag klippte ner bilden så att översta och understa delen försvann och sen komprimerades ordentligt samtidigt spara på disk.
Det gick ju, men det var ganska mycket jobb då officiella "dokumentationen" var inaktuell.
Frågan är ju vad du egentligt vill göra? Du får ju i alla fall inte något rörelselarm?
För ca 600kr får du en komplett kinesisk larmcentral färdig.
Jag streamade video med VLC, samtidigt som jag klippte ner bilden så att översta och understa delen försvann och sen komprimerades ordentligt samtidigt spara på disk.
Det gick ju, men det var ganska mycket jobb då officiella "dokumentationen" var inaktuell.
Frågan är ju vad du egentligt vill göra? Du får ju i alla fall inte något rörelselarm?
För ca 600kr får du en komplett kinesisk larmcentral färdig.
Re: Strömning av video från flera kameror till en "mosaikbil
Ja, Hade du kört Windows så hade allt bara fungerat helt automagiskt enligt dina önskemål
ffserver är lite annorlunda och jag har inte blivit helt överrens med det heller. Det ska "matas" med befintlig fil eller feed från ffmpeg. ffservers RTSP implentation är inte helt korrekt heller.
Vad är det du tänker för streaming-format? RTSP?
ffserver är lite annorlunda och jag har inte blivit helt överrens med det heller. Det ska "matas" med befintlig fil eller feed från ffmpeg. ffservers RTSP implentation är inte helt korrekt heller.
Vad är det du tänker för streaming-format? RTSP?
Re: Strömning av video från flera kameror till en "mosaikbil
Du har funderat på att köra t.ex. Zoneminder för kamerorna istället? (Där finns en "montage"-funktion.)
Re: Strömning av video från flera kameror till en "mosaikbil
Jo, men jag hade inte förväntat mig stekta sparvar som flög in o munnen....netrunner skrev:Som vanligt med allt som är öppenkod så är det gratis och funkar ofta bra... om man bara läser källkoden och har en längre mail konversation på polska med utvecklaren.
... men det hade ju varit bra om man från FFMPEG dokumenterat & bifogat något fungerande ffmpeg -> ffserver exempel.
Nu rör det sig inte om Strömgatan 18 i Stockholm med Säpo som uppdragsgivare... hade tänkt klara mig med OpenSource och en par Raspberry PI á 400 mA på +5V.
Re: Strömning av video från flera kameror till en "mosaikbil
Har tagit ett principbeslut att inte köpa mer Microsoft-licenser, någonsin. Jobbar med eländet 40h+ timmar i veckan...maDa skrev:Ja, Hade du kört Windows så hade allt bara fungerat helt automagiskt enligt dina önskemål
ffserver är lite annorlunda och jag har inte blivit helt överrens med det heller. Det ska "matas" med befintlig fil eller feed från ffmpeg. ffservers RTSP implentation är inte helt korrekt heller.
Vad är det du tänker för streaming-format? RTSP?
Har hemmavid dragits med allt från Windows 98 till Windows 10 och man blir bara "trött" när något nytt kommer ut.
Nästa dator blir en Mac eller en laptop med nån bra Linux i...
- Har en handfull kameror
- Har ett hemautomationssystem med bl.a. 1-wire, etc och ett antal Raspberry PIs inkl webgränssnitt, event-push, trendning av signaler, etc.
- Vill bygga mosaikbild att lägga ut på min webserver (Apache) för externt och internt bruk
- Vill helst inte köra annat OS än Debian på Raspberry PI för serverändamålen (läs waste:a mer än några watt och några hundra SEK per dator, slippa Windoze Update, McAffe, etc.)
- Tilltänkta klienter är PC och div iOS devices, interna (i huset) och via extern web
- Kan tänka mig att strömma valfritt protokoll, RSTP var bara det jag "grabbade tag i först".
- Vill inte skicka ut mosaiken via UDP multicast till alla IP-addresser i huset (det vore ju enkelt, det är ju det jag klippte in en bild från)
- I ett senare skede är jag sugen på att leka med motion detection i OpenSource och skapa egna larm om bildinnehållet ändras på visst sätt
Har du något förslag att göra detta på? Jag "snabbsurfade" upp FFMPEG (ffmpeg + ffserver) men det kanske finns andra sätt i OpenSource?
Senast redigerad av flyvert 27 oktober 2015, 18:07:52, redigerad totalt 2 gånger.
Re: Strömning av video från flera kameror till en "mosaikbil
Bra förslag! Skall läsa på om Zoneminder när jag får tid! Tack!Nerre skrev:Du har funderat på att köra t.ex. Zoneminder för kamerorna istället? (Där finns en "montage"-funktion.)
Re: Strömning av video från flera kameror till en "mosaikbil
Bör dock påpekas att pajen är nog för klen om du vill köra rörelsedetektering med Zoneminder.
Re: Strömning av video från flera kameror till en "mosaikbil
OK, köpte faktiskt den senaste 4-kärniga PI 2 för denna "lek", men givetvis får man rätta munnen efter matsäcken!Nerre skrev:Bör dock påpekas att pajen är nog för klen om du vill köra rörelsedetektering med Zoneminder.
-
- Inlägg: 8044
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: Strömning av video från flera kameror till en "mosaikbil
Zoneminder är bra kompetent idag ch funkar. CPU intensivt om man kör per default och med rörelsedetektering. Men stänger man av det och pillar lite så kan det nog funka utmärkt på en PI2. Beror lite på om och hur man sparar datan såklart. Ska man bara liveströmma så är det annorlunda
Vi körde detta på mitt förra jobb med runt 50+ kameror utan större problem.
Vi körde detta på mitt förra jobb med runt 50+ kameror utan större problem.
Re: Strömning av video från flera kameror till en "mosaikbil
Grejen är ju att rörelsedetektering kräver att de två senaste bilderna sparas i minnet och jämförelse görs pixel till pixel (det är den enklaste formen, sen kan man även titta på intilliggande pixlar och grejer). Det kräver dels minne (och det är shared memory som krävs) och sen går det rätt mycket processorkraft.flyvert skrev:OK, köpte faktiskt den senaste 4-kärniga PI 2 för denna "lek", men givetvis får man rätta munnen efter matsäcken! :DNerre skrev:Bör dock påpekas att pajen är nog för klen om du vill köra rörelsedetektering med Zoneminder.
Tänk dig två bilder på 640x480, det är nästan 1 MB per bild (då räknar jag RGB för pixlarna, 24 bitars färg, för jag tror det är så de ligger i minnet för jämförelse), d.v.s. 2 MB i minnet. En jämförelse kräver då 1 miljon subtraktioner. Med en framerate på 25 bilder i sekunden blir det alltså 25 miljoner instruktioner i sekunden, 25 MIPS i princip. Per kamera. Sen lär det ju tillkomma en del overhead, det är ju inte bara subtraktionerna som ska göras, det ska ju räknas hur många pixlar som har ändrat sig mer än tröskelvärdet och lite såna grejer.
Nu kör jag iofs bara 2 fps på kamerorna (ökar till 5 fps vid rörelse), ovanstående var bara ett räkneexempel.
Re: Strömning av video från flera kameror till en "mosaikbil
Är inte helt nöjd med den motion detection som är inbyggd i ACTi kamerorna jag har trots "vettiga" inställningsmöjligheter. Antingen ingen detektion av en passerande elefant eller så detektering av minsta pixel...
Var ett tag sugen på att testa ACTis egna inspelningsprogramvara (som är gratis upp till 16 kameror) men har mindre lust att låta en XP burk dra ström 24x365 för det ändamålet.
I full HD och med IR night mode blir det inte så många fps om bilden skall vara tolkningsbar; skall experimentera med detta vid första bästa tillfälle! Varje kamera kan leverera två olika bildströmmar, tex en 1920x1080, 13 fps, H.264 och en annan 640x480, 7 fps, MJPEG.
Är dock fortfarande sugen på att få till det med ffmpeg/ffserver...
Var ett tag sugen på att testa ACTis egna inspelningsprogramvara (som är gratis upp till 16 kameror) men har mindre lust att låta en XP burk dra ström 24x365 för det ändamålet.
I full HD och med IR night mode blir det inte så många fps om bilden skall vara tolkningsbar; skall experimentera med detta vid första bästa tillfälle! Varje kamera kan leverera två olika bildströmmar, tex en 1920x1080, 13 fps, H.264 och en annan 640x480, 7 fps, MJPEG.
Är dock fortfarande sugen på att få till det med ffmpeg/ffserver...
Re: Strömning av video från flera kameror till en "mosaikbil
Rent spontant: Sådan här bildhantering borde vara en barnlek för ett inte alltför dåligt grafikkort - avlasta själva jämförandet av bilderna till GPUn med hjälp av någon pixelshader eller liknande. Borde inte vara några problem alls att köra i realtid
Re: Strömning av video från flera kameror till en "mosaikbil
För professionellt bruk (Strömgatan 18...) kan man nog tänka sig både ett o annat o kosta på sig hårdvara med fläktar och i jämförelse med Raspberry PI oändliga strömbehov.Onkelborg skrev:Rent spontant: Sådan här bildhantering borde vara en barnlek för ett inte alltför dåligt grafikkort - avlasta själva jämförandet av bilderna till GPUn med hjälp av någon pixelshader eller liknande. Borde inte vara några problem alls att köra i realtid
Mina primära mål är:
1) Stanna på Raspberry PI hårdvara
2) OpenSource
3) Muxa flera kamerabilder till en gruppbild
4) Egen Motion Detection att ersätta den inbyggda som jag inte riktigt fått kläm på
Med ffmpeg kan jag redan idag strömma en muxad bild till en eller flera permanenta klienter, alternativt 24x7 dränka mitt hemma-LAN med feta multicast oavsett om någon klient är igång eller inte.
Med ffserver trodde jag att jag kunde ordna "on demand" unicastade strömmar till temporära klienter, kanske en iPad, VLC eller Kodi (XBMC) klient hemma eller en temporärt ansluten iPhone över internet (HTTPS eller VPN).
Re: Strömning av video från flera kameror till en "mosaikbil
Samma här, jag var bara ironisk Många som är snabba med det uttalandet när man nämner Opensource.flyvert skrev:Har tagit ett principbeslut att inte köpa mer Microsoft-licenser, någonsin. Jobbar med eländet 40h+ timmar i veckan...
Har hemmavid dragits med allt från Windows 98 till Windows 10 och man blir bara "trött" när något nytt kommer ut.
Nästa dator blir en Mac eller en laptop med nån bra Linux i...
Vad iOS-enheter klarar att spela i form av "embedded" i en webbsida är jag lite osäker på. Men jag har en känsla att HTML5 och RTSP samt Apple HLS är det tänkbara (vanlig MP4 fil via HTTP fungerar bra iaf.)flyvert skrev: - Tilltänkta klienter är PC och div iOS devices, interna (i huset) och via extern web
- Kan tänka mig att strömma valfritt protokoll, RSTP var bara det jag "grabbade tag i först".
- Vill inte skicka ut mosaiken via UDP multicast till alla IP-addresser i huset (det vore ju enkelt, det är ju det jag klippte in en bild från)
- I ett senare skede är jag sugen på att leka med motion detection i OpenSource och skapa egna larm om bildinnehållet ändras på visst sätt
Har du något förslag att göra detta på? Jag "snabbsurfade" upp FFMPEG (ffmpeg + ffserver) men det kanske finns andra sätt i OpenSource?
Det dumma med ffserver som jag förstår är den den *måste* koda om av någon anledning ("VideoCodec copy" fungerar inte), vilket kommer bli rätt tungt för din stackars RPi.
Men eftersom ffmpeg's RTSP implentation inte är korrekt/komplett så skulle jag nog kika på live555
http://www.live555.com/mediaServer/#http-live-streaming
ffmpeg --(mpeg-ts)--> live555 --(rtsp)---> klienter