I'm using videojs in an HTML page to publish a video with VTT captions. Problem is: iPhones do not play the mp4 in the videojs player - it renders the full videojs player, but when you click the Play button, it opens the mp4 in it's native player (QT player, presumably). This is normal behaviour for video on iPhones - but at that point I lose my captions, which are inserted in the videojs player through css.

So I ran the MP4s through Handbrake with imported .srt files. In my local VLC player, the captions appear. But when I put the same files (MP4 + SRT) in the same directory on my web server, the subtitles do not appear on the video in iPhones. In fact, the subtitles - or any subtitles option - also do not appear in the native players of desktop Firefox, Chrome or IE 11 (which uses a QT plugin for video).

It's not a problem of coding (used UTF-8) or server configuration - if I insert two <tracks> in the videojs <video> element - one the vtt file, one the srt file - both play, together, in the videojs player.

  • Glad you found something. Feel free to post it as an answer and mark it as answered if it solved the problem. That way we can upvote it as a thanks for sharing.
    – AJ Henderson
    Commented Nov 10, 2014 at 15:13

1 Answer 1


Update with answer

It can be done. Run your source files through Handbrake, after importing the subtitle files you want. Then export as Mp4. I've read (a) you should put the SRT file/s in the same folder as the Mp4 on your server, and (b) the SRT should have the same name as the mp4. But (a) is probably wrong (in a text-editor, you can see the subtitles have been coded into the mp4 by Handbrake) and (b) is definitely wrong - two different language SRT files will obviously have different file names.

Testing... On iPhone, a little speech bubble appeared on the right side of the QT player control bar when it loaded my MP4. Tapping that popped up the two subtitle language options. So, it worked. But it only worked because first my tester had to enable "closed captions" in his iPhone's:

Settings > General > Accessibility > Subtitles & Captioning > Closed Captions + SDH

In other words, an extra chore for users and the result is crappy-looking subtitles anyway. And all this because, unlike Samsungs and most other mobiles I've tested on, the iPhone overrides the videojs player and plays your videos in Apple's own Quicktime player.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.