Sorry to bump a topic from a while ago, but I figured in case it helps anybody, this might be worth a mention: I got this to work using VidCoder Beta v1.5.27.9 (x86).
I had pretty much the
exact same problem as the original author of this thread:
internetsandman wrote:This really shouldn't be so difficult, but apparently it is. Handbrake lacks this functionality, despite having a specific feature to add subtitles via SRT file. VLC supposedly has a conversion option that allows hardcoding of SRT files, but when I tried that, the audio wouldn't play through Windows Media Player, only through VLC, and even then, the subtitles still were not in the video.
All I want to do is take the MP4 video file and hardcode the subtitles into the video so that it will play without issue on anything that can play an MP4 video, such as game consoles. I'm getting frustrated at this point and there has to be a solution out there, any help is greatly appreciated
I needed to hardcode (or "burn") subtitles into an mp4 video with H.264 + AAC encoding, in order to play it on my Xbox 360 - which, as we all unfortunately know, does not support external subtitle files. I had tried a number of things over the course of two days including the following, which seemed most promising because of their popularity and frequency in forums, though they all turned out to be completely useless to me:
- VLC's convert function
- Handbrake
- and the opensource tool AVIaddXSub
I found a discussion on forum.videohelp.com (Topic: How-to-easily-burn-in-hardcode-srt-subtitles-to-mp4-mkv-with-VidCoder, by Baldrick - since I cannot post URLs) about this program called VidCoder, with a complete tutorial on how to use it, screenshots included. The GUI is pretty straightforward and simple to use, but also has advanced settings in case you're a pro (which I am NOT) and want to play around with it.
Turned out, it was exactly what I needed, BUT it might not work for everyone - especially if you are trying to hardcode subtitles using non-UTF-8 characters (in general, scripts other than English). For those situations, it seems like VidCoder is still a work in progress, at least the version being discussed in the forum. The output options are also limited to MP4 and MKV, but again this was fine for me when running the finished video on an Xbox 360. If you are interested in hardcoding standard English subtitles from SRT files, this might be a good option for you.
Just a quick synopsis of what is discussed in the forum mentioned above:
- Choose a source video file.
- Specify a subtitle track by importing an SRT file.
- Select an output path.
- (Optional) You can mess with the Encoding Settings. From the discussion, it looked like some people had to change the audio stream to get the final product to work properly, but that was also for an older version of the program; I didn't have to do any of that - AAC worked fine.
- (Optional) Specify a 'Preset', such as Android, Apple iPod, and even Xbox 360!
- Encode and wait until it's finished.
I was also super frustrated when I first started exploring this problem of devices not being able to read SRT files. I have since learned that re-encoding video is not as trivial as I thought it would be. Looks like a lot of things can go awry and cause your video to not play in certain devices. For instance, the MP4 file I had been working with never played on my PS3, though it worked on Xbox 360 and VLC. This was true regardless of whether I repackaged it as an AVI or MKV. So it seems that even though a file contains an extension like AVI or MP4 that should be playable by a given device, these zipping/unzipping actions are not guaranteed to encode your data in a format that can be properly read by that device. Whether or not some solution works for you depends on the total encapsulated package rather than on just the file extension.
Anyway, glad I found this program. I'm going to tinker around more with this, later. Not sure if it will help anyone, but it definitely got the job done for me.
I'm now wondering how Netflix or Amazon Video encode their optional subtitles. And if they can do it, how hard would it be to write a video player app for Xbox or PS3 that reads SRT files and gives the option of displaying subtitles? Clearly, a discussion for a different thread
.