Multiple close caption options

Feb 28, 2011 at 12:38 PM

I have requirement to support multiple closed caption sources so that for example during playback user can not only turn the captions on/off but also switch to different languages (similar to what can be done with audio streams).

Is there anything built-in to support this scenario or I have to implement it on my own?

Mar 1, 2011 at 4:46 PM

kobush, you can get a list of the caption streams via AvailableCaptionStreams and set the desired on via SelectedCaptionStream (both are dependency props on SMFPlayer and can be wired up in xaml via binding).

Tim Greenfield

Mar 14, 2011 at 4:01 PM


I was rather thinking about the closed captions that are set via MarkerResource. Can I have multiple caption languages and switch them during playback using this method?


Aug 25, 2011 at 10:51 AM

I have the same question here. I'm looking for a way to specify multiple closed captions 'sources' that could be picked by the user.

I've tried setting more than one MarkerResource in my PlaylistItem.MarkerResources, it only seems to pick the last one, I guess it's not meant to be used that way, and they're overwriting each other.

So is there a way to have multiple captions sources that could be selected by the user? The perfect solution for me would be to allow to specify audio stream/caption resource pairs and have them being shown in the (already present) stream selector UI...

Aug 25, 2011 at 4:13 PM

Quick background for others reading this thread: the TimedText plugin supports 2 diferent methods for closed captions. 1) In-stream captions 2) external/out-of-stream captions. Instream-captions use smooth streaming text tracks and support the ability to switch languages via the SelectedCaptionStream API. Out-of-stream captions are setup via a MarkerResource and currently only support a single DFXP file.

The only way I could think of to support multiple external DFXP files would be to build your own plugin based on the current TimedText plugin. You could then introduce logic to load a new DFXP file on demand. You'd also have to build your own feature in the UI to select a language and then call the plugin to perform the operation. Sorry I don't have a better solution at this time; this would make a great feature for a future version though and I'll be sure this idea is added to the suggestion list for possible future versions.


Aug 25, 2011 at 4:18 PM

Okay then. I hoped there would be a simpler solution for me.

I've already created two plugins to support external captions in two different formats (SAMI and EBU-STL), I can share those if people are interested. @Tim : it would be great to provide some sort of 'community plugins repository' BTW.

Aug 25, 2011 at 4:41 PM

Julienv42, that's very cool! You could create a CodePlex project to host them and at the very least, link to them on the forum. I could also check to see if we could create something like a community gallery page with links too. Side note: If you do create a CodePlex project, I'd recommend using Ms-Pl licensing so users are able to use them under the same licensing terms as the player framework.

Aug 25, 2011 at 5:25 PM
Edited Sep 20, 2011 at 9:58 AM

Okay then!

I've setup a Codeplex project:

I've added my plugin code, but it has some dependencies (download helper) so it won't work as is. It's also far from perfect ;-)

EDIT: removed, will give another source of information soon.

Feb 15, 2012 at 10:16 PM

Hi Tim and Julien,

Any news regarding the inclusion of multiple DFXP files so that the user can choose the displayed caption?




Feb 16, 2012 at 8:36 AM

For my case (multiple captions from external files, with custom parsers on non-Smooth Streaming files), I've made a custom derived SMFPlayer class, that reuse the existing UI that would work only for Smooth Streaming multi-stream files.

So depending on your needs, it could be quite simple to setup or a lot of work. Could you explain your case (ie video type and delivery method, subtitle type)?

Feb 17, 2012 at 7:13 PM

Hi Julien, thanks for asking,

I´m using a derived SMFPlayer that implement some DRM libraries for Playready security. Regard the delivery method is set up to adaptative streaming with several .ismv files according user internet connection.

The subtitles are in .dfxp format (converted form original srt by Expression Encoder 4)

If you think that your work can help me, please let me know or tell me where I can find info on how to build a new blend project to implement muliple dfxp captions.

Best regards,



Feb 20, 2012 at 9:58 AM

With a Smooth Streaming pipeline, you should be able to define multiple captions streams (should be visible in Manifest) and have them recognized in the SMF player out of the box.

If you have them as standalone files (MarkerResources), it's where you'll have to do as I've done.