You need "hairpin NAT". There's a few pages/videos out there but the exact setup comes down to your particular settings.
You basically need a rule to masquerade any packets with a destination of your external IP, but coming from the internal interface. You then need another rule (filtered to the port it would be trying to connect on) to mangle that and set the source as the internal router IP and the destination as the CCTV IP. You need a rule for each port that you forward to mangle it to the right destination.
Note that for dynamic IPs you can add hostnames to address lists. If you do that with the "mynetname" hostname from Mikrotik you have an address list that always resolves to your external IP to be used by that first rule.
You basically need a rule to masquerade any packets with a destination of your external IP, but coming from the internal interface. You then need another rule (filtered to the port it would be trying to connect on) to mangle that and set the source as the internal router IP and the destination as the CCTV IP. You need a rule for each port that you forward to mangle it to the right destination.
Note that for dynamic IPs you can add hostnames to address lists. If you do that with the "mynetname" hostname from Mikrotik you have an address list that always resolves to your external IP to be used by that first rule.
