Последовательное скачивание

Последовательное скачивание (англ. 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

Примечания

[править | править код]
  1. QuickTime Streaming Server 4.1 (PDF), Архивировано (PDF) 6 июля 2011, Дата обращения: 21 сентября 2010, 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
  2. Understanding the MPEG-4 movie atom, Архивировано из оригинала 21 июля 2015, Дата обращения: 17 июля 2015
  3. Pseudo Streaming in Flash, Архивировано из оригинала 21 июля 2015, Дата обращения: 17 июля 2015