Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

native decryption #26

Open
3052 opened this issue Nov 22, 2023 · 3 comments
Open

native decryption #26

3052 opened this issue Nov 22, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@3052
Copy link

3052 commented Nov 22, 2023

running a command like this:

dash-mpd-cli --key 21b82dc2ebb24d5aa9f8631f04726650:602a9289bfb9b1995b75ac63f123fc86 `
http://example.com/v1/dash/196861183/manifest.mpd

I get this result:

Download failed: I/O error spawning mp4decrypt

I think it would be helpful if the tool here could just do the decryption itself. have you searched for any decryption crates?

@emarsden emarsden added the enhancement New feature or request label Nov 23, 2023
@emarsden
Copy link
Owner

Patches are welcome!

@3052
Copy link
Author

3052 commented Nov 23, 2023

have you searched for any decryption crates?

@emarsden
Copy link
Owner

Decryption is not actually the most complicated aspect here. CENC content protection doesn't involve encrypting a full file, but rather encrypting media fragments. It requires reading and writing specific box types for MP4 containers, and specific Element types for WebM/Matroska containers. Unfortunately, there are currently no mature crates that I know of for reading and writing MP4 and WebM container formats. This is why external helper applications are used.

To simplify the process of installing a bunch of external dependencies (and for better internet hygiene!), I recommend you run dash-mpd-cli in a podman container; see

https://emarsden.github.io/dash-mpd-cli/container.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants