2017-01-17 8 views
0

모든 기능을 갖춘 MPEG-DASH 인코더가 있습니다. 이제 스트리밍 콘텐츠가 DRM으로 보호되도록 콘텐츠를 확장하려고합니다. 내가 여기 물어 : 전체 샘플 암호화 (오디오 트랙)에서MPEG-DASH CENC 인코더가 브라우저에서 MEDIA_ERR_DECODE 문제를 발생시킵니다.

  1. 난 그냥 AES128와 "mdata"상자에 각각의 샘플을 암호화 할 수 있습니다 결정 그래서 나는 아주 쉽게 이해할 수 없어요이 문제가/CTR/NoPadding 및 8byte 길이의 IV가 나중에 "senc"상자에 저장됩니까?

  2. "senc"상자가 IV 용 컨테이너 인 경우 "traf"(조각)에 "saiz"및 "saio"상자가 필요합니까?

  3. 여기에 저장해야하는 오프셋/크기가 있습니까? "senc"상자 또는 ...?

나는 DRM 세션이 성공적으로 "pssh"상자와 dash.js.에서 ClearKey DRM 지원을 사용하여 만들어집니다, 스트림 DRM없이 완벽하게 작동하는지 확인했습니다 3 일 동안 나를 귀찮게하는 것은 브라우저가 어떻게 성공적으로 그것을 해독 할 수 있도록 조각 상자가 어떻게 생겼는지뿐입니다. 나는 이전의 세 가지 질문과 관련하여 내가 잘못한 것을했다고 생각합니다.

답변

0

좋아, 그럼 내 자신을 대답하게 해 - 어쩌면 누군가가 비슷한 문제가있을 것입니다.

  1. 예 및 아니오. MP4A는 mdata로 직렬화 된 프레임을 포함합니다. 각 프레임은 샘플입니다. 이것은 프레임 별 프레임이 AES128/CTR/NoPadding 암호 및 암호문을 통과해야하며 일반 프레임 대신 mdata에 저장되어야 함을 의미합니다. 각 프레임에는 IV가 연관되어 있습니다.

  2. 예! senc 상자가 Mp4 탐색기에서 감지되었지만 CENC 호환 디 크립 터 장치에 의해 사용되지 않습니다. senc를 가리키는 saio/saiz 상자가 있습니다. Senc는 mdat 상자에 저장하면 안됩니다. Saio는 senc 상자 자체가 아니라 senc의 IVs의 시작을 가리켜 야합니다.

  3. Saiz에는 상자 전체가 아닌 단일 senc 항목의 크기가 들어 있습니다. Saio는 단 1 개의 레코드를 가지고 있으며 그것은 Senc 상자의 첫번째 IV 위치를 가리 킵니다.

희망이 있습니다. 나는 dash.js 및 bitmovin 플레이어로 스트림을 테스트했는데 모두 작동합니다.