gnattu
6637102162
Correctly handle retry when I frame only failed
2025-04-27 21:30:02 +08:00
gnattu
2e467f29de
Don't pass through timestamp for image extractor ( #13999 )
2025-04-26 09:36:40 -06:00
Nyanmisaka
e84826297d
Fix thumbnail extraction of mpegts videos in FFmpeg 7.1+ ( #13942 )
2025-04-19 10:41:30 -06:00
gnattu
49ac705867
Improve dynamic HDR metadata handling ( #13277 )
...
* 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-04-02 18:06:02 -06:00
Bond-009
476a0d6932
Merge pull request #13194 from gnattu/av1-videotoolbox
...
Enable VideoToolbox AV1 decode
2025-03-30 23:12:53 +02:00
gnattu
1ebef57508
Backport pull request #13532 from jellyfin/release-10.10.z
...
Fix image encoding concurrency limit
Original-merge: 3f539472f3
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-13 09:49:58 -05:00
Josh Soref
044cf9fb85
chore: fix spelling
...
* 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 >
2025-01-25 20:05:15 -05:00
Daniyar Alpyspayev
2614fecf8d
move to new System.Threading.Lock type for better performance
2024-12-12 18:10:06 +05:00
gnattu
0fc288936d
Enable VideoToolbox AV1 decode
...
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-12-09 16:17:49 +08:00
gnattu
7f81bbd42f
Backport pull request #13030 from jellyfin/release-10.10.z
...
Always cleanup trickplay temp for ffmpeg failures
Original-merge: 9e61a6fd72
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-11-19 15:43:31 -05:00
gnattu
18a621ec25
Extract DoVi thumbnail at 4000nit ( #12771 )
2024-10-04 06:51:17 -06:00
Nyanmisaka
b496f979f0
Clean up deprecated -vsync option ( #12765 )
2024-10-03 08:18:40 -06:00
gnattu
9ef7ccfc12
Add perf tradeoff mode to image extractor ( #12744 )
2024-09-29 20:21:46 -06:00
Dmitry Lyzo
8a456bf895
Escape quotes in the subtitle path ( #12690 )
2024-09-23 09:01:45 -06:00
nyanmisaka
7ab7f69916
Enable key-frame only decoding for RKMPP trickplay
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2024-09-20 03:22:53 +08:00
Nyanmisaka
36d934f4c0
Enable Rockchip MJPEG encoder for Trickplay ( #12610 )
2024-09-09 09:24:45 -06:00
Tim Eisele
0d85af019c
Use enums for encoding options ( #12561 )
2024-09-09 08:43:37 -06:00
gnattu
97ba12b8ef
Fix FormattingStreamWriter type
...
Signed-off-by: gnattu <gnattuoc@me.com >
2024-09-08 11:45:38 +08:00
Bond-009
7631956451
Backport pull request #12550 from jellyfin/release-10.9.z
...
Create and use FormattingStreamWriter
Original-merge: cd2f2ca178
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-09-07 18:09:52 -04:00
gnattu
c7bb2fe137
Backport pull request #12531 from jellyfin/release-10.9.z
...
Don't apply chapter image settings to music
Original-merge: 2fe13f54ea
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-09-07 18:08:41 -04:00
Nyanmisaka
95f91e0263
Adapting AMD VAAPI-Vulkan pipeline to FFmpeg 7.0 ( #12577 )
2024-09-04 07:36:49 -06:00
gnattu
ae82a4eee0
Enable software tonemap for dolby vision
...
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-09-03 14:39:05 +08:00
Bond_009
95200ad225
Improve error message when image extraction times out
...
The exception will get logged higher up the call stack.
2024-08-28 23:09:17 +02:00
gnattu
6c8ca30f7f
Prevent server from starting if the ffmpeg path is invalid ( #12463 )
2024-08-28 12:43:37 -06:00
nyanmisaka
7ee9c9b7a0
Backport pull request #12374 from jellyfin/release-10.9.z
...
Fix compatibility between TranscodingThrottler and FFmpeg 7.0
Original-merge: ee0094d889
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2024-08-05 11:01:28 -04:00
Bond-009
1dc0a1de6c
Backport pull request #12296 from jellyfin/release-10.9.z
...
Properly escape paths in concat file for BDMV
Original-merge: 4afa6db108
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-07-21 00:58:06 -04:00
gnattu
5262439300
Enable hardware Trickplay processing pipeline for VideoToolbox ( #11510 )
2024-07-17 13:50:32 -04:00
Cody Robibero
c207404089
Merge pull request #11511 from jellyfin/trickplay-keyframe-only
2024-07-17 12:28:58 -04:00
gnattu
e851bb869b
Simply AMF Windows checking
...
Co-authored-by: Nyanmisaka <nst799610810@gmail.com >
2024-07-17 22:25:28 +08:00
gnattu
b28d22545a
Simplify condition check
...
Signed-off-by: gnattu <gnattuoc@me.com >
2024-07-17 21:25:29 +08:00
gnattu
0340eccb52
Force software decoding when hardware decoder does not support keyframe only mode but requested by user
...
Signed-off-by: gnattu <gnattuoc@me.com >
2024-07-17 00:47:22 +08:00
gnattu
68bfabbaba
Add option to extract keyframe only during trickplay image generation
...
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-17 00:47:22 +08:00
Bond-009
9653cf46fb
Merge pull request #12201 from Bond-009/bdsegmentfullname
...
Use complete paths in BD info
2024-07-16 14:43:27 +02:00
Bond-009
c666f9d050
Use real temp dir instead of cache dir for temp files ( #12226 )
2024-07-15 08:44:14 -04:00
gnattu
518c166a39
Prefer tonemapx during HDR image extraction
...
Signed-off-by: gnattu <gnattuoc@me.com >
2024-07-12 23:15:49 +08:00
Bond_009
60c45d6273
Use complete paths in BD info
...
This way we don't need to find the complete path later
2024-07-01 00:21:06 +02:00
Rivenlalala
7d438a748f
Backport pull request #12065 from jellyfin/release-10.9.z
...
Make m2ts extension case-insensitive
Original-merge: f2a5ccf102
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-06-23 11:40:51 -04:00
gnattu
8424ff5b61
Backport pull request #11857 from jellyfin/release-10.9.z
...
Fix ffprobe -user_agent parameter
Original-merge: d0336cd67e
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-06-01 18:41:05 -04:00
gnattu
ac0064110b
Backport pull request #11798 from jellyfin/release-10.9.z
...
Recalculate trickplay image height for anamorphic videos
Original-merge: d9232e05f1
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-05-25 11:46:22 -04:00
NotSaifA
833a1da355
Backport pull request #11790 from jellyfin/release-10.9.z
...
Trickplay: kill ffmpeg when task is cancelled
Original-merge: 4a344bebc0
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-05-25 11:46:19 -04:00
Bond-009
5c828df567
Backport pull request #11781 from jellyfin/release-10.9.z
...
Retain order blu-ray segments
Original-merge: 2ddf2a7866
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-05-25 11:46:16 -04:00
Shadowghost
debd9eb8ce
Backport pull request #11754 from jellyfin/release-10.9.z
...
Fix BD/DVD folder chapter image extraction
Original-merge: 52be8be28f
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-05-25 11:46:12 -04:00
gnattu
7336427ce6
Backport pull request #11675 from jellyfin/release-10.9.z
...
Fix quality parameter for vaapi_mjpeg
Original-merge: ddd5c302b4
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2024-05-17 13:51:51 -04:00
gnattu
4044431610
Fix broken hardware encoder and filter for trickplay ( #11506 )
2024-05-07 07:23:28 -06:00
Caidy
4440600379
fix: rtsp live stream ffprobe timeout ( #11279 )
2024-04-02 07:04:25 -06:00
gnattu
be21d51742
fix: move trickplay specific option into TrickplayOptions ( #11229 )
2024-03-28 09:26:01 -06:00
gnattu
e2e366f6d0
fix: prefer cli ffmpeg path over config file ( #11219 )
2024-03-26 13:11:51 -06:00
Nyanmisaka
775815d09c
Fix sar->dar typo in #11185 ( #11210 )
2024-03-25 05:36:18 -06:00
gnattu
bf285a572d
fix: make sure the dimension is divisible by two for zscale ( #11185 )
2024-03-19 15:42:45 -06:00
Shadowghost
52c79c050b
Order files before creating concat config
2024-02-10 16:53:38 +01:00