fix: force subtitle burn-in via SubtitleMethod=Encode and always seek via local FFmpeg -ss
This commit is contained in:
parent
3531c044cd
commit
315e3268c4
2 changed files with 3 additions and 9 deletions
|
|
@ -306,6 +306,7 @@ def jellyfin_stream_url(base_url: str, item_id: str, api_key: str, subtitle_inde
|
|||
params = {"api_key": api_key}
|
||||
if subtitle_index is not None:
|
||||
params["SubtitleStreamIndex"] = str(subtitle_index)
|
||||
params["SubtitleMethod"] = "Encode"
|
||||
else:
|
||||
params["static"] = "true"
|
||||
query = urllib.parse.urlencode(params)
|
||||
|
|
|
|||
|
|
@ -192,12 +192,6 @@ function playOptions() {
|
|||
return STREAM_TYPE === "go-live" ? { type: "go-live" } : { type: "camera" };
|
||||
}
|
||||
|
||||
function streamUrlAtOffset(url, startSeconds) {
|
||||
const parsed = new URL(url);
|
||||
parsed.searchParams.set("StartTimeTicks", String(Math.max(0, Math.floor(startSeconds)) * 10000000));
|
||||
return parsed.toString();
|
||||
}
|
||||
|
||||
function sessionPlaybackPosition(session) {
|
||||
if (session.playbackState !== "playing") {
|
||||
return session.positionSeconds;
|
||||
|
|
@ -400,13 +394,12 @@ async function startPlayback(session, playback, startSeconds = 0) {
|
|||
);
|
||||
|
||||
const options = streamOptions();
|
||||
const isJellyfinTranscode = input.includes("SubtitleStreamIndex=");
|
||||
if (session.positionSeconds > 0 && !isJellyfinTranscode) {
|
||||
if (session.positionSeconds > 0) {
|
||||
options.customInputOptions = ["-ss", String(session.positionSeconds)];
|
||||
}
|
||||
console.log(`[worker] Calling prepareStream with options:`, JSON.stringify(options, null, 2));
|
||||
const prepared = streamingStack.prepareStream(
|
||||
session.positionSeconds > 0 ? streamUrlAtOffset(input, session.positionSeconds) : input,
|
||||
input,
|
||||
options,
|
||||
abortController.signal,
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue