RFC_8216_-_HTTP_Live_Streaming.pdf - HTTP Live Streaming RFC 8216 Krzysztof Nadolski Piotr Truszczyski Plan prezentacji Wprowadzenie HTTP Live Streaming

RFC_8216_-_HTTP_Live_Streaming.pdf - HTTP Live Streaming...

This preview shows page 1 out of 16 pages.

You've reached the end of your free preview.

Want to read all 16 pages?

Unformatted text preview: HTTP Live Streaming RFC 8216 Krzysztof Nadolski Piotr Truszczyński Plan prezentacji ● ● Wprowadzenie HTTP Live Streaming ○ ○ ○ ○ ● Odpowiedzialność serwera Odpowiedzialność klienta Playlisty Zabezpieczenia Pytania Wprowadzenie ● ● Stale rośnie zapotrzebowanie na treści wideo w Internecie Powstały systemy adaptacyjnego strumieniowania wideo ● HTTP Live Streaming (Apple) to jedno z takich rozwiązań HTTP Live Streaming ● Wspierane formaty segmentów: ○ MPEG-2 Transport Streams ■ ○ Specjalny kontener do transmisji (DVB, IPTV itd.) Fragmented MP4 Żródło: Non-Fragmented MP4 ■ Pliki MP4 z podzielonym polem Movie Data Żródło: Fragmented MP4 Odpowiedzialność serwera - segmenty wideo ● ● ● Podział pliku na segmenty Utworzenie pliku playlisty z plikami w kolejności ich odtwarzania Stworzenie URI dla każdego segmentu ○ /video/segment0.ts LUB ● Opisanie zakresów bajtów większego pliku ○ ○ #EXT-X-BYTERANGE:[email protected] /video/media.ts Wtedy request HTTP ma nagłówek Range: bytes=200-1000 Żródło: Odpowiedzialność serwera - TRANSMISJE LIVE ● Plik nie może być modyfikowany, z wyjątkiem poniższych czynności: ○ ○ Dodawanie linii na koniec pliku Usuwanie kolejnych URI segmentów (od najstarszych) ● Jeśli segmenty dostarczane do klienta mają zostać usunięte po pewnym czasie, to odpowiedź HTTP powinna zawierać nagłówek Expires ● Po usunięciu URI z playlisty sam segment musi być nadal dostępny przez czas trwania segmentu + czas trwania najdłuższej playlisty zawierającej ten segment Źródło: quora.com/What-is-HLS-streaming-How-do-you-do-it-and-how-do-you-embed-that-stream-in-a-webpage Wstawianie reklam - discontinuity ● Każdy segment wideo ma przypisany Discontinuity Sequence Number ● Pozwala to na synchronizację pomiędzy wariantami (reprezentacjami) wideo, ale też wstawianie reklam ● Segmenty z reklamą mogą być wstawione pomiędzy segmenty właściwego materiału Źródło: bitmovin.com/bypass-adblock-server-side-ad-insertion/ Odpowiedzialność klienta ● Wybiera segmenty do pobrania przy użyciu algorytmów adaptacji ● Wspiera wiele ścieżek audio i wideo Powinien pobierać następne segmenty z odpowiednim wyprzedzeniem Okresowo odświeża playlistę w celu sprawdzenia dostępnych treści W przypadku błędnego schematu URI odtwarzanie jest zatrzymywane ● ● ● Żródło: Playlista Plik w formacie M3U zawierający informacje o: ● ● ● ● Ścieżka segmentów lub playlist w przypadku master playlisty Czas trwania segmentu oraz jego maksymalną długość Wersję protokołu HLS Opcjonalne pozostałe tagi (np. klucz deszyfrujący) Przykładowa playlista #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:3 #EXTINF:9.009, #EXTINF:9.009, #EXTINF:3.003, #EXT-X-ENDLIST Przykładowa master playlista #EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000 #EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000 #EXT-X-STREAM-INF:BANDWIDTH=7680000,AVERAGE-BANDWIDTH=6000000 #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5" Zabezpieczenia - DRM ● Szyfrowanie segmentów ○ ○ ○ ● Segmenty wideo mogą być zabezpieczone za pomocą metod AES-128, SAMPLE-AES lub NONE (wcale) AES-128 - szyfrowanie całych segmentów 128-bitowym kluczem SAMPLE-AES - szyfrowanie zależne od formatu (przed enkapsulacją) Odszyfrowywanie segmentów ○ Klucz jest przekazywany razem z playlistą, dostępny pod zawartym w niej URI ● Systemy DRM ○ ○ ○ Apple FairPlay Streaming (FPS) Microsoft PlayReady Google Widevine Źródło: vdocipher.com/blog/2017/08/hls-streaming-hls-encryption-secure-hls-drm/ LIVE DEMO Pytania 1. Segmenty w HLS muszą mieć określony: a. b. c. Maksymalny czas trwania Maksymalny rozmiar a i b 2. Plik playlisty w trakcie odtwarzania: a. b. c. Może być uzupełniany o kolejne segmenty Może być modyfikowany w dowolny sposób Ani a ani b 3. Jakie metody szyfrowania są wspierane w HLS? a. b. c. AES-128, AES-256, NONE SAMPLE-AES, AES-128, NONE SAMPLE-AES, DES, NONE Pytania 1. Segmenty w HLS muszą mieć określony: a. b. c. Maksymalny czas trwania Maksymalny rozmiar a i b 2. Plik playlisty w trakcie odtwarzania: a. b. c. Może być uzupełniany o kolejne segmenty Może być modyfikowany w dowolny sposób Ani a ani b 3. Jakie metody szyfrowania są wspierane w HLS? a. b. c. AES-128, AES-256, NONE SAMPLE-AES, AES-128, NONE SAMPLE-AES, DES, NONE Dziękujemy za uwagę ...
View Full Document

  • Summer '18

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors