Is it possible to play a video file with an audio file encrypted (widevine) with different encryption keys?

We are trying to play audio files on legacy video in our library. We have change our ingest system and video were encrypted with a different key than the newer audio files. We are composing dynamic dash files (.mpd) to make the player able to play them together. The problem comes when we are passing the drm configuration. Is there a way to pass more than one drm.widevine config (LA_URL) ?

Hi @jean-sebastien.rouet , thanks for reaching out to Bitmovin community. Playback of audio and video encrypted with separate keys should ideally work. In order to help us with your specific situation, can you please share following information?

  • Which one of the Bitmovin player SDKs(Web, Android) is the question for?
  • Which version of SDK is being used?
  • Please share a DASH test asset with separate keys for audio and video to let us check the behaviour.
  • Please also share the DRM configuration used in your tests.

Please feel free to DM the DASH stream and source/DRM config information if you are unable to share publicly.

Hi Lucky,
We are using the Web SDK. Our player is version 8.113 (UI 3.47).
And here is an example of the dash file we generate:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT6602.9189453125S">
  <Period>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" minBandwidth="84522" maxBandwidth="84522" group="1" contentType="audio">
      <Representation audioSamplingRate="8000" bandwidth="84522" codecs="mp4a.40.2" id="0">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <BaseURL>https://trick234.cloudfront.net/difuzego/2023_06/60938e9f-1806-4249-8a82-bd97421dd8f3/dash/fileExample__2022_s01e22_audio_23_enUS-dv_20230426_v1r0-audio-eng-mp4a.mp4</BaseURL>
        <SegmentBase indexRange="663-766">
          <Initialization range="0-662"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="24000/1001" subSegmentAlignment="true" par="16:9">
      <Representation id="0" bandwidth="2207924" codecs="avc1.4d001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="24000/1001">
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="09116a37-c099-5595-ad02-1f29a01bfb8d"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAdXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFUIARIQMqWbStxPX22fAmAbvbBLWhIQCRFqN8CZVZWtAh8poBv7...</cenc:pssh>
        </ContentProtection>
        <BaseURL>https://trick234.cloudfront.net/technicolor/70b3583b-9513-474c-8797-749fdf9cdaa8/201610/199790/asterix_et_obelix_contre_cesar_ftr_prhq_hd-235_2398p_fr-ltrt-me-51_xx_20161025_v1r1_RTC_Trim_HB_ChMap_Proxy_video.mp4</BaseURL>
        <SegmentBase indexRange="1030-8333" timescale="24000">
          <Initialization range="0-1029"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="1" contentType="audio" lang="```" subSegmentAlignment="true">
      <Representation id="1" bandwidth="161877" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="8ea20b31-5e45-5966-a20e-d38159553785"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAdXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFUIARIQMqWbStxPX22fAmAbvbBLWhIQCRFqN8CZVZWtAh8poBv7jRIQjqILMV5...</cenc:pssh>
        </ContentProtection>
        <BaseURL>https://trick234.cloudfront.net/technicolor/70b3583b-9513-474c-8797-749fdf9cdaa8/201610/199790/asterix_et_obelix_contre_cesar_ftr_prhq_hd-235_2398p_fr-ltrt-me-51_xx_20161025_v1r1_RTC_Trim_HB_ChMap_Proxy_audio.mp4</BaseURL>
        <SegmentBase indexRange="884-8835" timescale="44100">
          <Initialization range="0-883"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

Notice that at the moment, the added audio track has no encryption.

Thanks @jean-sebastien.rouet , can you please share the URL of DASH stream along with drm config required to playback it in Bitmovin player? Just having DASH manifest does not provide enough information. The cenc:pssh in above shared MPD are truncated and the audio/video segments will also have PSSH information and additional DRM information which should be all aligned. We will need a playable stream to check this. Thanks for your understanding