Progresywne pobieranie
Pobieranie progresywne to przesyłanie plików multimediów cyfrowych z serwera do klienta , zwykle przy użyciu protokołu HTTP , gdy jest inicjowane z komputera. Konsument może rozpocząć odtwarzanie multimediów przed zakończeniem pobierania. Kluczowa różnica między mediami strumieniowymi a pobieraniem progresywnym polega na tym, w jaki sposób dane mediów cyfrowych są odbierane i przechowywane przez urządzenie użytkownika końcowego , które uzyskuje dostęp do mediów cyfrowych.
Odtwarzacz multimediów , który jest w stanie odtwarzać pobieranie progresywne, opiera się na nienaruszonych metadanych znajdujących się w nagłówku pliku oraz na lokalnym buforze pliku multimediów cyfrowych podczas jego pobierania z serwera WWW. W momencie, gdy określona ilość danych stanie się dostępna dla lokalnego urządzenia odtwarzającego, rozpocznie się odtwarzanie multimediów. Ta określona wielkość bufora jest osadzona w pliku przez producenta treści w kodera i jest wzmacniana przez dodatkowe ustawienia bufora narzucone przez odtwarzacz multimedialny.
Historia
Początkowo typ pliku multimediów cyfrowych, znany jako JPEG , był pierwszym nośnikiem wizualnym, który renderował progresywny obraz wizualny podczas pobierania multimediów cyfrowych i faktycznie określano go jako pobieranie progresywne. Rozróżnienie między technicznym zachowaniem progresywnego pobierania a powszechnym lub komercyjnym użyciem terminu progresywne pobieranie do opisania tego zachowania nie zostało udokumentowane i istnieje wiele pytań dotyczących pochodzenia tego terminu w porównaniu z pochodzeniem implementacji technicznej . Apple w odniesieniu do swojego odtwarzacza multimedialnego QuickTime użył tego terminu Fast Start w 1997 r., aby opisać to, co komercyjnie określano jako odtwarzanie progresywnego pobierania zakodowanych cyfrowych treści multimedialnych .
Progresywne pobieranie HTTP a media strumieniowe
Doświadczenie użytkownika końcowego jest podobne do mediów strumieniowych , jednak plik jest pobierany na fizyczny dysk urządzenia użytkownika końcowego; plik jest zwykle przechowywany w katalogu tymczasowym powiązanej przeglądarki internetowej, jeśli nośnik został osadzony na stronie internetowej lub jest przekierowywany do katalogu przechowywania ustawionego w preferencjach odtwarzacza multimedialnego używanego do odtwarzania. Plik będzie się zacinał lub odtwarzanie zostanie zatrzymane, jeśli tempo odtwarzania przekroczy tempo pobierania pliku. Po ponownym pobraniu plik zacznie się ponownie odtwarzać.
To szybkie rozpoczęcie odtwarzania jest wynikiem przeniesienia metadanych z końca pliku multimediów cyfrowych na początek, to przesunięcie metadanych dało odtwarzaczowi multimedialnemu wszystkie informacje potrzebne do rozpoczęcia odtwarzania, ponieważ plik był nadal pobierany. Przed tą zmianą podsumowanie metadanych znajdowało się na końcu pliku multimedialnego i trzeba było pobrać cały plik, aby można było odczytać metadane i rozpocząć odtwarzanie w odtwarzaczu.
HTTP Pseudo-streaming (lub progresywne pobieranie), podobnie jak media strumieniowe lub HTTP Live Streaming , również obsługuje transmisje strumieniowe z adaptacyjną szybkością transmisji bitów . Wadą pseudo-streamingu HTTP przez media strumieniowe jest zmniejszone bezpieczeństwo, ponieważ HTTP jest łatwiejszy do wąchania w porównaniu z RTMP , a także długi czas ładowania podczas wyszukiwania większych filmów.
Optymalizacja pod kątem pseudo-streamingu HTTP
Pliki MP4 składają się z porcji danych , zwanych atomami . Te atomy przechowują informacje, takie jak napisy itp. Specjalny atom, zwany atomem moov , jest odpowiedzialny za przechowywanie informacji dotyczących sposobu odtwarzania wideo, takich jak wymiary , liczba klatek na sekundę i takie, które są ważne, aby rozpocząć odtwarzanie wideo w odtwarzaczu wideo HTML5 . Ale atomy mogą pojawiać się w dowolnej kolejności, więc serwery sieciowe, takie jak Nginx , zużywają część procesora, pamięci i dyskowych operacji we/wy na znalezienie atomu ruchu, aby HTML5 Video mogą rozpocząć odtwarzanie wideo. Aby zoptymalizować pod kątem pseudo-strumieniowania HTTP, ważne jest, aby przenieść atom moov na początek, aby serwery sieciowe, takie jak Nginx , optymalizowały pod kątem szybszego pseudo-strumieniowania, co skutkuje odtwarzaniem playbacków bez konieczności czekania na dotarcie lub zeskanowanie całego pliku.
ffmpeg -i sample_input.mp4 -movflags faststart -acodec copy -vcodec copy sample_output.mp4
-
-movflags faststart
przeprowadza optymalizację, przesuwając indeks (atom moov) na początek pliku. -
-acodec copy
wyodrębnia dźwięk z pliku wejściowego w niezmienionej postaci. -
-vcodec copy
wyodrębnia wideo z pliku wejściowego w niezmienionej postaci.
Dokonując tej optymalizacji, skutecznie zapobiegamy wydatkowaniu przez serwery sieciowe, takie jak nginx , względnej ilości obliczeń na znalezienie atomu moov, zwiększając w ten sposób wydajność odtwarzania na kliencie opartym na wideo HTML5 .
szukam
Początkowo plik jest odtwarzany od początku. Użytkownik może chcieć wskazać część pliku, która nie została jeszcze pobrana. Ta funkcja nazywa się wyszukiwaniem i umożliwia pobranie i rozpoczęcie odtwarzania dowolnej części pliku multimedialnego. Jest to często określane jako pseudo-streaming.
Wyszukiwanie wideo Flash wymaga listy punktów wyszukiwania w metadanych pliku multimedialnego. Punkty te są przesunięciami w wideo (zarówno w sekundach, jak i bajtach), w których rozpoczyna się nowa klatka kluczowa. Serwer WWW lub serwer multimediów, który obsługuje pobieranie, musi obsługiwać punkty wyszukiwania w ciągu zapytań żądań pobierania danych.
W przypadku innych typów plików multimedialnych, takich jak MP4 lub MKV , serwery WWW muszą obsługiwać specjalny parametr przesunięcia. Nazwa parametru przesunięcia jest różna dla różnych serwerów, dlatego należy ją określić w ustawieniach odtwarzacza.
Niektóre serwery obsługują wyszukiwanie tylko przez dodatkowe moduły, które są określone poniżej. Wyszukiwane nazwy parametrów pisane są kursywą .
serwer | Wyszukiwanie Flasha | Wyszukiwanie MP4 |
---|---|---|
Serwer HTTP Apache |
mod_h264 start mod_flvx start |
czas rozpoczęcia mod_h264 |
lighttpd | początek | czas rozpoczęcia mod_h264 |
Nginx | Uruchom http_flv_module | Uruchom http_mp4_module |
Zwinny streamer | początek | początek |
Zobacz też
Linki zewnętrzne
- Streaming vs Progressive Download , zarchiwizowane z oryginału w dniu 18.08.2010
- Serwer WWW a serwer przesyłania strumieniowego , Microsoft , pobrano 2010-09-21
- Flash Video: pobieranie progresywne , pobrane 21.09.2010
- Video Streaming Vs Progressive Download , zarchiwizowane z oryginału w dniu 29.05.2015 , pobrane 29.05.2015