aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
AgeCommit message (Collapse)Author
2025-08-01Merge pull request #14467 from ↵Bond-009
jkhsjdhjs/keyframe-only-trickplay-extraction-fallback Add fallback for keyframe-only trickplay extraction
2025-07-22Fix trickplay extraction ffmpeg error-handling (#14493)jkhsjdhjs
2025-07-14Add fallback for keyframe-only trickplay extractionjkhsjdhjs
Keyframe-only trickplay image extraction can fail for some media files. The current behavior is to skip the media file and try again on the next run, which will fail again. This adds a fallback to regular non-keyframe-only extraction for failed runs, so the extraction can complete.
2025-05-04Recognize file changes and remove data on change (#13839)Tim Eisele
2025-05-03Fix the transparency issue of ASS subtitle rendering in HWA (#14024)Nyanmisaka
2025-04-27Don't trim image extractor optiongnattu
2025-04-27Use full range output for imagegnattu
2025-04-27Correctly handle retry when I frame only failedgnattu
2025-04-26Don't pass through timestamp for image extractor (#13999)gnattu
2025-04-19Fix thumbnail extraction of mpegts videos in FFmpeg 7.1+ (#13942)Nyanmisaka
2025-04-02Improve dynamic HDR metadata handling (#13277)gnattu
* Add support for bitstream filter to remove dynamic hdr metadata * Add support for ffprobe's only_first_vframe for HDR10+ detection * Add BitStreamFilterOptionType for metadata removal check * Map HDR10+ metadata to VideoRangeType.cs Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged. * Add more Dolby Vision Range types Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player. Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving. * Remove dynamic hdr metadata when necessary * Allow direct playback of HDR10+ videos on HDR10 clients * Only use dovi codec tag when dovi metadata is not removed * Handle DV Profile 7 Videos better * Fix HDR10+ with new bitmask * Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS * Fix Dovi 8.4 not labeled as HLG in HLS * Fallback to dovi_rpu bsf for av1 when possible * Fix dovi_rpu cli for av1 * Use correct EFCore db column for HDR10+ * Undo outdated migration * Add proper hdr10+ migration * Remove outdated migration * Rebase to new db code * Add migrations for Hdr10PlusPresentFlag * Directly use bsf enum * Add xmldocs for SupportsBitStreamFilterWithOption * Make `VideoRangeType.Unknown` explicitly default on api models. * Unset default for non-api model class * Use tuples for bsf dictionary for now
2025-03-30Merge pull request #13194 from gnattu/av1-videotoolboxBond-009
Enable VideoToolbox AV1 decode
2025-02-13Backport pull request #13532 from jellyfin/release-10.10.zgnattu
Fix image encoding concurrency limit Original-merge: 3f539472f3a7c216a6c7d34fb947a144e249f154 Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2025-01-25chore: fix spellingJosh Soref
* a * acceleration * addition * altogether * api clients * artist * associated * bandwidth * cannot * capabilities * case-insensitive * case-sensitive * configuration * delimiter * dependent * diacritics * directors * enable * explicitly * filters * finish * have * hierarchy * implicit * include * information * into * its * keepalive * localization * macos * manual * matching * metadata * nonexistent * options * overridden * parsed * parser * playback * preferring * processes * processing * provider * ratings * retrieval * running * segments * separate * should * station * subdirectories * superseded * supported * system * than * the * throws * transpose * valid * was link: forum or chat rooms Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-12-12move to new System.Threading.Lock type for better performanceDaniyar Alpyspayev
2024-12-09Enable VideoToolbox AV1 decodegnattu
This decoder differs from others provided by VideoToolbox in that it lacks any software fallback. To achieve consistent behavior with other VideoToolbox decoders, this PR implemented additional checking on the server to simulate the software fallback provided by VideoToolbox. The current fallback checking mechanism is a temporary solution. In the long term, it should be replaced with a more capable hardware capability checking system.
2024-11-19Backport pull request #13030 from jellyfin/release-10.10.zgnattu
Always cleanup trickplay temp for ffmpeg failures Original-merge: 9e61a6fd729b2980832014ae42bd4f7d1f3afb69 Merged-by: crobibero <cody@robibe.ro> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-10-04Extract DoVi thumbnail at 4000nit (#12771)gnattu
2024-10-03Clean up deprecated -vsync option (#12765)Nyanmisaka
2024-09-29Add perf tradeoff mode to image extractor (#12744)gnattu
2024-09-23Escape quotes in the subtitle path (#12690)Dmitry Lyzo
2024-09-20Enable key-frame only decoding for RKMPP trickplaynyanmisaka
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-09Enable Rockchip MJPEG encoder for Trickplay (#12610)Nyanmisaka
2024-09-09Use enums for encoding options (#12561)Tim Eisele
2024-09-08Fix FormattingStreamWriter typegnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-07Backport pull request #12550 from jellyfin/release-10.9.zBond-009
Create and use FormattingStreamWriter Original-merge: cd2f2ca17800f71c8d94a6e043b49b7c4200e254 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07Backport pull request #12531 from jellyfin/release-10.9.zgnattu
Don't apply chapter image settings to music Original-merge: 2fe13f54eaf87eefefd27f4ccb2ace1371f5e886 Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-04Adapting AMD VAAPI-Vulkan pipeline to FFmpeg 7.0 (#12577)Nyanmisaka
2024-09-03Enable software tonemap for dolby visiongnattu
This applies software tonemapx filter for dolby vision videos that have no compatability fallback. Due to the complexity of the reshaping process, this is quite CPU-intensive. For real-time transcoding and tonemapping of 4K 60fps content, a CPU with 16 cores of Zen3-level performance is recommended. Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-28Improve error message when image extraction times outBond_009
The exception will get logged higher up the call stack.
2024-08-28Prevent server from starting if the ffmpeg path is invalid (#12463)gnattu
2024-08-05Backport pull request #12374 from jellyfin/release-10.9.znyanmisaka
Fix compatibility between TranscodingThrottler and FFmpeg 7.0 Original-merge: ee0094d889fe99cc3e27b556d5470e94b2521a3e Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2024-07-21Backport pull request #12296 from jellyfin/release-10.9.zBond-009
Properly escape paths in concat file for BDMV Original-merge: 4afa6db108e2071a335e7f6f7bb3fa7b50d9b7f7 Merged-by: crobibero <cody@robibe.ro> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-07-17Enable hardware Trickplay processing pipeline for VideoToolbox (#11510)gnattu
2024-07-17Merge pull request #11511 from jellyfin/trickplay-keyframe-onlyCody Robibero
2024-07-17Simply AMF Windows checkinggnattu
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-07-17Simplify condition checkgnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Force software decoding when hardware decoder does not support keyframe only ↵gnattu
mode but requested by user Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Add option to extract keyframe only during trickplay image generationgnattu
This would be significantly faster than decoding every frame, but it does have compatibility issues. Not all decoders support this mode, notably the VP9 decoder, CUVID decoders, and QSV decoders. Some videos with very long key-frame intervals may also perform poorly with this mode, as the image timing could become too inaccurate to reflect the actual frame. Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-16Merge pull request #12201 from Bond-009/bdsegmentfullnameBond-009
Use complete paths in BD info
2024-07-15Use real temp dir instead of cache dir for temp files (#12226)Bond-009
2024-07-12Prefer tonemapx during HDR image extractiongnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-01Use complete paths in BD infoBond_009
This way we don't need to find the complete path later
2024-06-23Backport pull request #12065 from jellyfin/release-10.9.zRivenlalala
Make m2ts extension case-insensitive Original-merge: f2a5ccf10206218e1084ee53aaa7284b7be3ddec Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01Backport pull request #11857 from jellyfin/release-10.9.zgnattu
Fix ffprobe -user_agent parameter Original-merge: d0336cd67edb3c70b9a0ec03a5ef1f991e3c9b84 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25Backport pull request #11798 from jellyfin/release-10.9.zgnattu
Recalculate trickplay image height for anamorphic videos Original-merge: d9232e05f1280f8f4315ca5b8fc92ddc4a71a96a Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25Backport pull request #11790 from jellyfin/release-10.9.zNotSaifA
Trickplay: kill ffmpeg when task is cancelled Original-merge: 4a344bebc08303edf888000bf52e64b1a4e8036f Merged-by: crobibero <cody@robibe.ro> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25Backport pull request #11781 from jellyfin/release-10.9.zBond-009
Retain order blu-ray segments Original-merge: 2ddf2a7866a9010191de1057f7c7bbbc3cb6e93d Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25Backport pull request #11754 from jellyfin/release-10.9.zShadowghost
Fix BD/DVD folder chapter image extraction Original-merge: 52be8be28fa27c0c7b4f53dc32e00ec0543616a9 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17Backport pull request #11675 from jellyfin/release-10.9.zgnattu
Fix quality parameter for vaapi_mjpeg Original-merge: ddd5c302b4fb7b07a5a46aa6d0026d9b37aa9b2c Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>