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
7207749044
Merge pull request #12540 from nyanmisaka/tune-x2645-params
...
Tune x264/5 encoding params for realtime playback
2024-08-30 17:22:50 +02:00
nyanmisaka
d7be6a5ab0
Tune x264/5 encoding params for realtime playback
...
Some options that are too performance-intensive are disabled, while
others are left enabled to trade-off between real-time playback and quality.
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-30 00:57:00 +08:00
gnattu
298fe97ab2
Add new tonemap mode options
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-29 08:14:43 +08:00
gnattu
639d75bd83
Fix noautorotate cli for videotoolbox ( #12530 )
2024-08-28 12:37:19 -06:00
Bond-009
6281cd707d
Merge pull request #11250 from nyanmisaka/fix-hwa-video-rotation
...
Fix the broken video orientation (+-90/180)
2024-08-27 22:24:34 +02:00
nyanmisaka
5ef7ab540a
Adjust filters to adapt FFmpeg 7.0
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-27 02:42:29 +08:00
nyanmisaka
fd73b0cac0
Backport pull request #12493 from jellyfin/release-10.9.z
...
Fix bitstream filter not applied to videos in TS container
Original-merge: 078ee1f2de
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-25 02:46:40 -04:00
Evan Jarrett
6eec6c9957
fix number parser
2024-08-21 09:37:52 -05:00
Evan Jarrett
e1f72b1f27
Add ability to specify gpu index on windows
2024-08-16 14:48:50 -07:00
Bond-009
f7846d0141
Merge pull request #12429 from gnattu/fix-vt-decoder
...
Fix VideoToolbox Hi10P
2024-08-12 19:03:44 +02:00
gnattu
7d9e315593
Remove duplicated check
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 19:33:03 +08:00
gnattu
487dbf3e85
Fix Videotoolbox Hi10P hardware decoding
...
We need to mark h264 as 10bit supported for videotoolbox
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 09:28:17 +08:00
gnattu
808cd6f06a
Fix software decoder with videotoolbox encoder
...
Format should be placed before hwupload to support some software decoders
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 09:26:51 +08:00
gnattu
447dd3aed7
Use Math.Min
...
Co-authored-by: Bond-009 <bond.009@outlook.com>
2024-08-12 01:53:56 +08:00
gnattu
058a3dcc6a
Remove legacy encoders
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-11 18:17:09 +08:00
gnattu
1f819d3382
Remove VPx encoders
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-11 17:38:11 +08:00
Nyanmisaka
2aa9cf4007
Merge branch 'master' into fix-hwa-video-rotation
2024-08-05 16:37:09 +08:00
gnattu
7ea91dfcc4
Update VideoToolbox pipeline for jellyfin-ffmpeg7 ( #12380 )
2024-08-04 20:37:40 -06:00
Evan Jarrett
0d8669fbe8
Add a new EncodingOption for QsvDevice
2024-08-03 15:05:13 -05:00
Evan Jarrett
51433528a1
Allow QSV to use the renderNodePath instead of defaulting to the first available device
2024-08-03 11:56:56 -05:00
gnattu
0a1a109b2e
Add RFC7845 downmix algorithm ( #12300 )
2024-07-30 09:50:22 -06:00
Nyanmisaka
00088c2954
Merge branch 'master' into fix-hwa-video-rotation
2024-07-23 15:37:33 +08:00
Bond-009
d5cf0ad2c8
Merge pull request #11492 from jellyfin/better-vbr-settings
...
Add better audio VBR settings
2024-07-21 16:15:43 +02:00
gnattu
5262439300
Enable hardware Trickplay processing pipeline for VideoToolbox ( #11510 )
2024-07-17 13:50:32 -04:00
gnattu
24910348a1
Force channel to be >= 1
...
Co-authored-by: Cody Robibero <cody@robibe.ro>
2024-07-17 21:27:35 +08:00
gnattu
0381c5a288
Add EnableAudioVbrEncoding to TranscodingProfile
...
This will allow the client selectively disable VBR audio when it causes problems.
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:27:35 +08:00
gnattu
78929418cc
Use better audio VBR settings
...
LAME's VBR mode only has advantage over a certain bitrate range. For very low and very high bitrate, use the ABR mode instead.
aac_at's CVBR mode produces very good quality and is not worse than its TVBR mode in blind testing. Use this mode for convenience.
The ffmpeg native aac encoder will have quality regression with its VBR mode. Always use CBR mode for ffmpeg's native aac encoder.
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:27:35 +08: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
2dee5b8d04
Correctly specify format for tonemap
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
gnattu
016dc9d86c
Add SIMD optimized software tonemap support
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
nyanmisaka
d37c5d8921
Backport pull request #12149 from jellyfin/release-10.9.z
...
Fix MicroDVD being recognized as DVDSUB subtitles
Original-merge: 6010bc01c3
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:59 -04:00
Bond-009
92dcf0c13b
Merge pull request #12124 from gnattu/enable-hi10p-vt
...
Enable H.264 Hi10P hardware decode for Apple Silicon on macOS >=14.6
2024-06-20 11:38:20 +02:00
gnattu
9792fb117c
Enable H.264 Hi10P hardware decode for Apple Silicon on macOS >=14.6
...
macOS 14.6 beta and macOS 15 beta enables h264 10bit hardware decode on Apple Silicon.
Signed-off-by: gnattu <gnattuoc@me.com>
2024-06-18 06:26:43 +08:00
gnattu
4fa3c30df2
Backport pull request #11894 from jellyfin/release-10.9.z
...
Escape tmpConcatPath for DVD and BD folder
Original-merge: 26419c64f5
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:14 -04:00
gnattu
b123f7ffcd
Backport pull request #11851 from jellyfin/release-10.9.z
...
Relax remuxing requirement for LiveTV
Original-merge: 0392daa103
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:04 -04:00
nyanmisaka
fc14c08bcc
Backport pull request #11830 from jellyfin/release-10.9.z
...
Fix the IOSurf error in QSV transcoding
Original-merge: 5e7514243c
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:30 -04:00
nyanmisaka
2faa8c141f
Backport pull request #11799 from jellyfin/release-10.9.z
...
Disable VA-VK interop on not supported kernel versions
Original-merge: eb437e7163
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:23 -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
Bond-009
c7e0be3c3b
Backport pull request #11774 from jellyfin/release-10.9.z
...
Apply audio boost when downmixing regardless of downmixalgo
Original-merge: 06a5ddda5e
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:14 -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
487ebd3ca8
Backport pull request #11713 from jellyfin/release-10.9.z
...
Fix VideoToolbox H264 constrained profile option
Original-merge: d608f1e3cc
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:08 -04:00
gnattu
424ca49c26
Backport pull request #11689 from jellyfin/release-10.9.z
...
Workaround ffmpeg keyframe seeking for external subtitles
Original-merge: 02937873b1
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:54 -04:00
gnattu
6f78ac2ff3
Use more accurate rounding in GetFixedOutputSize ( #11435 )
...
* Use more accurate rounding in GetFixedOutputSize
Signed-off-by: gnattu <gnattuoc@me.com>
* Force trickplay thumbnails to have even width
Signed-off-by: gnattu <gnattuoc@me.com>
* Use Convert.ToInt32
Signed-off-by: gnattu <gnattuoc@me.com>
* Force video size as thumbnail size if the trickplay width setting is larger
This will fix an issue when the trickplay setting contains a very huge width, but the video has a lower resolution than that setting. Our scaling filter logic will not do any upscale, and we have to force to use the video width
Signed-off-by: gnattu <gnattuoc@me.com>
---------
Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-30 13:41:46 +02:00
gnattu
374b6ca0e2
Only apply custom downmix to 5.1 audios ( #11401 )
2024-04-22 10:23:36 -06:00
Bond-009
7d28d08e08
Enable more warnings as errors ( #11288 )
2024-04-12 17:45:01 -06:00
gnattu
6b6aab04ce
Fix apple audio codecs ( #11315 )
2024-04-08 07:42:47 -06:00
gnattu
fe88a484d1
fix: don't do empty hwupload for VT ( #11235 )
2024-03-30 09:25:22 -06:00
gnattu
a8f1668540
fix: unset qmin and qmax for vt ( #11246 )
...
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-03-30 08:53:46 -06:00
nyanmisaka
deb36eeeda
Add HWA video transpose support (+-90/180)
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-30 06:09:58 +08:00
Nyanmisaka
16e72d6883
Fix the broken codecs shifting ( #11243 )
2024-03-28 13:57:33 -06:00
gnattu
5db0c5a0e4
fix: forward port patch for GHSA-866x-wj5j-2vf4 ( #11228 )
2024-03-28 09:26:14 -06:00
gnattu
2e9aa146a5
fix: remove legacy codecs ( #11217 )
2024-03-26 04:32:06 -06:00
gnattu
b1870792b1
fix: use Metal tonemap instead of OpenCL ( #11198 )
2024-03-24 08:20:05 -06:00
gnattu
cf16110a56
fix: map encoder preset to quality setting for VideoToolbox ( #11205 )
2024-03-24 08:19:48 -06:00
vedant
3bbb57eb83
Add new VideoRangeTypes to fully support DoVi on webOS ( #10469 )
2024-03-23 07:39:49 -06:00
nyanmisaka
ae7c0c83e9
Bump the required minimum ffmpeg version to 4.4
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 21:30:42 +08:00
nyanmisaka
39b953e41c
Set input readrate for using SegmentDeletion with stream-copy
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-16 07:35:05 +08:00
Cody Robibero
a92de9b2e3
Merge pull request #11014 from gnattu/vf-videotoolbox
2024-03-09 09:19:36 -07:00
gnattu
0909ee7208
fix: convert all non-yuv420 inputs to nv12
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 15:16:00 +08:00
gnattu
e6dee627e3
fix: force a pixel format for 10-bit inputs
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 14:22:27 +08:00
gnattu
d10ad6c383
fix: no need to check filters prematurely
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 11:02:53 +08:00
gnattu
2f66871040
fix: also check if we are doing scaling
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-08 23:37:27 +08:00
gnattu
f31549cc0d
fix: code clean up
...
Co-authored-by: nyanmisaka <nst799610810@gmail.com>
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-08 23:23:24 +08:00
gnattu
a30dc81b28
fix: stack overflow
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-29 09:03:00 +08:00
gnattu
ec896a901c
fix: code style
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-29 05:37:31 +08:00
gnattu
1cb7264f0d
feat: fully support videotoolbox hardware filters
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-28 17:56:59 +08:00
Nyanmisaka
aa3aaa94fe
Fix the preproc filters for dvbsub burn-in ( #11034 )
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-20 10:49:39 -07:00
gnattu
21bf557145
fix: use hardware videotoolbox filter even only scale is available
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:43:40 +08:00
gnattu
0a8560f64a
fix: use hardware filter option name explicitly
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:30:12 +08:00
gnattu
2f3e5cfa06
fix: correctly set the supported formats of videotoolbox tone mapping
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:08:17 +08:00
gnattu
0a4457dd68
fix: typo
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 00:18:19 +08:00
gnattu
5c743f2b4d
feat: separate videotoolbox tone mapping option
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 00:16:59 +08:00
gnattu
cf3e3e2c3d
fix: code style
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 23:22:32 +08:00
gnattu
c18ef13b3b
feat: add tone mapping for videotoolbox
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 23:00:51 +08:00
gnattu
44cb9f5fdd
feat: add hw scale filter for videotoolbox
...
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 21:52:41 +08:00
Shadowghost
9230472056
Fix file extension based on container
2024-02-10 16:57:10 +01:00
nyanmisaka
e62dab627e
Add full HWA transcoding pipeline for RKMPP
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-01 18:59:27 +08:00
nyanmisaka
92c0ec0c1b
Use video framerate for ASS subtitle HW burn-in
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-28 20:06:42 +08:00
nyanmisaka
9323390add
Fix the display aspect ratio of PGSSUB subtitle burn-in
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-28 20:06:42 +08:00
Nyanmisaka
aa71129cff
Use -noauto{scale,rotate} for disabling auto filters ( #10810 )
...
`-auto{scale,rotate} 0` has been dropped in upstream FFmpeg.
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-04 16:31:45 -07:00
jkhsjdhjs
547d97d602
Use eof_action=pass when overlaying subtitles
...
The previous behavior using `eof_action=endall` and `shortest=1` would
end the video stream if one of the input stream (video, subtitle) ends.
In some cases the duration of the overlayed subtitles is shorter than the
video stream, causing the output to end when the subtitles end and dropping
the remaining video stream.
This commit changes this behavior so `eof_action=pass` is used instead,
which continues passing the video stream through even if the subtitles end
earlier [1]. `shortest=1` is also removed, as this option implies
`eof_action=endall`.
If the subtitle stream has a higher duration than the video stream, the output
will also end with the video stream without `shortest=1`, as the video stream
is the primary input to the `overlay` filter.
Fix #10698
[1] https://ffmpeg.org/ffmpeg-filters.html#Options-for-filters-with-several-inputs-_0028framesync_0029
2023-12-13 13:11:42 +01:00
Bond_009
b62b0ec2b5
Fix warnings
2023-11-14 21:14:21 +01:00
nyanmisaka
9c270b149c
Fix mismatch between intel VAAPI UMD/KMD in rare cases
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-10-22 19:06:35 +08:00
Nick
cd662506a1
Merge branch 'master' into trickplay
2023-10-18 19:27:05 -07:00
Stepan Goremykin
8d7e4229ca
Merge branch 'master' into fix-resharper-warnings
...
# Conflicts:
# Emby.Server.Implementations/Net/SocketFactory.cs
# RSSDP/SsdpCommunicationsServer.cs
# RSSDP/SsdpDeviceLocator.cs
# RSSDP/SsdpDevicePublisher.cs
2023-10-12 20:11:16 +02:00
Bond-009
0b31997b2f
Merge pull request #10348 from Bond-009/strings
2023-10-08 14:07:30 +02:00
Stepan Goremykin
2d7835c848
Join declaration and assignment
2023-10-08 01:16:43 +02:00
Stepan Goremykin
8ea812b65d
Reduce string literal length by using verbatim string
2023-10-08 00:26:12 +02:00
Bond-009
1141883f77
Merge pull request #10321 from feilongfl/master
2023-10-07 00:15:01 +02:00
Claus Vium
6593aa1255
Merge pull request #10135 from 0x25CBFC4F/fix/ffmpeg-probesize
...
Fixed probesize argument passing to FFmpeg
2023-10-06 11:38:31 +02:00
Claus Vium
a18b3fbe70
simplify the if
2023-10-06 10:49:20 +02:00
Bond_009
b176beb88e
Reduce string allocations
...
Some simple changes to reduce the number of allocated strings
2023-10-06 01:04:25 +02:00
fei long
33b3331c72
change Substring to AsSpan
...
Co-authored-by: Bond-009 <bond.009@outlook.com>
2023-10-06 06:26:52 +08:00
YuLong Yao
808e59fdda
add pcm format when codec is pcm_*
2023-10-02 13:14:53 +08:00
Nyanmisaka
99cc1ed13a
Fix A53 CC SEI breaking H26x_VAAPI hardware encode
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-09-25 22:56:59 +08:00
Nyanmisaka
5ba855098d
Backport pull request #10151 from jellyfin/release-10.8.z
...
Fix performance loss of QSV HDR tone-mapping on Windows
Original-merge: 757f88b1a2
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Bond_009 <bond.009@outlook.com>
2023-09-21 15:35:39 -04:00
Nyanmisaka
3c2b1b5e97
Fix AV1 NVENC encoder profile option ( #10199 )
2023-09-08 18:20:11 -06:00
nyanmisaka
31d2f653fa
Fix H264 QSV encoding when the bitrate is too low
...
h264_qsv expects a bitrate equal or higher than 1000k, or it fails.
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-09-02 00:25:40 +08:00
Bond_009
97d92e7087
Use the correct trancode path
...
EncodingOptions.TranscodingTempPath can be empty (and is by default),
the correct way to get the trancode path is
EncodingConfigurationExtensions.GetTranscodePath which falls back to $CACHEPATH/transcodes
when EncodingOptions.TranscodingTempPath is null or empty.
2023-08-27 17:27:03 +02:00