Jellyfin Forum
Jellyfin Closed Caption Plugin - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: Jellyfin Closed Caption Plugin (/t-jellyfin-closed-caption-plugin)



Jellyfin Closed Caption Plugin - BlueberryJelly - 2025-04-03

I thought it would automatically extract captions from a movie once recorded.  I even did a library scan, and no.srt file or any type of closed caption file.


RE: Jellyfin Closed Caption Plugin - TheDreadPirate - 2025-04-03

Are you recording liveTV with EIA-608 closed captions?


RE: Jellyfin Closed Caption Plugin - BlueberryJelly - 2025-04-03

I am using a HDHomeRun tuner. When I select record, only setting option is for the start and time advance or extend.

There is no option in record live tv or selecting a movie on a schedule for setting EIA-608 closed captions.

I know the mpg files exist with recording on my HDHomeRun DVR because CCextractor will pull them for an .srt file.

I was hoping this plugin would pull them automatically after the movie is captured.


RE: Jellyfin Closed Caption Plugin - TheDreadPirate - 2025-04-04

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.

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



RE: Jellyfin Closed Caption Plugin - BlueberryJelly - 2025-04-06

Thank You!. This is good information for me to work out the details on my Windows interface (Jellyfin is installed on my Qnap as a qpkg).