+11
Discuss

Live IP Camera Feed into AT using RPi3B - WORKING!!!

adamph 7 years ago in Media Tiles / Video Camera Feeds updated by Eric S. 4 years ago 42

Hi All,


After many attempts to try and google the right URL, encoding login/pw into the URL, using RTSP vs. HTTP etc etc... I wanted to help others out by documenting what I did to finally get live feeds from my IP cameras into Action Tiles. 


This method is NOT FREE, and will probably cost you about ~$60-$75 for all of the materials to set up.

No coding experience required. This is primarily all configuration. 


--- 


What I tried and why it didn't work:


1) My NVR only provides RTSP feeds and therefore no http url would work for me, either to the cameras directly or to the NVR. If you're in a similar situation, I would recommend going this route.


2) RTSP feeds used as the URL in ActionTiles will also not work, especially if you're using the recommended Fully browser. You would not be able to pass your authentication credentials in the RTSP url (Fully will not allow it).


3) TinyCam Pro worked for a bit, however the webserver kept crashing. As a standalone on low bandwidth profile, compression 50 in ActionTiles, and only streaming 2 cameras, TinyCam Pro was using almost 40-50% of my Fire HD7. I believe my Fire HD7 couldn't handle the load and therefore just kept crashing, causing a blank image on my tiles. I'm glad I at least tried this route, since that's what gave me the initial idea of a webserver approach.


4) I don't subscribe to 3rd party services such as Blue Iris, but from what I know now, I'd say in the long run this method I'm about to describe can replace that service.



---


Basically we'll be taking the same approach as TinyCam Pro did, except running a similar Web Service approach on a separate device instead of the same device Action Tiles is running on.


Materials needed:

1) A Raspberry Pi (I used an RPi3 model B for mine)

2) RPi3 case and power adapter

3) MicroSD card that is at least 8 GB. I grabbed a Samsung Evo+ that was 32 GB off of Amazon for around ~$30

4) Your tablet running ActionTiles (I'm using a Fire HD7)


High Level Steps:

1) Set up our RPi with motionEyeOS.

2) Add your cameras into the motionEye software.

3) Grab the http stream url.

4) Add media tile using the stream url in Action Tiles.

5) Profit.


Step By Step Instructions:

1) Visit the github to grab motionEyeOS to be installed. Make sure you grab the right one for the particular Raspberry Pi version you have to play with.

https://github.com/ccrisan/motioneyeos/wiki/Installation


2) Follow the installation instructions to flash motionEyeOS on your microSD card.


3) Put your RPi in the case, HDMI to a monitor, plug to your network via ethernet, put your microSD card in and power your RPi on. 


4) Assuming their are no errors, the bootup text will provide the IP address for your RPi (You can change this later either when you log into the RPi or through your router settings). If everything boots up fine, you can safely go place your RPi somewhere, so long as its hooked up to the internet. We'll be doing everything remotely for now on.


5) After putting your RPi somewhere and powered back on, go back to your computer and enter in the RPi's IP address in your internet browser. This should bring you to MotionEye's login screen. Use admin with no pw as your initial login.


6) Now that you're in you can tweak stuff like turning on your RPi's wifi, changing the default pw, etc.


7) Start adding your cameras in. use the site AT recommends if you don't have access to your camera or NVR's manufacturer manuals. I did not embed credentials in my URL, there should be blanks provided for you to input login details when you add your cameras. 

https://www.ispyconnect.com/


8) Assuming you added them correctly, you should now see them displayed in the GUI. I only have 2 in mine since that's all I wanted to display in AT, but I'm sure you can add many more.


9) After adding your cameras, now grab the stream URL in the camera settings. This should be just the IP address to your RPi followed by the port assigned to each camera you added.


10) Within ActionTile (you can even test in a separate browser tab if you want) this should show up instantly.




I hope this helps anyone trying to do this same thing. Good Luck!



I'm a little confused by your post.  Are you using iSpyConnect to get the stream into action tiles or are you getting it directly from MotionEye?  Your instructions are very confusing.  You talk about grabbing the URL for your camera...wouldn't that be the URL for motioneye?

+1

Sorry if I wasn’t clear. If you do not know your RTSP url, you can use iSpyConnect to look that information up. They are manufacturer specific. You will use this RTSP url To input into motionEye when you add your cameras.


In short we’re taking the RTSP stream and using motionEye to convert that into an http stream that we can use in AT.

Thanks for the advice, Adam.  This works great!  I have 4 Logitech Alert cameras at my home that I can no see on my ActionTiles dashboard.

I used RPI 3 B+ and installed motion eye OS but something went wrong it says RSTP protocol not supported.

Any idea what could be the issue.

Did you cross reference the RTSP link syntax you’re using with the correct manufacturer/model for your camera?


ISpyConnect can help with that. What cam/model do you have and are you connecting to the cameras directly or to an NVR?

hello hope all is well can you please do step by step on how to find that information that I need from I spy to be able to use for motion eye , thank you ,

are you trying to connect directly to your cameras or a NVR?


What’s the manufacturer and model numbers?

currently iam playing with the program and trying to add an old xfinity camera it works on ispy and ip camera viewer 4 down the road iam planning to get this system


 https://www.amazon.com/gp/product/B00NBT2ZZ0/ref=ox_sc_sfl_title_2?ie=UTF8&psc=1&smid=AQKEF0UEM73LD

and I would like to add it to motion eye. 

+1

again, no need to add anything with iSpy. It’s simply a website to help you find the correct syntax for your model’s rtsp url.


https://www.ispyconnect.com/man.aspx?n=Zosi


Once you get that NVR grab the model number, look it up using the url above.


Of course if you’re going to order that, it should come with the manufacturers instructions. In there should contain the proper RTSP you would use.


Also, this is assuming RTSP is your only option. With Zosi looks like you can just connect directly using http://. If that’s true you should be able to plug that directly into actiontiles, no need for motionEye to convert RTSP to http

so the web site is the one that can help me find the url that I need , not the app I downloaded from them ? is there like a how to to be able to use the website and find it ? 


wont work for my xfinity one lol there goes my tester , lol ill wait until I get the zosi to be able to play more , thank you  for eeverything , ill post again when I set it up or trying to set it up , with the zosi

+1

thanks  rijosroberto  I got it all working  so far  (3xIP2M-841 and  1xIP4M-1026W), the  quality of the  video streaming is not as  good as expected,  I believe  I have  something  wrong configured at the camera level or in MotionEye I just need to look at the  parameters, again thanks a ton for your post

+1

iam glad i was able to help in some way lol , motion eye is a good program at least it has been working good for me , and you can record on it like a dvr 

lol my bad I am sorry the the big thanks must go to adamph  he is the one who shared his  experience

Lol i know lol , thats why i said was able to help in some way lol ,  where you able to configure the cameras fully now and add them to action tiles , and what cameras are you using ?

Yes   all 4 are working fine now  in AT, I have Amcrest 3xIP2M-841 and  1xIP4M-1026W the quality issues was a wrong setup on the camera itself  all good now, now I have to be honest the spyconnect software  did not help me I found the  rstp link  searching  in  Motioneye forums for both of my  cameras and the rest is history, the issue with picture quality was at  my camera config I was messing quite sometime ago trying to make it work with AT  and I never   revert back to  the defaults   but now all good

Thank you so much Adamph for step-by-step instructions. 

I tried and managed to do eveything in your post BUT got stuck with "your Ip cameras are not supported" warning:) LOL 

(I am using Amcrest NVR system wıth IP cams 3mb)

Anyway I got another way of doing it and wanted to share with you guys: It's not ideal but instead of changing the whole system to compatable cameras, this would do it for now.


Got the IP address of the cameras and found the correct way of placing them in a browser where you can see snapshots of my cameras:

http://username:password@xxx.xxx.xxx.xxx:portnumber/cgi-bin/snapshot.cgi?channel=0

please do search for your model and brand. I am sure some people posted somewhere. You will find it.

Each camera has a different IP address and port they use. You have to do this for each camera seperately.

(I can't use Ispy because i am a MAC guy:))))


- Set your snapshots for 1ps in your camera settings.

- Place media tiles in AT and use GIF option. I refresh the gifs every 3 seconds.


That's it. Now I have a clear image of my cameras (not mjpeg, it's H264) and updates around every 5 secons.

As I said this is not ideal but my main security system records everything constantly anyway. Lets say if I am upstairs and a car just came by. I can look at the wall tablet and see what's going on within 3-5 seconds. So it works.


CONS:

- Sometimes media tiles show blank grey screen. If you get out and get back in, they will start giving the feed again.

- You have to have a static IP

- I am still working on which camera uses what port, because sometimes they change the ports they use???(I couldn't figure out to fix that yet) so, if the camera port changes, you have to add a new media tile because you can't go back and edit the media tile link. (Or you can but i don't know how to)


Ike



Did you try: https://support.amcrest.com/hc/en-us/articles/206813947-RTSP-Stream-URLs-for-HD-CVI-DVRs-1080P-HD-CVI-?


Example:

rtsp://admin:admin@192.108.1.108:80/cam/realmonitor?channel=1&subtype=1


Your RTSP url should be to the NVR. 


Again, iSpy is just a website to ONLY to look up what your suggested RTSP url syntax should be. No need to download or install anything from iSpy. 


if what I suggested doesn’t work and you continue the gif route, you had a question about what port the camera uses.


This is set in the software, so you can find this by logging into the cameras themselves. Ports typically don’t change automatically. Log into the camera via IP address, or through your NVR, then check the settings. The port used should be there. 

They provide the RTSP in the admin panel of the NVR. I had no problem with that part.

My problem started at the very end where motionEye said my cameras are not supported...


@adamph thanks for showing us this. I set it up tonight. My only concern is that the feed doesnt seem consistent either in AT or even the motionOS. Often I find the feeds are lagging by 10sec to a minute.

This might be because Im running the Pi3B on wifi rather than cabled. Ill try it tomorrow and let you know


Ive also found that if you try run more than 3 feeds, the Pi seems to lag even more. Has anyone tried this with swarmed Pi3's? Im not sure you can swarm with MotionOS?

+1

I’m grabbing 4x feeds into motionOS. Almost positive it’s because your Pi3 is running wireless and not wired. 


The “stream” is wirelessly being captured by the RP3... then RP3 converts it to HTTP and restreams it (wirelessly) back to your router, where as your router is wirelessly streaming it to your AT.


This is also assuming your cameras are wired IP cameras and not wireless themselves...


As a test, move your RP3 to a wired connection to your router. If possible also use a computer wired to your router and observe if you see a difference there.


This might be obvious but if not make sure you also have a good router.

Thanks Ill give it a shot today. One of the other issues that Im seeing is that the Rpi seems to be running very hot and then getting throttled. This is likely one of the issues around the lag.

Ill get a heat sink for it and move it to wired connection and let you know later.


Video Device Options:

Resolution: 320x240

Frame rate: 30 fps


Stream Options:

Stream Frame Rate: 30fps

Quality: 50%

Motion Optimization: ON


Ive disabled SAMBA, FTP, any form of recording (motion/still) and motion detection to keep overhead as low as possible. Let me know if there is anything you recommend changing.


Also, can you swarm the RPi with motionOS?

You might want to lower the resolution of each cam in Motioneye.  If you're only looking at it on Action Tiles shrinking it should lower the processing required by your pi.  

I have the RTSP streams setup in MotionEye, and was then able to use the MotionEye URL to setup the stream in AT.  But at this point, my MotionEye stream doesn’t have any username/password.  Does anyone know how I can set that up, and what the format of the full MotionEye URL would be for use in AT?

under the Video Streaming settings in MotionEye, I don’t see anything listed.


Username/pw is part of your RTSP feed into motionOS (the username/pw of your cameras so motionOS has access to your cameras).


Setting a username/pw to access the http produced by motionOS I think is neglible. Reason being is the http is an internal IP address, so the only ones who can see the http feed from motionOS, has to also be part of your network, unless you have ports open to your RP3 from outside.

Unless I’m mistaken I need to open the ports to the RP3 so that AT can access the feeds.  That means the camera feeds would be available from the outside unsecured, like http://x.x.x.x:8081

I was hoping to put a username/password to get some level of security like this:

http://x.x.x.x:8081?user=blah&pwd=blah


Thank you

+1
Discuss

You don't have to open internet ports if you are running ActionTiles on the same LAN network as the rPi.


ActionTiles does not route video outside the LAN (ie, no cloud involved).

+1

Terry and adamph, thank you both!  I had assumed ActionTiles would need the external IP to access the feeds, but as you both pointed out, the feeds are accessible with the internal IP!  Works great, and no security worries now.

+1

you’re providing ports from your RP3 so that the RP3 knows which stream to route you too when devices hit your RP3 internally.


You are NOT opening ports from your router... which would equate opening ports into your RP3 from outside, make sense?


Meaning... let’s say your external IP is 123.4.2.123. 


Let’s also say internally your ip mapping is 192.168.1.xxx


So your RP3 is 192.168.1.2.


Any ports open on your RP3 are NOT accessible externally... not 192.168.1.2:8000 or anything. This is internally only and only accessible internally.


Now had you gone into your router, and set a mapping where 123.4.2.123:8123 (port 8123) maps to your RP3 - 192.168.1.2:8000, then you’d be in danger, but that’s not what you did here.


Make sense?

makes sense now, thank you for taking the time to explain it.  I’m pretty new here and been trying to read a lot of posts to learn all about this, so I really do appreciate the help.

So Im happy to report back that changing to LAN cable rather than wireless dramatically improved the streams. Im now successfully running 6 camera streams to 5 tablets without a hitch so far.

On a side note, I added some heatsinks to the RPi which has also seemed to stop the throttling (which ultimately I still believe was the main issue) It was throttled down to 0.7ghz and as you can imagine wasnt doing much with that :)

that’s good to hear!


I’m using a FLIRC case on mine, but they have tons of case options on amazon, some with its own fan.

sadly amazon doesn't help me much as the shipping to where I am will cost about 3 times what the case does haha.


The heat sink seems to be holding it for now, but I'll watch it over the next day or 2 and if need be I'll look for another case.

I am using RBP3 and Ffmpeg.. Got a clear video with maybe 10sec delay (no big deal) but when I was testing,

Single camera, 10fps, heatsinks, LAN cable..STILL RBP got so hot where I couldn't even touch the heatsinks..And the lag was up to a minute.

I might switch to a computer that I am not really using anymore. 


as @Ryan Casler suggested, try using lower resolutions/quality.


Since you’re viewing them in AT on a tablet, there’s plenty of wiggle room for you to lower the resolution to something that’s not too sharp but still good enough

@adamph is there a recommended limit on the number of streams and devices you stream too?


Even after reducing quality to 50% and resolution to 320X240 my RPi still seems to be running very hot. Ive added a heatsink too. Just worried that this thing is going to blow up on me at some point :D


But other than that ive had it running since thurs evening, but indefinitely getting throttle warnings.

I don't know if there's any recommendations since every scenario is different. I'd say start with the lowest acceptable to you, then slowly work your way up. So for example with your specs, with framerate of say 5, then observe how that is. For me since they're displayed in a 2x2 tile on my dashboard, i'm not keen on having them at a high framerate (especially since i'm not viewing my dashboard all the time). For me it's if someone is coming up to my door, at least if i can see who it is from the tile, i'm good... i don't necessarily need to see them real time as they literally walk up to my doorstep. 


you might look into a case that has a fan. Also if you're running your RPI on LAN, consider disabling the Wifi so it's one less thing for the onboard CPU to worry about. If you're doing other things on the RPI, like running homebridge or something, consider getting another RPI for just that.

I'm running Cast-Web-Api, Google Assistant Relay, WebIOPi, and MotionEye streaming 2 cams to ActionTiles all running at the same time on my RPi 3 and with moderately sized heatsinks and NO fan, my RPi never goes about 63 degrees C and my CPU usage during normal load is around 35-40%.  My camera streams are both receiving and streaming at 30 frames per second and are at least 640x480.  I have the stream quality at 80%.  How many cams are you trying to stream?  Are they all IP cams or are you trying to use a bunch of USB cams.  If you're trying to do a bunch of IP cams, then you might run into problems since the usb on the RPi isn't very good at powering peripherals.  You might need to use a powered usb hub.


As adamph suggested, I am running the RPi on LAN and have turned off both bluetooth and WiFi as those cause a LOT of heat.  Plus, the WiFi on the RPi3 is not AC, only N.  

Hi Ryan, on a high level can you walk through what you did to host multiple web servers on different ports on the same RPi3? I want to start venturing into using Google Assistant Relay for broadcasting custom messages.

For context, I already have MotionEye running, so when i hit the RPi's IP address, it opens motion eye directly. I assume its because MotionEye is designated at the default port of the RPi?

Hi Adam,


Thanks for the great info on how to do this.  I have Surveillance Station setup with 4 cams, I would basically grab the 4 RTSP stream links within SS to use in MotionEye setup right?  (Sorry, first time trying this and wanna make sure I get it right.)  Thanks!

+1

Yes, that's correct. Find your appropriate RTSP feed syntax, load it into MotionEye, which will spit out an HTTP feed you can use to display on your ActionTiles.


Good luck!

Appreciate the prompt response and confirmation, thank you!!

Hi, I know this is an old post, but i just set this up on a Rpi4 with 16 cameras across 2 NVRs and it's working really well, i'm using action tiles on fire 7 tablets and there is no lag, really good quality and super easy to setup, Thanks for the informative post on setting this up.