2017-09-22 68 views
9

Chcę zaimplementować DRM w wideo HTML5 (EME). Wiem, że jest obsługiwana w nowoczesnych przeglądarek:Jak zaimplementować DRM w HTML5

I wiem, że istnieją narzędzia i usługi, które mogę użyć:

Chcę zapewnić jak w poniższym przykładzie:

  • https://demo.castlabs.com/ (grać Big Buck Bunny płynne strumieniowe: że nie można pobrać i adres url jest jeden -time useable)

Czy muszę używać jako czy mogę zaimplementować stronę po stronie klienta i po stronie serwera zarówno na moim serwerze? Jeśli mogę zaimplementować obie strony po stronie klienta i po stronie serwera, jak mogę to zrobić?
Używam PHP (laravel) po stronie serwera.

Aktualizacja # 1
Chcę, aby móc szyfrować moje filmy na moim serwerze (za pomocą dowolnego narzędzia) i odszyfrować gdy przeglądarka chcą grać i zapobiega to być pobrane przez zwykłych użytkowników.

+0

Od: https://arstechnica.com/information-technology/2017/03/drm-in-html5-is-a-victory-for-the-open-web-not-a-defeat/ 'EME robi nie określa żadnego schematu DRM jako takiego. Raczej definiuje zestaw interfejsów API, które pozwalają JavaScript i HTML na interakcję z modułami deszyfrowania/ochrony.Te moduły będą miały specyficzną platformę w taki czy inny sposób i będą zawierać rdzeń technologii DRM. " – enhzflep

+0

nie wiesz, czy to pomoże twojej sprawie, ale dla przyszłych czytelników sprawdź ten artykuł, który napisałem niedawno: http: //aameer.github .io/articles/digital-rights-management-multi-drm/wyjaśnia szczegółowo, jak osiągnąć multi-drm – Aameer

+0

Dziękujemy @Aameer. Czytałem twój artykuł. To było pomocne, ale nie było to, czego potrzebowałem. Chcę jakoś zaszyfrować wideo na moim serwerze i podczas odtwarzania na stronie internetowej przy użyciu tagu wideo HTML5, zostanie odszyfrowany i nikt go nie pobierze. –

Odpowiedz

2

Jeśli chcesz obsługiwać najczęściej używane DRM, w tym czasie Widevine, PlayReady lub FairPlay, potrzebujesz serwera lub usługi multi-DRM.

Jeśli potrzebujesz tylko podstawowej ochrony, możesz użyć szyfrowania AES lub wyraźnie z DASH.

Nie są one tak bezpieczne, ale czasami są wystarczająco dobre dla pewnych potrzeb.

Można użyć ffmpeg i OpenSSL stworzyć AES zaszyfrowany strumień HLS - dokumentację ffmpeg (http://ffmpeg.org/ffmpeg-all.html#Options-34) zawiera ten przykładowy skrypt:

#!/bin/sh 
BASE_URL=${1:-'.'} 
openssl rand 16 > file.key 
echo $BASE_URL/file.key > file.keyinfo 
echo file.key >> file.keyinfo 
echo $(openssl rand -hex 16) >> file.keyinfo 
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \ 
    -hls_key_info_file file.keyinfo out.m3u8 

Można również użyć mp4Box (https://gpac.wp.imt.fr/mp4box/encryption/common-encryption/) do tworzenia podstawowych jasnych encryptions DASH :

MP4Box -crypt drm_file.xml movie.mp4 wymeldowanie movie_encrypted.mp4

Informacje o drm są zawarte w pliku drm_file.xml i wyjaśnione na powyższym łączu.

+0

Dziękuję @ Rickowi za odpowiedź. Czy mogę używać mojego VPS jako serwera z wieloma DRM? I nie mogłem używać szyfrowania MP4Box, ponieważ potrzebuje on pliku info xml! (Czy powinienem to zrobić ręcznie?) –

Powiązane problemy