Answers.Body: <p><strong>Update with answer</strong></p>
  
  <p>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.  </p>
  
  <p>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. <strong>But it only worked because</strong> first my tester had to enable "closed captions" in his iPhone's:</p>
  
  <pre><code>Settings &gt; General &gt; Accessibility &gt; Subtitles &amp; Captioning &gt; Closed Captions + SDH
  </code></pre>
  
  <p>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. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-11-14T17:33:30.190Z
Answers.LastActivityDate: 2014-11-17T10:41:10.667Z
Answers.LastEditDate: 2014-11-17T10:41:10.667Z
Answers.UserDisplayName: plugincontainer
Body: <p>I'm using <strong>videojs</strong> 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.</p>
  
  <p>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). </p>
  
  <p>It's not a problem of coding (used UTF-8) or server configuration - if I insert two <code>&lt;tracks&gt;</code> in the videojs <code>&lt;video&gt;</code> element - one the vtt file, one the srt file - both play, together, in the videojs player.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2014-11-10T15:13:11.073Z
Comments.Text: 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.
Comments.UserDisplayName: AJ Henderson
Tags: <mp4><webvideos><subtitles>
Title: Why do SRT subtitles fail to appear in my MP4 videos on iPhones?
UserDisplayName: plugincontainer
ThreadText: # Why do SRT subtitles fail to appear in my MP4 videos on iPhones?
  
  (Asked by: username_0 on 2014-11-09)
  
  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.
  
  **Tags:** mp4, webvideos, subtitles
  
  > **Comments:**
  > **username_1**: 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.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2014-11-14. Score: 1 | Accepted answer
  
  **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.
  
  
  ---
  
  