-
Notifications
You must be signed in to change notification settings - Fork 7
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
DRM encryption content (CENC, CBCS, Playready, Widevine) #60
Comments
I haven't tested yet but an encrypted VoD asset should be possible to use and should result in an encrypted live asset.
In any case, encrypted content is pretty high up on the priority list, so it is likely that some test content will be generated a bit later. |
I've started to look into this and adding actual cenc/cbcs encryption to the mp4ff library. Hopefully I can get something ready for 1.0 at the end of the month. |
I don't know if having MPDs at different levels is working properly. livesim2 is trying to map things into "assets" and an asset is a directory with one or more MPDs. It will list imported assets as it starts up, so you should see there if it is fine or not. |
NonDrm Livesim2 does almost support a nested manifests. No need to support this nested url pattern. I can copy the original files to a separate |
There is some work to be done to support pre-encrypted segments, since all segments are re-fragmented and that process currently doesn't look at the encryption boxes |
Ok so LiveSIM1(python app) does more simple straightforward processing by not trying to understand input segments too much. All it really does is this so makes more suitable for "take ready-to-use segments and write responses":
|
Yes, livesim1 does less changes to the segments and is therefore dependent on content being perfectly loopable as it is with no difference in total duration between audio and video. It does some changes in emsg in some cases (scte-markers), and also some changes to the duration in the init segment. It also changes the subtitle payload for stpp since the internal timestamps are global. The CTA-WAVE test content has an MP4 fragment for each frame, which may not work with livesim1. One could consider a mode in livesim2, where it doesn't resegment the segments, but modifies them more similar to livesim1., but one then needs to assert that a number of restrictions are fulfilled, so I'd rather make the encryption case with full segment processing working. |
I got the impression that this works for pre-encrypted segments as long as the segments are not rewritten sample-wise. There is no warning for this behaviour, so that may be another ticket, but at least I think the basic use case is working. For low-latency encryption, the on-the-fly encryption with ECCP works for the test streams with AVC video and AAC audio (PR #150). |
@tobbee What we do for Hbbtv Refapp is always using 100% aligned video+audio segments using the following magic number principals for segment duration:
This will allow an easy smooth vod-to-live simulation without timeline drifting on vod cycles, manifest Also what you describe it should work fine on Livesim2's segment refragment manipulator even with our multiple fragments in a segment file (all chunks use 100% identical duration)? Is the latest drm changes merged to See |
This is certainly a great way to validate your progress. However reference streams shouldn't be more restrictive than the specifications. Otherwise it may defeat the purpose of interoperability. This has been discussed numerous times in standardization groups. The general feeling is that we may want to lean toward more restrictive specifications (up to the point where there may be only one way to package a compliant stream). |
One of the goals of the HbbTV DASH DRM Reference App was to find out the best practices and "recipes" that would work on the widest variety of devices. So kind of being "more restrictive" was the natural progression of things in the project and in Aki's work. |
@Murmur Yes, an encrypted segments with just one fragment covering all the samples should be possible to run through the system. The only new thing needed for that was the ContentProtection elements and their corresponding name spaces, and that has been merged to the main branch. The update with on-the-fly encryption and DASH-IF ECCP has also been merged. That version will also report that some representations are pre-encrypted when starting up. I plan to make a new release of livesim2 (v.1.2.0) next week which will include these changes. If you want, you may try |
@tobbee We currently have a deployment pipeline from the |
@tobbee Latest Segments, init and manifest file is returned from the livesim2 this time. Manifest and LaUrl(playready) Dashjs: https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html |
@Murmur I don't have any device that can play PlayReady so you need to do some more trouble shooting yourself. For the rest, I recommend that you check the input and output segment and check if they differ beyond timestamps and sequence numbers. |
Closed due to no activity in 3 months. |
Do LiveSim2 supports CENC and CBCS segments? It does not care too much about the scheme or target system (Playready, Widevine, Fairplay, ClearKey)? Livesim2 keeps an existing
<ContentProtection>
elements in vod-to-live manifest?Playready CENC https://refapp.hbbtv.org/videos/00_llama_h264_v8/cenc/manifest_prcenc_1080p.mpd
laurl: https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(kid:header,sl:2000,persist:false,contentkey:EjQSNBI0EjQSNBI0EjQSNg==)
Playready CBCS(1:9) https://refapp.hbbtv.org/videos/00_llama_h264_v8/cbcs/manifest_prcenc_1080p.mpd
laurl: https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(kid:header,sl:2000,persist:false,contentkey:EjQSNBI0EjQSNBI0EjQSNg==,ckt:aescbc)
The text was updated successfully, but these errors were encountered: