I have a ubuntu server running on a network which is visible outside to the internet. My question is, is there a way to stream the video from the raspberry pi to my Ubuntu server and from there to any Web client on the internet? I have seen ways using Mjpeg,Motion,VLC etc. But the point here is we should know the internal IP of the Pi which I want to avoid and make it visible to the internet without port-forwarding on my router. Are there any ways to achieve this feat?

  • You need a proxy in your ubuntu server. If you looking for RTSP proxy you could try live555.com/proxyServer
    – mpromonet
    Mar 7, 2015 at 9:41
  • You don't want port forwarding via the router but you could instead use port forwarding via the Ubuntu box...
    – goldilocks
    Mar 7, 2015 at 12:13
  • @ mpromonet Thanks. Will look into it. @goldilocks I didn't get you. How to do that on the ubuntu server side?
    – shank7485
    Mar 7, 2015 at 19:28
  • You want to connect to the pi as if it were the Ubuntu server, right? So you port forward from the server box to the pi, the same as you would with a router. You would do this via iptables. Questions about port forwarding on linux belong on Unix & Linux, however -- and I guarantee there's a lot of them already, so try to do a little research first and if there's something you don't understand, ask a specific question there. I'll leave this open for now in case this is not what you were looking for.
    – goldilocks
    Mar 7, 2015 at 19:34
  • Best solution is crtmpserver on your server where clients will connect to. (its very slick) You push a stream to crmpt from wherever (no need to open port on pushing device, ie Raspberry, since its outgoing), then clients connect to crmtpserver, hosted on VPS (digital ocean)? This is a FLV stream and required Flash if emvedding in a webpage. There is no HTML5 way yet. But you can connect to crmtpserver with VLC too. There is a nginx plugin called nginx-rtmp which is crtmpserver packaged up fro nginx. This also works really well.
    – Piotr Kula
    Dec 3, 2015 at 10:18

1 Answer 1


There are several ways to do this, based on whether your Ubuntu box is the router or not.

If you are forwarding traffic you can look into using iptables with SNAT/DNAT.

Or you can use an application layer gateway that understands the streaming protocols to do this, optionally providing the user with multiple protocol options. For those who uses HTTP Live Stream, nginx is a good application layer gateway.

  • This does not really answer the question
    – Piotr Kula
    Dec 3, 2015 at 10:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.