2025-04-04, 01:08 PM
(This post was last modified: 2025-04-06, 11:44 PM by TheDreadPirate. Edited 3 times in total.)
EIA-618 subs are kind of weird compared to SRT, ASS, PGS, etc. AFAIK, Jellyfin does not detect them.
If you are ok with using the command line, we can check that they are present and then extract them if they are. This can be done in a Jellyfin liveTV post processing script so you don't have to do it manually for future recordings.
I'm currently assuming you're on Linux or Docker. But the commands below can be adopted for Windows easily. Just the path to ffmpeg/ffprobe and your video. Everything else is the same.
Note that the correct usage of the double and single quotes is important. The output of that should look like this.
Specifically this part at the bottom where it lists the eia_608 subtitle stream.
If this is what you see, we can extract the subs and convert to SRT with this command.
If you are ok with using the command line, we can check that they are present and then extract them if they are. This can be done in a Jellyfin liveTV post processing script so you don't have to do it manually for future recordings.
I'm currently assuming you're on Linux or Docker. But the commands below can be adopted for Windows easily. Just the path to ffmpeg/ffprobe and your video. Everything else is the same.
Code:
/usr/lib/jellyfin-ffmpeg/ffprobe -f lavfi -i "movie='/path/to/recording.ts'[out+subcc]"
Note that the correct usage of the double and single quotes is important. The output of that should look like this.
Code:
chris@rat-trap:/media/storage2/Downloads/test$ ffprobe -f lavfi -i "movie='Jeopardy.2025.03.05.1080i.HDTV.AAC5.1.H.264-BTN.ts'[out+subcc]"
ffprobe version 7.0.2-Jellyfin Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
Input #0, lavfi, from 'movie='Jeopardy.2025.03.05.1080i.HDTV.AAC5.1.H.264-BTN.ts'[out+subcc]':
Duration: N/A, start: 0.200000, bitrate: N/A
Stream #0:0: Video: wrapped_avframe, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn
Stream #0:1: Subtitle: eia_608 (cc_dec)
Specifically this part at the bottom where it lists the eia_608 subtitle stream.
Code:
Input #0, lavfi, from 'movie='Jeopardy.2025.03.05.1080i.HDTV.AAC5.1.H.264-BTN.ts'[out+subcc]':
Duration: N/A, start: 0.200000, bitrate: N/A
Stream #0:0: Video: wrapped_avframe, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn
Stream #0:1: Subtitle: eia_608 (cc_dec)
If this is what you see, we can extract the subs and convert to SRT with this command.
Code:
/usr/lib/jellyfin-ffmpeg/ffmpeg -f lavfi -i "movie='/path/to/recording.ts'[out+subcc]" -map 0:s:0 -codec srt newSubs.srt