mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 15:48:05 +00:00
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
/**
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
// Image-based formats - these need to be burned in by Jellyfin (Encode method)
|
|
// because MPV cannot load them externally over HTTP
|
|
const IMAGE_BASED_FORMATS = [
|
|
"dvdsub",
|
|
"idx",
|
|
"pgs",
|
|
"pgssub",
|
|
"teletext",
|
|
"vobsub",
|
|
];
|
|
|
|
// Text-based formats - these can be loaded externally by MPV
|
|
const TEXT_BASED_FORMATS = [
|
|
"webvtt",
|
|
"vtt",
|
|
"srt",
|
|
"subrip",
|
|
"ttml",
|
|
"ass",
|
|
"ssa",
|
|
"microdvd",
|
|
"mov_text",
|
|
"mpl2",
|
|
"pjs",
|
|
"realtext",
|
|
"scc",
|
|
"smi",
|
|
"stl",
|
|
"sub",
|
|
"subviewer",
|
|
"text",
|
|
"vplayer",
|
|
"xsub",
|
|
];
|
|
|
|
export const getSubtitleProfiles = () => {
|
|
const profiles = [];
|
|
|
|
// Image-based formats: Embed or Encode (burn-in), NOT External
|
|
for (const format of IMAGE_BASED_FORMATS) {
|
|
profiles.push({ Format: format, Method: "Embed" });
|
|
profiles.push({ Format: format, Method: "Encode" });
|
|
}
|
|
|
|
// Text-based formats: Embed or External
|
|
for (const format of TEXT_BASED_FORMATS) {
|
|
profiles.push({ Format: format, Method: "Embed" });
|
|
profiles.push({ Format: format, Method: "External" });
|
|
}
|
|
|
|
return profiles;
|
|
};
|
|
|
|
// Export for use in player filtering
|
|
export const IMAGE_SUBTITLE_CODECS = IMAGE_BASED_FORMATS;
|