#Subtitles not showing up

1 messages · Page 1 of 1 (latest)

spring sentinel
#

Version:0.7.8-ddb7e188-docker-arm
Raspberry pi 4

Stream method : HLS direct

Source : jellyfin

Player:mpv and potplayer on windows, ott navigator on android.
Subtitles are already embedded in the shows.

Video type: both X265 and x264 videos don't play subtitles.

I can toggle subtitles on and off through any media players. So subtitle is present inside the file itself.

But its not showing up on channels. I tried different subtitle modes but none work.

Please help.

spring sentinel
azure barn
#

paste the ffmpeg arguments from the log

spring sentinel
#

Forcing 1 ffmpeg thread due to buggy combination of stream seek and realtime output

#

ffmpeg arguments -threads 1 -nostdin -hide_banner -nostats -loglevel error -fflags +genpts+discardcorrupt+igndts -ss 00:04:50.9923260 -re -i http://localhost:8409/media/jellyfin/28b544a492da583b746e47b633bab596 -map 0:a -map 0:0 -muxdelay 0 -muxpreload 0 -movflags +faststart -flags cgop -sc_threshold 0 -t 00:16:29.1198020 -c:v copy -c:a copy -metadata "service_provider="ErsatzTV"" -metadata "service_name="bigbangtheory1"" -f mpegts -mpegts_flags +initial_discontinuity pipe:1

azure barn
#

ok, you need to enable subtitles on the channel

spring sentinel
#

i will enable and send another log

#

Forcing 1 ffmpeg thread due to buggy combination of stream seek and realtime output

#

ffmpeg arguments -threads 1 -nostdin -hide_banner -nostats -loglevel error -fflags +genpts+discardcorrupt+igndts -ss 00:11:55.2846440 -re -i http://localhost:8409/media/jellyfin/28b544a492da583b746e47b633bab596 -map 0:a -map 0:0 -muxdelay 0 -muxpreload 0 -movflags +faststart -flags cgop -sc_threshold 0 -t 00:09:24.8274840 -c:v copy -c:a copy -metadata "service_provider="ErsatzTV"" -metadata "service_name="bigbangtheory1"" -f mpegts -mpegts_flags +initial_discontinuity pipe:1

#

i also tried any and forced.

azure barn
#

enable debug logs and try again, it should give some info about which subtitles it finds/selects

spring sentinel
#

Channel 4 is HLS Direct with no preferred audio language or title; using all audio streams

#

FFmpeg desired state FrameState { Realtime = True, InfiniteLoop = False, VideoFormat = copy, VideoProfile = Some(main 10), PixelFormat = None, ScaledSize = FrameSize { Width = 1920, Height = 1080 }, PaddedSize = FrameSize { Width = 1920, Height = 1080 }, IsAnamorphic = False, FrameRate = None, VideoBitrate = None, VideoBufferSize = None, VideoTrackTimeScale = None, Deinterlaced = False, FrameDataLocation = Unknown, FFmpegAspectRatio = 16/9, BitDepth = 8 }

#

Forcing 1 ffmpeg thread due to buggy combination of stream seek and realtime output

#

FFmpeg pipeline ["ThreadCountOption","NoStandardInputOption","HideBannerOption","NoStatsOption","LoglevelErrorOption","StandardFormatFlags","NoDemuxDecodeDelayOutputOption","FastStartOutputOption","ClosedGopOutputOption","NoSceneDetectOutputOption","TimeLimitOutputOption","EncoderCopyVideo","EncoderCopyAudio","MetadataServiceProviderOutputOption","MetadataServiceNameOutputOption","OutputFormatMpegTs","PipeProtocol","ComplexFilter"], [], ["EncoderCopyVideo"]

#

ffmpeg arguments -threads 1 -nostdin -hide_banner -nostats -loglevel error -fflags +genpts+discardcorrupt+igndts -ss 00:10:04.3423631 -re -i http://localhost:8409/media/jellyfin/55ad8a43ad27385d8938c25d68408b06 -map 0:a -map 0:0 -muxdelay 0 -muxpreload 0 -movflags +faststart -flags cgop -sc_threshold 0 -t 00:11:36.0075889 -c:v copy -c:a copy -metadata "service_provider="ErsatzTV"" -metadata "service_name="modern family test"" -f mpegts -mpegts_flags +initial_discontinuity pipe:1

azure barn
#

i see some bugs with subtitles and hls direct, working on a fix

spring sentinel
azure barn
#

this may not be possible - hls direct uses mpeg-ts streaming format/container which doesn't appear to support many subtitle codecs, so lots of stuff "copied" in becomes unplayable. it looks like it only supports dvbsub and dvbteletext

#

ill see if there's another container i can use instead of mpeg-ts for hls direct

#

might be able to get mp4 to work

#

eh, marginally better. doesn't support ASS subtitles though

#

hls direct is already a hack, so maybe i can use an against-the-spec container (matroska)

#

i think i'll have to stick with mp4 and filter out/ignore streams that use unsupported codecs

spring sentinel
spring sentinel
spring sentinel
spring sentinel
#

Can you just extract the embedded srt file and convert them into webvtt using ffmpeg and then just serve it with video(m3u8 or something)?

#

I'm pretty sure pi 4 can easily handle converting srt into webvtt using ffmpeg.

spring sentinel
#

i sent you a dm

azure barn
#

The streaming mode is hls direct. Hls spec only allows TS and MP4 containers, so all content is transmuxed to TS currently (not transcoded, very low overhead)

#

Switching to MP4 would allow more (but not all) codecs to be supported

#

The source container is irrelevant

azure barn
#

i switched the output container to MP4, which will allow for more subtitle codecs to be used. right now, dvd subs/vobsubs are the only ones that are stream copied. text (and pgs) subtitles are currently ignored, but i'm working on transcoding text subtitles to a compatible format.

spring sentinel
azure barn
#

which client are you using with hls direct?

spring sentinel
#

potplayer is better compared to barebone mpv though

azure barn
#

ok, interesting. i know with mpv the easy answer is to stream using mkv container (not within hls spec but supports many more codecs/doesn't require transcoding subtitles). will see if the other ones support that, too

spring sentinel
#

potplayer is extremely customizable and feature packed, you can tune it so many ways to your liking.

#

it supports all video formats. atleast it never failed me once

distant flare
#

I pull not my money on MPEG-TS for this

spring sentinel
distant flare
#

i tank about the mkv contaner

spring sentinel
distant flare
#

talk

#

sorry for the typo

spring sentinel
#

so what are you saying

distant flare
#

I think that mkv over mpeg-ts is not working but i am all in for HLS/HLS segment

azure barn
#

mpv and potplayer work fine with hls direct using mkv output container. will check ott navigator. tivimate works if you use the mpv android player, too.

azure barn
#

no it's not released yet, i'm testing

spring sentinel
azure barn
#

ok, latest develop build has a new global option to use mkv output format with hls direct (in Settings page)

#

if a subtitle stream is selected (based on language/mode configured on channel), it will be copied with mkv output format

spring sentinel
#

which one has fix for the subtitles?

#

i am guessing second one. but then whats the difference with these two? both released 2 days ago.

spring sentinel
#

alright i went with the first one, subtitles are working now. thank you so much for the fix.

#

for some reason it didnt work at first kept buffering for so long but then i went to settings and changed it from mp4 to mkv and then it worked

#

its flawless now.

azure barn
#

if you look at the digest they are the same image, just different tags

#

one points to a specific commit (147...), one will change with the next commit (develop-arm)

spring sentinel
#

thanks for the fix. should i close the post now?

spring sentinel
#

i am sorry to reopen this thread. the new update that you pushed fixed playback with subtitles on both mpv and potplayer on pc. it worked flawlessly

#

but when i test with firetv both tivimate and ott navigator doesnt play in both mp4 and mkv global settings.

#

so i tested with vlc that didnt work. then i installed mpv on firetv using github release apk. that worked(as an external player) but the problem is the channel with subtitles was extremely laggy and not a good experience

#

so i think firetv is just not capable of this codec. so i installed previous version on another port and tested and atleast videos are playing on native client.

#

so i am not asking remove this new hacky mkv codec. but please add the previous method also. firetv compatibility is important and previous method works on that

#

lets not remove new method also. that works flawlessy on pc. lets keep both as an option in settings.

azure barn
#

it's a global setting so it affects all channels/clients. i'll think about a way to configure/override the container (mpeg-ts, mp4, mkv) per client

spring sentinel