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?
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.