Skip to content

Length mismatch issue with FMP4/CMAF content #7592

Closed
@vip644

Description

Issue description:

Hi,
I am trying to generate a fmp4 CMAF DRM with the CBCS protection scheme using bento4 and trying to play on android exoplayer.

Here is the command I am using to generate the dash manifest
mp4dash --profiles=on-demand --mpd-name manifest.mpd --encryption-cenc-scheme=cbcs --encryption-args=“--global-option mpeg-cenc.piff-compatible:true” --encryption-key=:: --widevine-header=provider:demo.ki#content_id:#protection_scheme:cbcs --hls --mpd-name=manifest.mpd --hls-master-playlist-name=manifest.m3u8 fragmented.mp4

example command i am using
mp4dash --mpd-name manifest.mpd --encryption-cenc-scheme=cbcs --encryption-args=“--global-option mpeg-cenc.piff-compatible:true” --encryption-key=8762c548e79c740f7b5d2f5f09f85929:aae2a539812edc302599f027c8689fad:00000000000000000000000000000000 --widevine-header=provider:demo.ki#content_id:8762c548e79c740f7b5d2f5f09f85929#protection_scheme:cbcs --hls --mpd-name=manifest.mpd --hls-master-playlist-name=manifest.m3u8 sintel-1024-surround.mp4
The content works on Chrome using shakaplayer.

There is already an existing closed bug on the bento4 issues page regarding the same issue
axiomatic-systems/Bento4#428 where it looks like it is an issue with exoplayer.
Is there any workaround for this?

Stack-trace:

2020-07-03 16:54:54.708 3562-3603/com.vipin.exokotlin E/ExoPlayerImplInternal: Source error
      com.google.android.exoplayer2.ParserException: Length mismatch: 0, 1285
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.parseSaiz(FragmentedMp4Extractor.java:802)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.parseTraf(FragmentedMp4Extractor.java:725)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.parseMoof(FragmentedMp4Extractor.java:693)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.onMoofContainerAtomRead(FragmentedMp4Extractor.java:542)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.onContainerAtomRead(FragmentedMp4Extractor.java:456)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.processAtomEnded(FragmentedMp4Extractor.java:434)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:429)
        at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:315)
        at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:135)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)

Version of ExoPlayer: 2.11.7

Device: Google Pixel 3
Version: Android 9

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions