-
Notifications
You must be signed in to change notification settings - Fork 245
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
[Feature request] Parsing PSSH box from stream/segments #1738
Comments
when a manifest dont provide the PSSH, the addon already extract PSSH from the stream segment, if any, and if have a supported container / drm system id, but there are differents use cases and could be that it is a specific case that is not supported or that for some other reason dont works most of the time i saw that PSSH problems are because of Key Rotation DRM feature, that is not supported on ISA, your info are not enough to understand something, PS. live streams usually is a good candidate for Key Rotation, but i cant confirm for your case |
(OK, I will try to add more detailed information in next days, please do not close this ticket yet.) |
@CastagnaIT This would also solve #1657 I think. I think the preference order for PSSH extraction should be: |
@lavish440 that is exactly situation I am facing. In my case, the PSSH of the live stream is not listed in the manifest. Initial MP4 segment also does not contain the information. Only the media segment is useful. This can also be seen on the playback of the stream in Chrome with Widevine in order of request:
MPD<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
</ContentProtection> IS$ ./mp4dump --verbosity 1 IS.mp4
...
[sinf] size=8+72
[frma] size=8+4
original_format = avc1
[schm] size=12+8
scheme_type = cenc
scheme_version = 65536
[schi] size=8+32
[tenc] size=12+20
default_isProtected = 1
default_Per_Sample_IV_Size = 8
default_KID = [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
... MS$ ./mp4dump --verbosity 1 24828438.m4s
...
[pssh] size=12+41
system_id = [ed ef 8b a9 79 d6 4a ce a3 c8 27 dc d5 1d 21 ed]
data_size = 21
data = [22 06 31 32 32 2d 74 76 38 fa ac b0 01 48 e3 dc 95 9b 06 50 00]
... |
Yes, my issue is similar. |
im already aware that media segments can contains pssh/kid, this is part of key rotation feature since the PSSH change while in playback the manifest dont provide the PSSH then this is a duplicate of #1602 |
Well, I did not expect it to be closed so quickly. Let us assume the key is not rotating, just being distributed in the media segment. How to handle such a situation? I do not know, maybe to calculate the path to the media segment from MPD, download it, extract the PSSH and then start playback together with |
there is already opened linked issue, duplicate issue will be closed
must be implemented on the fragment demuxer and widevine decrypters |
My crypto period is large so the key isn't rotated very frequently and I can restart the playback, but the issue is that ISA tries to use the PSSH from Initial Segments even when Default KID and PSSH are both present in the manifest (injected with a proxy). It works fine with Clearkey DRM but not with Widevine. |
Currently, I am using a proxy for that. |
I see and fully understand. Unfortunately, I cannot help with that. I do not even dream of the knowledge you have. All I have is a two-page chapter 9 in the DASH-IF Interoperability Points; Part 6: Content Protection document which I would not call a specification. Nevermind, thanks anyway for the results of this project. 👍 |
Is this anything you can share, please? Is it based on this Wiki page? |
Nah, I have my own custom implementation. Also if you want to do the same, use the audio segment as they are generally smaller in size. |
Describe the feature
It seems that if the MPD manifest contains
cenc:pssh
data, everything works correctly for me.However, if the pssh data is missing, inputstream.adaptive cannot get it from the stream/segment from the PSSH box, even though the standard allows it. Is this the case?
Motivation
The service I use inputstream.adaptive for carries PSSH in stream/segments in live stream, in VOD,
cenc:pssh
is stored in MPD manifests.Are you willing to contribute in development?
No
Should a possible backport be considered?
No
The text was updated successfully, but these errors were encountered: