community/jellyfin-ffmpeg: closer alignment with debian package
The main goal of this MR is to make the compiled version function more like intended, by aligning it with debian/rules
.
-
fdk-aac
allows much higher quality AAC encoding when transcoding. -
harfbuzz
allows better hardcoded subtitle rendering. -
svt-av1
allows transcoding video to AV1 for better compression on low-bitrate links. -
libxml2
allows demuxing DASH streams.
This also changes the TLS engine from openssl
to gnutls
, which I don't really have any opinion on, and mostly added for completeness.
A number of flags (amf ffnvcodec cuda cuda-llvm cuvid nvdec nvenc
) are still omitted, relating to hardware encoding/decoding using proprietary drivers. They should not really be needed for modern systems, which can use Vulkan decode and VA-API to do the same.
Only one relevant feature flag is still missing, namely zvbi
, which is needed to decode/transcode teletext
subtitles from certain DVB recordings. This is because the dependent lib is not part of Alpine, not even in testing. I have made an attempt to rectify this in !76475 (merged), which will need to be promoted to community
before it can be included here.
This rework also changes the output to use dynamic libs, rather than the current static ones, which are compiled into the two packaged binaries (ffmpeg
& ffprobe
). The static compilation has the unfortunate side effect of almost doubling the size of the package, since the libs are linked into both binaries.
Note that I took care to use the abuild
somask
variable to not include the dynamic libs in the traced provides-so
list.