The question is how you want it done.
“Inject” a set file inside the original MP4 container (in other word, remux). And this will provide soft sub that you can turn on of off.
Or “burn” all text onto the original video (in other word, re-encode). And the hard sub will always there, cannot turn off. But the sub will always look identical on any player at anytime. No sync issue, etc.
If you want soft sub, Subler is the solution. Unless you didn’t do it right. Another free option is MKVtool, but the container will be changed to MKV. This is not a problem for computer, but may be an issue for other player.
If you want hard subs, then Hanbrake is the easiest way to do it. But the re-encoding process of course will take 100x longer than just remux (copy and paste).