External SRT Subtitles File

Hey all, I have a few local media files that have the subtitles file separates from the mp4 movie file. Is there a way I can get Channels to read that SRT file for the subtitles?

1 Like

Presently, no. However, you can remux your MP4 container to a MKV container, and embed the external SRT into the new container:
ffmpeg -i movie.mp4 -i movie.srt -map 0 -c copy movie.mkv

Or you can use the free Handbrake app to embed SRT files.

Remuxing is still necessary. MP4 containers do not support embedded SRT subtitles. You can either convert your SRT into a format compatible with MPEG containers, or use a different container format.

Request a feature that if there is a SRT file alongside your Video file to support CC. They are willing to listen. I just requested EDL support and they listened. If they want all your media in one place then supporting SRT is a good way to go.

thanks for the suggestions guys. I'll look into remuxing into an mkv to combine them for now but I agree @Edwin_Perez if they want this to a be a single source for all our media then this is a must have.

I used Handbrake to create .m4v files with the SRT content embedded. They work great with Channels DVR, no further steps required.

Thanks for creating a Feature Request thread! I've voted for it.

1 Like

You may use Handbrake to create MP4 containers with subtitles, but the format is assuredly not SubRip (SRT) data. MP4 containers only support Timed Text subtitles in text format.

So Handbrake is changing the SRT into something else, and then adding it to the file, which is transcoding.

In any case, some form of processing is needed. Whether you use Ffmpeg from the command line, or some other GUI like Handbrake or MKVToolNix, it does not change the fact that MP4s can't contain SRTs. To keep the subtitle format intact, you need to change containers; to use the same container, you need to change the subtitle format.

I believe this had already been requested in the past. Just keep in mind that this is a non-trivial ask; EDL support was essentially already present in Channels. Channels can currently export its commercial markers to a sidecar EDL file (and this file is modified when you edit commercial markers from within Channels), so supporting sidecar EDLs for imports is essentially the same, but in reverse.

Channels presently does not have a method to store subtitle data within its own database, or to send multiple files to the clients for playback, that I am aware of. Such a feature will require far more work than simply reading a file once and storing its content into an existing place in Channels' database.

Requests in the past often get lost in this forum .... no problem bringing it up again.

yeah I can see how it wouldn't be a small task. @racameron I tried the ffmpeg command and it's actually wasn't too bad to remux into mkv however I tested it and subtitles still aren't showing. Is there a trick I'm missing? If I run mediainfo on the new .mkv file I don't see the subtitles listed in the file, unless I'm missing it somewhere. Any thoughts? I can provide any info that might be helpful in getting this figured out.

Try ffmpeg -i movie.mp4 -i movie.srt -map 0 -map 1 -c copy movie.mkv. Or, you could just try omitting the -map options. I only included it to ensure that all audio tracks from the source movie would be included; but if you don't care about multiple audio streams, or if your source file only contains a single audio track, there really is no need to include the stream mapping commands.

If it didn't work, perhaps share the output of the command to see what's going on. You can also check the output file afterwards with: ffprobe movie.mkv.

3 Likes

sweet! removing the -map worked beautifully! thank you! In reality this is a fairly decent workaround. Thanks for the tip!

1 Like

Never hurts to ask :wink:

3 Likes

And this is why Channels is AMAZING!! :tada:

1 Like

Small suggestion. Maybe add option to get language information from filename eg. subtitle.eng.srt or subtitle.fin.srt? That way channels could autoplay external subtitles with preferred language. Also someone might want subtitles in multiple languages. If thats too complex maybe channels could prefer external subtitles over embedded because why would you have external subtitles if you doesnt want to see them..?