• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting SOLVED: Trouble with EIA 608 captions in .ts file

     
    • 0 Vote(s) - 0 Average

    SOLVED: Trouble with EIA 608 captions in .ts file

    Toyful
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #1
    2025-03-07, 02:06 AM
    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
    Go to solution
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #2
    2025-03-07, 02:53 PM
    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.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    Toyful
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #3
    2025-03-07, 06:32 PM
    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
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #4
    2025-03-07, 06:58 PM
    What the heck? No subtitles in the new file?
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    Toyful
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #5
    2025-03-07, 07:40 PM (This post was last modified: 2025-03-07, 07:41 PM by Toyful. Edited 1 time in total.)
    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!
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #6
    2025-03-07, 08:50 PM
    I sent you a forum DM.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #7
    2025-03-11, 02:35 PM (This post was last modified: 2025-03-11, 02:36 PM by TheDreadPirate. Edited 1 time in total.)
    Figured out how to deal with these kinds of files. Though the file you sent me was corrupt around the 16:10 mark so the conversion failed to fully complete. But it output enough to test the concept.

    Code:
    ffmpeg -y -i video.ts -f lavfi -i "movie='video.ts'[out+subcc]" -map 0:v -map 0:a -map 1:s:0 -c:v copy -c:a copy -c:s srt -max_muxing_queue_size 2048 -max_interleave_delta 0 -avoid_negative_ts disabled newFile.mkv

    When I play the resulting file in MPV still shows the EIA 608 subs in addition to the converted SRT subs (required for MP4/MKV), but the SRT subs are present in Jellyfin.

    You could implement this in a post processing script if all your content has EIA 608 subs.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    1
    Toyful
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #8
    2025-03-16, 11:06 PM
    Thanks Dread!

    That seems to work well! Marked your post as the solution (albeit the wrong one, whoops) but hopefully this'll help anyone who has issues with the EIA-608 subs.
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode