Последовательное скачивание (англ. progressive download, также используется термин псевдостриминг) — это передача файлов с медиа-данными от веб-сервера веб-клиенту в основном с использованием протокола HTTP по запросу с клиентского компьютера. Потребитель может начать воспроизведение контента ещё до того, как он скачается полностью. Основное отличие от потоковой передачи — это то, как цифровые данные получаются и хранятся на устройстве конечного пользователя.
Медиа-плеер при последовательном скачивании строит работу с файлами на основе мета-данных из заголовков для соблюдения целостности, а также буфера, где хранятся скачанные файлы. Как только на устройстве будет доступен достаточный объём данных, начинается проигрывание. Этот объём закладывается производителем контента с использованием энкодера и производителем плеера на основе его настроек.
Изначально медиа-формат JPEG был первым типов визуального медиа, который последовательно показывал изображение по мере загрузки. Неясно, кто именно ввёл в оборот термин «последовательное скачивание». Компания Apple, ссылаясь на свой плеер QuickTime, использовала термин Fast Start (быстрый старт)[1] в 1997 году, описывая последовательное воспроизведение закодированного цифрового контента.
Поведение с точки зрения конечного пользователя похоже на потоковую передачу данных, однако при последовательном скачивании файл физически качается и кладётся в каталог на жёстком диске устройства, который используется для проигрывания — или в специально отведённый, или в каталог временных файлов браузера. Проигрывание застопорится в случае, если данные скачиваются медленнее, чем идёт воспроизведение контента. Как правило, воспроизведение возобновляется после докачки данных, но это зависит от плеера.
Быстрое начало воспроизведения является результатом смещения метаданных из конца файла в его начало. Это даёт медиа-плееру всю необходимую информацию для дальнейшей работы с медиа несмотря на то, что данные доступны не в полном объёме. До этого данные располагались в конце, что требовало качать весь файл целиком для того, чтобы начать проигрывание[2].
Файл в первую очередь может быть проигран с самого начала. Однако пользователь может захотеть указать на начало фрагмента, который ещё не был скачан. Эта возможность называется перемоткой (seeking)[3] и это даёт возможность загрузить и начать воспроизведение любой части медиа-файла. Часто это называется псевдостримингом.
Для видео в формате FLV перемотка требует наличия опорных точек в мета-данных медиа-файлов. Эти точки представляют собой смещение в видео (как в секундах, так и в байтах), где находится новый ключевой кадр. Веб-сервер или медиа-сервер, отдающий файлы на скачивание, должен иметь поддержку опорных точек через параметры HTTP-запроса, чтобы отработать перемотку в таком типе файлов.
Для других типов файлов, таких как MP4 или MKV, сервера также должны поддерживать специальный параметр смещения. Как правило, эта величина указывает на смещение в байтах. Название параметра может отличаться у разных серверов и плееры должны это учитывать.
Некоторые серверы поддерживают перемотку только через специальные модули. В таблице ниже приведены примеры серверов, которые поддерживают перемотку. Названия параметра перемотки приведены наклонным шрифтом.
Сервер | Перемотка Flash | Перемотка MP4 |
---|---|---|
Apache HTTP Server | mod_h264 start mod_flvx start |
mod_h264 starttime |
lighttpd | start | mod_h264 starttime |
Nginx | http_flv_module start | http_mp4_module start |
Nimble Streamer | start | start |
Two methods are commonly used to deliver media over the web for real-time viewing: progressive download (Fast Start) and real-time streaming.Архивная копия от 6 июля 2011 на Wayback Machine