Последовательное скачивание
Последовательное скачивание (англ. 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 |
Примечания
- QuickTime Streaming Server 4.1, <http://sysdoc.doors.ch/APPLE/L29080A_QTSS41_DS.pdf>. Проверено 21 сентября 2010. Архивная копия от 6 июля 2011 на Wayback Machine
- Understanding the MPEG-4 movie atom, <http://www.adobe.com/devnet/video/articles/mp4_movie_atom.html>. Проверено 17 июля 2015.
- Pseudo Streaming in Flash, <http://support.jwplayer.com/customer/portal/articles/1430518-pseudo-streaming-in-flash>. Проверено 17 июля 2015.
Ссылки
- Streaming vs Progressive Download, <http://dowire.org/wiki/Streaming_vs_Progressive_Download> Архивная копия от 18 августа 2010 на Wayback Machine
- Web Server vs. Streaming Server, Microsoft, <http://www.microsoft.com/windows/windowsmedia/compare/webservvstreamserv.aspx>. Проверено 21 сентября 2010.
- Flash Video: Progressive Download, <http://www.mediacollege.com/adobe/flash/streaming/progressive-download.html>. Проверено 21 сентября 2010.
- Video Streaming Vs Progressive Download, <http://witalks.com/video-streaming-vs-progressive-downloading-or-http-streaming/>. Проверено 29 мая 2015. Архивная копия от 29 мая 2015 на Wayback Machine