I propose a new option to allow extracting subtitles to external files during the optimize process, instead of burn in.
Background
Currently when optimize is run on a media file, the optimizer attempts to burn in the subtitles to the resulting media file. This is done to ease the load on the player and avoid possible subtitle issues while playing the video. This approach has a few limitations though. If the subtitle is not selected for the media, it’s not burned in to the video. Similarly, if the selected subtitle is the wrong subtitle, there is no way of changing the subtitle.
There are quite a few discussions around this topic:
- Optimize and Subtitles
- Plex optimization removes subtitle from tv show
- Optimized versions and subtitles
- Optimize and Subtitles
Proposal
What I propose is a middle ground in the optimize process. Instead of burning in the subtitles, there should be an option to store the currently available subtitles as external subtitle files alongside the optimized version. While this could still cause rendering issues with the subtitle, it would allow the selection of subtitles during playback.
Benefits
The benefit of this approach would be two fold. Primarily, it would ease the decode/encode pain of the server when transcoding on the fly. Since some formats are heavier to decode, the optimize process would allow the server take the time to convert the file into a lighter format (possibly downscaling beforehand). This would of course affect the quality of playback, but sometimes that trade off is worth it.
Secondly, it would allow possible conversion of the subtitles into a more convenient format for compatibility in the future. Since some subtitle formats are more obscure and less supported than others, we could convert the subtitles into better formats for ease of playback. This of course would be a different feature for future, but having more options for future is not a bad idea.