shaka-project / shaka-packager

A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
https://shaka-project.github.io/shaka-packager/
Other
1.9k stars 496 forks source link

feat: support Dolby Vision profile 8.x (HEVC) and 10.x (AV1) in HLS and DASH #1396

Closed cosmin closed 1 month ago

cosmin commented 1 month ago

Support Dolby Vision profile 8.1, 8.2, 8.4, 10.1, 10.4 signaling in HLS and DASH.

adds new option --use_dovi_supplemental_codecs (off by default) to use SUPPLEMENTAL-CODECS in HLS and scte214:supplementalCodecs and scte214:supplementalProfiles for DASH.

To maintain compatibility with existing players the current behavior of using two entries in the manifest remains the default. This will be changed in a future version where use_dovi_supplemental_codecs will become on by default.

Adds Dolby Vision compatible brands, 'db1p', 'db2g', 'db4g', 'db4h', 'dby1' based on https://mp4ra.org/#/brands

This is based on and replaces #1255. It was then extended to support DolbyVision profile 10.x signaling for AV1


Co-authored-by: Xingzhao Yun xyun@dolby.com

cosmin commented 1 month ago

@vish91 I know you expressed interest in this feature, please give this a try and let me know if it works for you

cosmin commented 1 month ago

cc @sr1990 since you had some feedback on the earlier PR

sr1990 commented 1 month ago

--use_dovi_supplemental_codecs (off by default)

Agree with the flag usage. Overall lgtm.

vish91 commented 1 month ago

@XingzhaoYun could you also help please check this PR and see if you have any feedback or any changes we have in fork where we are attempting this.

XingzhaoYun commented 1 month ago

For DASH signaling, I think SupplementalProperty/EssentialProperty for MatrixCoefficients, ColourPrimaries, and TransferCharacteristics are ought to included by default, right? We created another branch including this already for reference, https://github.com/shaka-project/shaka-packager/compare/main...DolbyLaboratories:shaka-packager:dolby/dovi_for_prmt#diff-6f4988849e3a9b9b9060eb05e0dd074599a84197063016b97b15cc71fee287c9

cosmin commented 1 month ago

For DASH signaling, I think SupplementalProperty/EssentialProperty for MatrixCoefficients, ColourPrimaries, and TransferCharacteristics are ought to included by default, right?

@XingzhaoYun thank you for the feedback, I went ahead and included the changes to parse and include matrix coefficients and color primaries in the MPD.

vish91 commented 1 month ago

----@cosmin @joeyparrish how do we use this new flag ? I am trying to run a test today and the command when ran with --use_dovi_supplemental_codecs says ERROR: Unknown command line flag 'use_dovi_supplemental_codecs' this is a pacakger command flag right ?----

^Ignore me.. i was using the wrong release build. Testing again

cosmin commented 1 month ago

@vish91 did that work out?

vish91 commented 1 month ago

yeah that worked well. Generated a clear and DRM version. Getting it to player and client teams for testing . Thanks!