aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Subtitles
AgeCommit message (Collapse)Author
2026-06-05Merge remote-tracking branch 'upstream/master' into ↵Shadowghost
fix-external-sub-invalidation
2026-06-05Fix subtitle replacement not invalidating cacheShadowghost
2026-06-01Prefer subtitle extension over codecBond_009
2026-06-01Write subtitles using SubtitleEdit (#16805)Bond-009
* Write subtitles using SubtitleEdit We've been using SubtitleEdit to parse since 2021 https://github.com/jellyfin/jellyfin/pull/4984 I think it's time we start using it to write too * Clean up ConvertSubtitles * Add JsonWriter back
2026-05-31Add support for VobSub subtitle streams (#16552)Neptune
* Add support for VobSub subtitle streams * update logic to determine separate extraction for VobSub subtitles * simplify VobSub extraction logic and fix ffmpeg command * Match `ExtractAllExtractableSubtitlesMKS` with `ExtractAllExtractableSubtitlesInternal` Matroska's VobSub option * Add a comments clarify why MKS was used, and remove the redundant VobSub extension branch * remove redundant VobSub format check * fix type errors
2026-05-30Add JsonWriter backBond_009
2026-05-30Clean up ConvertSubtitlesBond_009
2026-05-30Write subtitles using SubtitleEditBond_009
We've been using SubtitleEdit to parse since 2021 https://github.com/jellyfin/jellyfin/pull/4984 I think it's time we start using it to write too
2026-05-21Run tree-wide dotnet formatjakobkukla
2026-05-12Safeguard against invalid GUIDs (#16813)Tim Eisele
Safeguard against invalid GUIDs
2026-05-02Avoid SSA to ASS conversion and loss of stylesnyanmisaka
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2026-04-15fix: retain subtitles spanning HLS segment boundaries (#16594)Hilmar Gústafsson
fix: retain subtitles spanning HLS segment boundaries
2026-03-30Backport pull request #16440 from jellyfin/release-10.11.zMolier
Remove -copyts and add -flush_packets 1 to subtitle extraction Original-merge: ec33c74ec44693a9ddb1e2f13bea90ef3c22267e Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Bond_009 <bond.009@outlook.com>
2026-03-13Backport pull request #16257 from jellyfin/release-10.11.zlowbit
Fix subtitle extraction caching empty files Original-merge: 6864e108b8b36ad25655e683b2cf2abf8b8ca346 Merged-by: joshuaboniface <joshua@boniface.me> Backported-by: Bond_009 <bond.009@outlook.com>
2025-12-21wiplostb1t
2025-12-21wiplostb1t
2025-12-21ise codec before path on format selectionlostb1t
2025-12-21fix CA2007lostb1t
2025-12-21fix: remote subtitleslostb1t
2025-11-17Add subtitle extraction timeout configuration optionKarolis
2025-09-26Expose ExtractAllExtractableSubtitles (#14876)Tim Eisele
2025-09-16Fix sync disposal of async-created IAsyncDisposable objects (#14755)evan314159
2025-08-11Update dependency UTF.Unknown to 2.6.0 (#14599)renovate[bot]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Bond_009 <bond.009@outlook.com>
2025-06-07Use string.IsNullOrEmpty instead of regular null check.Carsten Braun
2025-06-07When subtitle is embedded in the main video file, the path will be null.Carsten Braun
2025-06-07Do not attempt to extract internal subtitles if there are only MKS subtitles.Carsten Braun
2025-06-07Skip early if subtitle is in MKS to avoid unnecessary function calls.Carsten Braun
2025-06-07If subtitles are part of an MKS, it is not an error. Just log for debug ↵Carsten Braun
purpose and continue.
2025-06-07Fixed formattingCarsten Braun
2025-06-07Also extract subtitles of MKS aux files if they're extractable.Carsten Braun
2025-04-03Cleanup extracted files (#13760)Tim Eisele
* Cleanup extracted files * Pagination and fixes * Add migration for attachments to MigrateLibraryDb * Unify attachment handling * Don't extract again if files were already extracted * Fix MKS attachment extraction * Always run full extraction on mks * Don't try to extract mjpeg streams as attachments * Fallback to check if attachments were extracted to cache folder * Fixup
2025-02-03Backport pull request #13384 from jellyfin/release-10.10.zalltilla
Fix parallel use of not thread-safe SubtitleFormat instance Original-merge: 0b2a59e9631269c7e3261895e2e45d9dc07de848 Merged-by: joshuaboniface <joshua@boniface.me> Backported-by: Bond_009 <bond.009@outlook.com>
2024-09-11Solve CodeQL issueoxixes
2024-09-11Use subtitle cache when burning-in subsjaina heartles
2024-09-07Backport pull request #12575 from jellyfin/release-10.9.zdmitrylyzo
Fix subtitle and attachment extraction when input path contains quotes Original-merge: 3c3ebe834462bbb7630ca4fc0c106cc51ca80e50 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-06Add subtitle parser errors to log if available (#12479)Łukasz
2024-07-15Allow streaming of raw PGS subtitles without transcoding (#12056)David Schulte
2024-05-05Clean up synchronization (#11458)Mark Cilia Vincenti
2024-04-17fix: don't extract external sub (#11373)gnattu
2024-02-10Escape subtitle extraction input path (#10992)felix920506
2024-02-03Merge changesMark Cilia Vincenti
2024-01-31Add alltilla to CONTRIBUTORS.mdAttila Szakacs
Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
2024-01-18Extract all subtitle streams simultaneouslyAttila Szakacs
Extracting a subtitle stream is a disk I/O bottlenecked operation as ffmpeg has to read through the whole file, but usually there is nothing CPU intensive to do. If a file has multiple subtitle streams, and we want to extract more of them, extracting them one-by-one results in reading the whole file again and again. However ffmpeg can extract multiple streams at once. We can optimize this by extracting the subtitle streams all at once when only one of them gets queried, then we will have all of them cached for later use. It is useful for people switching subtitles during playback. It is even more useful for people who extract all the subtitle streams in advance, for example with the "Subtitle Extract" plugin. In this case we reduce the extraction time significantly based on the number of subtitle streams in the files, which can be 5-10 in many cases. Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
2024-01-03AsyncKeyedLock migrationMark Cilia Vincenti
2023-11-14Revert "Use System.Net.IPNetwork"Bond_009
This reverts commit 117d05d288da1d412159a29c0cb8d5c8259e48ae.
2023-11-05Add IDisposableAnalyzers to more projectsBond_009
2023-10-10Use Process.WaitForExitAsync added in .NET 5Bond_009
2023-08-02Fix subtitle encoder if webvtt is requestedsleepycatcoding
2023-06-28Use RegexGenerator where possibleBond_009
2023-04-06Remove redundant 'else' keywordsStepan Goremykin