dash-mpd-cli defaults to using mp4decrypt from Bento4 for decrypting
streams, though it can also use Shaka Packager. Nixpkgs currently
patches dash-mpd-cli to default to using Shaka Packager and does not
include mp4decrypt in the binary wrapper's $PATH. Unfortunately some
streams may fail to decrypt with Shaka Packager. To better support the
--decryption-application option in dash-mpd-cli, add bento4 and gpac to
the binary wrapper's $PATH. Also drop the Shaka Packager patch to better
match the upstream behavior. MP4Box from GPAC is used for binary WebVTT
and MPEG-4 timed text (TX3G) subtitle conversion.
Cargo 1.84.0 seems to have changed the output format of cargo vendor
again, once again invalidating fetchCargoTarball FOD hashes. It's
time to fix this once and for all, switching across the board to
fetchCargoVendor, which is not dependent on cargo vendor's output
format.
It should be possible to reproduce this diff. To do so, get the list
of files changed by this commit, e.g. with git diff --name-only, then
run the following two commands, each with that list of files as their
standard input:
xargs sed -i 's/^\(. *\)\(cargoHash\)\b/\1useFetchCargoVendor = true;\n\1cargoHash/'
cut -d / -f 4 | xargs -n 1 nix-update --version=skip
This will take a long time. It might be possible to parallelize it
using xargs' -P option. I haven't tested it.
dash-mpd-cli [depends on several binaries in `$PATH`][1] for certain
functionality (e.g., `ffmpeg` for muxing). Use a wrapper to prepend
these binaries to `$PATH` while running `dash-mpd-cli`.
I only included `ffmpeg`, `shaka-packager`, and `xsltproc` as they
should cover most of the functionality supported by `dash-mpd-cli`. The
upstream container [image includes additional (redundant)
dependencies][2], such as `mp4decrypt`.