It depends on if your ISP provides a public IP or not.
If it's the case, you simply have to forward the relevant port (in this case, 8554) from your router. Even though, you're assigned IP dynamically each time you connect, you can make use of dynamic dns services like no-ip / dyndns.
If your ISP doesn't provide a public IP and most of the ISPs do not. You will have to create tunnel that would remote forward your port from RPi to a server publicly available and you can catch your stream from that server's IP : relevant port.
It looks graphically like this.
RPi behind NAT <==> Public server <==> your device
Hope it helps.
Here is a guide how to do it.
http://www.tunnelsup.com/raspberry-pi-phoning-home-using-a-reverse-remote-ssh-tunnel
Hope it helps.
========================================================================= Edit: (Answer to questions asked in comments)
So how to test if your ISP provides a static IP ? Google "my ip" from your computer, if it is same as listed under 3G / 4G / WAN IP under your router ? If Yes, you've a public IP. Otherwise no. Here's an example.
How to forward port in this case ?
In most routers, there's an option for port forwarding. See snapshot.
You asked if no-ip / dyndns can be used to address later case. Answer is : No. Because your IP is behind NAT. dyndns / no-ip sees your public ip and points to your public ip not an actual IP behind the NAT.
Hope it helps.