Use mp4fragment to fragment your source MP4s into fMP4 with the desired segment duration before packaging
Run mp4dash with the fragmented inputs; use the --encryption-key option supplying key_id:key in hex to enable CENC encryption
Specify --profiles to select the DASH profile (e.g., urn:mpeg:dash:profile:isoff-live:2011 for live-compatible output)
Inspect the generated stream.mpd to confirm ProtectionHeader and ContentProtection elements are present for each DRM system
Use mp4info on the output segments to verify the encryption scheme (cenc or cbcs) matches what your license server expects
Known gotchas
mp4dash requires pre-fragmented inputs; passing a non-fragmented MP4 directly results in either an error or a corrupt MPD — always run mp4fragment first
Bento4 defaults to CENC (CTR mode) encryption; if targeting HLS with FairPlay you need cbcs (CBC mode) — they are not interchangeable and require separate encrypted files
The --output-dir directory must be writable and empty; Bento4 does not merge with existing content, and stale segment files from a previous run will corrupt the manifest
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp