Jellyfin Forum
Trouble with EIA 608 captions in .ts file - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Trouble with EIA 608 captions in .ts file (/t-trouble-with-eia-608-captions-in-ts-file)



Trouble with EIA 608 captions in .ts file - Toyful - 2025-03-07

Hey all,

Hoping to resolve an issue I am having regarding subtitles in a MPEG-TS file.

The file is a tv broadcast that has some EIA 608 captions embedded within it. AFAIK, it should be supported according to this

When I play the file, I can't select the subtitles (i.e. pressing the CC button on my remote doesn't bring up the subtitle selection nor does the CC button show up when I pause the playback). AFAIK, the server does not do any transcoding when I play. Forcing it to transcode on the web client doesn't seem to affect the ability to use the embedded captions

The Jellyfin server I'm running is v10.10.6 and was installed from the official Apt repostories on the Jellyfin website. The server is running on the current Debian stable version. The client is Jellyfin for Android TV v0.18.3 running on a HiSmartTV A4.

Going to put the relevant ffprobe and mediainfo here:
Code:
~ ffprobe -f lavfi -i "movie='video.ts'[out+subcc]"
ffprobe version 7.1-4 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 14 (Debian 14.2.0-17)
  configuration: --prefix=/usr --extra-version=4 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-libmfx --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
  libavutil      59. 39.100 / 59. 39.100
  libavcodec    61. 19.100 / 61. 19.100
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample  5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
Input #0, lavfi, from 'movie='video.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)

Code:
General
ID                                      : 1 (0x1)
Complete name                            : video.ts
Format                                  : MPEG-TS
File size                                : 1.90 GiB
Duration                                : 19 min 58 s
Overall bit rate mode                    : Variable
Overall bit rate                        : 13.6 Mb/s
Frame rate                              : 29.970 FPS
Law rating                              : TV-G

Video
ID                                      : 1100 (0x44C)
Menu ID                                  : 1 (0x1)
Format                                  : AVC
Format/Info                              : Advanced Video Codec
Format profile                          : High@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                  : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                : 27
Duration                                : 19 min 59 s
Bit rate mode                            : Constant
Nominal bit rate                        : 12.6 Mb/s
Width                                    : 1 920 pixels
Height                                  : 1 080 pixels
Display aspect ratio                    : 16:9
Frame rate                              : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                      : 4:2:0
Bit depth                                : 8 bits
Scan type                                : MBAFF
Scan type, store method                  : Interleaved fields
Scan order                              : Top Field First
Bits/(Pixel*Frame)                      : 0.203
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                      : 1103 (0x44F)
Menu ID                                  : 1 (0x1)
Format                                  : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Format version                          : Version 4
Muxing mode                              : ADTS
Codec ID                                : 15-2
Duration                                : 19 min 59 s
Channel(s)                              : 6 channels
Channel layout                          : C L R Ls Rs LFE
Sampling rate                            : 48.0 kHz
Frame rate                              : 46.875 FPS (1024 SPF)
Compression mode                        : Lossy

Text #1
ID                                      : 1100 (0x44C)-CC1
Menu ID                                  : 1 (0x1)
Format                                  : EIA-608
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                  : Muxed in Video #1
Duration                                : 19 min 59 s
Duration of the visible content          : 19 min 52 s
Start time (commands)                    : 300 ms
Start time                              : 1 s 201 ms
End time                                : 19 min 53 s
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)
Count of frames before first event      : 34
Type of the first event                  : PopOn

Text #2
ID                                      : 1100 (0x44C)-1
Menu ID                                  : 1 (0x1)
Format                                  : EIA-708
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                  : Muxed in Video #1
Duration                                : 19 min 59 s
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Thanks in advance for the help


RE: Trouble with EIA 608 captions in .ts file - TheDreadPirate - 2025-03-07

I'm wondering if this is a problem.

Code:
Stream #0:0: Video: wrapped_avframe
...
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                  : Muxed in Video #1

Let's try remuxing the video for testing purposes.

Code:
ffmpeg -fflags +genpts+igndts -i "/path/to/video.ts" -map 0 -codec copy testFile.mkv

I THINK that should separate all the streams instead of them all being wrapped together.


RE: Trouble with EIA 608 captions in .ts file - Toyful - 2025-03-07

Ah no such luck so far with the remuxing Slightly-frowning-face

Code:
~ ffprobe testFile.mkv
ffprobe version 7.0.2-Jellyfin Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  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, matroska,webm, from 'testFile.mkv':
  Metadata:
    ENCODER        : Lavf61.1.100
  Duration: 00:19:59.17, start: 0.000000, bitrate: 13236 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn
      Metadata:
        DURATION        : 00:19:59.164000000
  Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp
      Metadata:
        DURATION        : 00:19:59.168000000
'

I can pull the subs out with ccextractor into a .srt file, so it's not the end of the world but shoot it would've been nice to just be able to remux it and have it work


RE: Trouble with EIA 608 captions in .ts file - TheDreadPirate - 2025-03-07

What the heck? No subtitles in the new file?


RE: Trouble with EIA 608 captions in .ts file - Toyful - 2025-03-07

Okay, so I've found that if I do the remux command from above, the subtitles are still there. I just have to add in the "-f lavfi" part in the ffprobe command like so:

Code:
~ ffprobe -f lavfi -i "movie='testFile.mkv'[out+subcc]"
ffprobe version 7.1-4 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 14 (Debian 14.2.0-17)
  configuration: --prefix=/usr --extra-version=4 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-libmfx --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
  libavutil      59. 39.100 / 59. 39.100
  libavcodec    61. 19.100 / 61. 19.100
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample  5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
Input #0, lavfi, from 'movie='testFile.mkv'[out+subcc]':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: wrapped_avframe, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn
  Stream #0:1: Subtitle: eia_608 (cc_dec)

Very curious indeed!


RE: Trouble with EIA 608 captions in .ts file - TheDreadPirate - 2025-03-07

I sent you a forum DM.