I would probably use FFmpeg for this.
If you want to mux the subtitles as a separate stream in a container format, you'd have to use MKV:
ffmpeg -i input.mp4 -i input.sub -c copy output.mkv
This will not work on the PS3, which doesn't support MP4 (and MP4 doesn't support DVB subtitles).
If you want to burn the subtitles into the video (so they can't be turned off), you can use ffmpeg's subtitles video filter (will require a very recent build of ffmpeg):
ffmpeg -i input.mp4 -filter:v subtitles=input.sub -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4