Signal Boost: I wrote about this bug on my personal website (with some extra details): Why WebVTT subtitles in Plex don't work | Christian Kündig
Server Version#: 1.19.1.2701-6327e27bf (and many before)
Player Version#: independent of player
Playing files with embedded WebVTT subs requires the subs do be deselected as the transcoder fails when trying to reencode or just remux these subs.
Logs:
Sep 14 11:12:36 localhost PlexMediaServer[34961]: [Transcoder] Decoder (codec none) not found for input stream #0:0
Sep 14 11:12:36 localhost PlexMediaServer[34961]: Transcode runner appears to have died.
Existing Threads:
Root Cause:
https://trac.ffmpeg.org/ticket/5641:
FFmpeg supports the D_WEBVTT/SUBTITLES flavor following WebM specs (The WebM Project | WebM Container Guidelines), but not the recent S_TEXT/WEBVTT flavor added to Matroska spec (Codec Mappings) - those are always marked as None
There’s a lot of files floating around with this codec id because youtube-dl (and possibly many other tools) follow the Matroska spec : Wrong "Codec ID:" for VTT in mkv file · Issue #16338 · ytdl-org/youtube-dl · GitHub
Workaround:
Plex doesn’t seem to select the embedded subtitles if there’s external files present, so this fixes the playback issue:
for f in *.mkv; do ffmpeg -c:s webvtt -i "$f" "${f%.mkv}.en.vtt";done
Possible fixes
- Wait for FFMPEG to fix this (unlikely, the ffmpeg bug is already 4 years old)
- Blacklist “None” subtitles / don’t index them so the client’s won’t select them under any circumstance
- As plex itself seems to extract the right codec id (same as with mediainfo), why not add a flag before calling ffmpeg in the transcoder to manually override the codec type so it’s not None? (#idx being the track with the S_TEXT/WEBVTT subtitles)
ffmpeg -c:#idx webvtt -i $file
- alternatively you could also fix the underlying issue the embedded ffmpeg in plex.