user10345: I am going to be working on a video project that needs closed captioning. The requirement we got from the client says....
Closed Captioning

Embedded Timed Text subtitle track (ISO/IEC 14496-17)

After doing some research I haven't been able to find anything that would let you embed a Timed Text file into a video. Is that even possible? What would be the process for accomplishing this? I am using Adobe Premiere.

user10428: http://en.wikipedia.org/wiki/MPEG-4_Part_17
"Timed Text" Format comes in many flavors
example tools would be ffmpeg, subler, mp4box

user9105: If you can use mkv instead of mp4 as your container format, there is widespread player and muxer support for various subtitle formats in matroska.  (widespread throughout free / open source software.  I can't comment on other players.)
Then you can use SRT, ASS, and many other text subtitle formats.  You can even use bitmap sub formats like VOBSUB (dvd) or PGS (blu-ray).
wikipedia has an interesting table of subtitle formats.
To properly answer your question, though, I just tried muxing SRT subs into an mp4.  It doesn't work.
ffmpeg -i in.mkv -i in.srt -c copy /var/tmp/out.mkv  # works
ffmpeg -i in.mkv -i in.srt -c copy /var/tmp/out.mp4  # just timestamps
The mp4 has a mov_text stream, but displaying it in mpv just shows "00:00:00.000" or some other timestamp, with no text.  Ok, apparently ffmpeg doesn't get it right unless you specifically use -c:s mov_text.  If you use -map 0 -map 1, I get 
  Stream #1:0 -> #0:2 (subrip (srt) -> ? (?))
Encoder (codec none) not found for output stream #0:2

(My subs are in a separate file, not muxed in the mkv, so I need a -map for each to make sure I take all streams from all files.  Otherwise ffmpeg just takes the first a, v, and sub stream it finds.  And without -map 1, it doesn't try to use the srt input at all, for some reason.  Like I said, it makes a mov_text stream, though.)
Anyway, I left in my mis-steps in case they're helpful when you're trying to figure out this stuff yourself.  This works and plays with subs in mpv:
ffmpeg -i in.mkv -i in.srt -codec copy -c:s mov_text /var/tmp/out.mp4

The key line in the output is:
  Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native))

For editting your subtitles, you can use anything that can produce a subtitle format that ffmpeg can read.  (It should be able to convert any text-based format to mov_text.)  Subtitle Edit is one of the newer better-maintained GUIs, and runs on Windows and Linux at least.  IDK about OS X.

10345: <p>I am going to be working on a video project that needs closed captioning. The requirement we got from the client says....</p>

<p><strong>Closed Captioning</strong></p>

<ul>
<li>Embedded Timed Text subtitle track (ISO/IEC 14496-17)</li>
</ul>

<p>After doing some research I haven't been able to find anything that would let you embed a Timed Text file into a video. Is that even possible? What would be the process for accomplishing this? I am using Adobe Premiere.</p>
 10428: <p><a href="http://en.wikipedia.org/wiki/MPEG-4_Part_17" rel="nofollow">http://en.wikipedia.org/wiki/MPEG-4_Part_17</a>
"Timed Text" Format comes in many flavors</p>

<p>example tools would be ffmpeg, subler, mp4box</p>
 9105: <p>If you can use mkv instead of mp4 as your container format, there is widespread player and muxer support for various subtitle formats in <a href="http://www.matroska.org/" rel="nofollow">matroska</a>.  (widespread throughout free / open source software.  I can't comment on other players.)</p>

<p>Then you can use SRT, ASS, and many other text subtitle formats.  You can even use bitmap sub formats like VOBSUB (dvd) or PGS (blu-ray).</p>

<p><a href="https://en.wikipedia.org/wiki/Subtitle_%28captioning%29#For_software_video_players" rel="nofollow">wikipedia</a> has an interesting table of subtitle formats.</p>

<p>To properly answer your question, though, I just tried muxing SRT subs into an mp4.  It doesn't work.</p>

<p><code>ffmpeg -i in.mkv -i in.srt -c copy /var/tmp/out.mkv</code>  # works<br>
<code>ffmpeg -i in.mkv -i in.srt -c copy /var/tmp/out.mp4</code>  # just timestamps</p>

<p>The mp4 has a <code>mov_text</code> stream, but displaying it in <a href="http://mpv.io/" rel="nofollow">mpv</a> just shows "00:00:00.000" or some other timestamp, with no text.  Ok, apparently ffmpeg doesn't get it right unless you specifically use <code>-c:s mov_text</code>.  If you use <code>-map 0 -map 1</code>, I get </p>

<pre><code>  Stream #1:0 -&gt; #0:2 (subrip (srt) -&gt; ? (?))
Encoder (codec none) not found for output stream #0:2
</code></pre>

<p>(My subs are in a separate file, not muxed in the mkv, so I need a -map for each to make sure I take all streams from all files.  Otherwise ffmpeg just takes the first a, v, and sub stream it finds.  And without <code>-map 1</code>, it doesn't try to use the srt input at all, for some reason.  Like I said, it makes a mov_text stream, though.)</p>

<p>Anyway, I left in my mis-steps in case they're helpful when you're trying to figure out this stuff yourself.  This works and plays with subs in mpv:</p>

<pre><code>ffmpeg -i in.mkv -i in.srt -codec copy -c:s mov_text /var/tmp/out.mp4
</code></pre>

<p>The key line in the output is:</p>

<pre><code>  Stream #1:0 -&gt; #0:2 (subrip (srt) -&gt; mov_text (native))
</code></pre>

<p>For editting your subtitles, you can use anything that can produce a subtitle format that ffmpeg can read.  (It should be able to convert any text-based format to mov_text.)  <a href="http://www.nikse.dk/subtitleedit/" rel="nofollow">Subtitle Edit</a> is one of the newer better-maintained GUIs, and runs on Windows and Linux at least.  IDK about OS X.</p>
