ПОТОКОВЫЙ МЕДИА-СЕРВЕР, КЛИЕНТСКИЙ ТЕРМИНАЛ, СПОСОБ И СИСТЕМА ДЛЯ ЗАГРУЗКИ ПОТОКОВЫХ МУЛЬТИМЕДИЙНЫХ ДАННЫХ
STREAM MEDIA SERVER, CLIENT TERMINAL, METHOD AND SYSTEM FOR DOWNLOADING STREAM MEDIA

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к технологии хранения мультимедийных данных и, в частности, к потоковому медиа-серверу, клиентскому терминалу, способу и системе для загрузки потоковых мультимедийных данных.
УРОВЕНЬ ТЕХНИКИ
Система передачи потоковых мультимедийных данных является типовой системой, состоящей из клиентского терминала и обслуживающего терминала, при этом обслуживающий терминал обычно представляет собой потоковый медиа-сервер. Система передачи потоковых мультимедийных данных поддерживает такие услуги передачи мультимедийных данных, как видео по запросу и услуги широковещательной передачи в реальном времени, при этом пользователь также может при необходимости загружать исходный файл потоковых мультимедийных данных с помощью протокола передачи файлов (FTP, File Transfer Protocol), протокола передачи гипертекстовых файлов (HTTP, Hyper Text Transfer Protocol) и т.п.
Однако загрузка потокового мультимедийного контента с помощью протоколов FTP, HTTP и т.п. обладает следующими недостатками: потоковый мультимедийный контент может загружаться только при условии поддержки сервером, таким как FTP-сервер и HTTP-сервер; такой способ поддерживает только загрузку всего потокового мультимедийного контента и не может выполнить требования пользователя, желающего загрузить лишь интересующую его часть контента; файл не может быть отображен, если он не загружен полностью, то есть уже сохраненные потоковые мультимедийные данные не могут быть корректно отображены в случае прерывания загрузки.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
По указанным выше причинам основной целью настоящего изобретения является реализация потокового медиа-сервера, клиентского терминала, способа и системы для загрузки потоковых мультимедийных данных, которые в случае прерывания загрузки смогут обеспечить нормальное отображение уже загруженных потоковых мультимедийных данных.
Для достижения этой цели предлагается техническое решение настоящего изобретения, которое состоит в следующем.
Способ загрузки потоковых мультимедийных данных включает:
прием и кэширование переданных потоковых мультимедийных данных исходного файла потоковых мультимедийных данных, переносимых с помощью пакетов транспортного протокола реального времени (RTP, real-time transport protocol) в сеансе передачи потоковых мультимедийных данных;
сортировку кэшированных пакетов RTP и формирование из них кадров;
формирование файла и запись сформированных кадров данных в сформированный файл.
Кроме того, способ также включает:
в случае прерывания передачи сохранение временной отметки последнего записанного в файл кадра данных и отбрасывание кэшированных пакетов RTP, из которых не были сформированы кадры данных;
инициирование запроса установления сеанса передачи потоковых мультимедийных данных путем передачи в потоковый медиа-сервер запроса описания контента протокола потоковой передачи реального времени (RTSP Describe, real-time streaming protocol describe), содержащего URL-адрес исходного файла потоковых мультимедийных данных, передача которого была прервана;
передачу в потоковый медиа-сервер команды воспроизведения протокола RTSP, содержащей сохраненную временную отметку;
прием и кэширование упомянутых потоковых мультимедийных данных упомянутого исходного файла, при этом указанные потоковые мультимедийные данные представляют собой потоковые мультимедийные данные, передачу которых требуется возобновить согласно сохраненной временной отметке;
сортировку кэшированных пакетов RTP и формирование из них кадров и,
после формирования кадра запись кадра данных в файл, сформированный перед прерыванием передачи.
Кроме того, шаг сортировки кэшированных пакетов RTP и формирования из них кадров может включать:
a) сортировку кэшированных пакетов RTP;
b) обнаружение первого пакета RTP, переносящего данные I-кадра, в последовательности пакетов RTP, полученной в результате сортировки; отбрасывание пакетов RTP, расположенных перед первым обнаруженным в последовательности пакетом RTP, переносящим данные I-кадра, отделение пакетов RTP, переносящих звуковые данные, от пакетов, переносящих видеоданные, согласно полю PID пакета RTP, начиная с первого обнаруженного пакета RTP, переносящего данные I-кадра, и формирование кадров из пакетов RTP, переносящих звуковые данные и видеоданные, соответственно.
Кроме того, упомянутый шаг приема и кэширования переданных потоковых мультимедийных данных исходного файла может включать:
установление сеанса передачи потоковых мультимедийных данных;
передачу в потоковый медиа-сервер команды воспроизведения протокола RTSP, содержащей время начала и время окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных, и
прием и кэширование пакетов RTP, переносящих потоковые мультимедийные данные, переданные потоковым медиа-сервером, при этом указанные потоковые мультимедийные данные представляют собой потоковые мультимедийные данные в упомянутом исходном файле, соответствующие временному промежутку от упомянутого времени начала до упомянутого времени окончания.
Кроме того, потоковые мультимедийные данные, передачу которых требуется возобновить, могут представлять собой потоковые мультимедийные данные в упомянутом исходном файле, соответствующие временному промежутку от сохраненной временной отметки до упомянутого времени окончания.
В настоящем изобретении также предлагается клиентский терминал, выполненный с возможностью приема и кэширования пакетов транспортного протокола реального времени (RTP), переносящих потоковые мультимедийные данные, передаваемые потоковым медиа-сервером в сеансе передачи потоковых мультимедийных данных; сортировки кэшированных пакетов RTP и формирования из них кадров; формирования файла и записи сформированных кадров данных в сформированный файл, посредством чего выполняется загрузка потоковых мультимедийных данных.
Кроме того, клиентский терминал может содержать:
первый блок генерирования сигнализации, выполненный с возможностью обмена данными сигнализации с потоковым медиа-сервером для установления сеанса передачи потоковых мультимедийных данных;
блок приема, выполненный с возможностью приема и кэширования пакетов RTP;
блок обработки, выполненный с возможностью сортировки кэшированных пакетов RTP и формирования из них кадров, и
первый блок памяти, выполненный с возможностью формирования файла и записи сформированных кадров данных в сформированный файл.
Кроме того, клиентский терминал может также содержать:
второй блок памяти, выполненный с возможностью сохранения, в случае прерывания передачи, временной отметки кадра данных, записанного в файл последним, и
второй блок генерирования сигнализации, выполненный с возможностью формирования и передачи команды воспроизведения протокола RTSP, содержащей сохраненную временную отметку, а также с возможностью формирования и передачи команды воспроизведения протокола RTSP, содержащей время начала и время окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных.
В настоящем изобретении также предлагается потоковый медиа-сервер, который выполнен с возможностью передачи в клиентский терминал потоковых мультимедийных данных, переносимых в сеансе связи с помощью пакетов транспортного протокола реального времени (RTP), так что клиентский терминал может принимать и кэшировать пакеты RTP, сортировать кэшированные пакеты RTP и формировать из них кадры, формировать файл и записывать в сформированный файл сформированные кадры данных для выполнения загрузки потоковых мультимедийных данных.
Кроме того, потоковый медиа-сервер может содержать:
первый блок анализа, выполненный с возможностью обмена данными сигнализации с клиентским терминалом для установления сеанса передачи потоковых мультимедийных данных, и
модуль передачи, выполненный с возможностью получения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, и передачи полученных потоковых мультимедийных данных в клиентский терминал с помощью пакетов RTP.
Кроме того, потоковый медиа-сервер может также содержать:
второй блок анализа, выполненный с возможностью анализа команды воспроизведения протокола RTSP, содержащей сохраненную временную отметку, для получения сохраненной временной отметки и анализа команды воспроизведения протокола RTSP, содержащей время начала и время окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных, и
блок идентификации данных, выполненный с возможностью определения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, подлежащих передаче в соответствии с сохраненной временной отметкой, и с возможностью определения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, подлежащих передаче в соответствии с временем начала и временем окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных.
В настоящем изобретении также предлагается система для загрузки потоковых мультимедийных данных, которая, как описано выше, включает клиентский терминал и потоковый медиа-сервер.
С помощью потокового медиа-сервера, клиентского терминала, способа и системы для загрузки потоковых мультимедийных данных в соответствии с настоящим изобретением потоковые мультимедийные данные последовательно записываются в файл, при этом запись не осуществляется до тех пор, пока не сформирован кадр, что гарантирует то, что каждый кадр данных, который записан в файл, является завершенным, и уже загруженные потоковые мультимедийные данные могут быть отображены, то есть обеспечиваются непрерывность и качество отображаемой информации, а также устраняются такие эффекты, как мозаичность или прерывание вывода изображения в случае прерывания загрузки. Настоящее изобретение характеризуется следующими преимуществами и техническими признаками:
1) настоящее изобретение позволяет выполнять загрузку исходного файла потоковых мультимедийных данных только через потоковый медиа-сервер, без использования другого сервера, например FTP-сервера или HTTP-сервера;
2) согласно настоящему изобретению временная отметка кадра данных, записанного в файл последним, сохраняется после прерывания передачи, и потоковые мультимедийные данные, передачу которых требуется возобновить, определяются согласно сохраненной временной отметке, и передача этих данных возобновляется таким образом, что загрузка исходного файла потоковых мультимедийных данных может быть завершена путем возобновления передачи с точки прерывания, после того как передача была прервана;
3) согласно настоящему изобретению потоковый медиа-сервер информируется о той части исходного файла потоковых мультимедийных данных, которая интересует пользователя, путем установки поля времени запроса таким образом, чтобы пользователь мог свободно выполнять загрузку потоковых мультимедийных данных, содержащихся в интересующем его фрагменте исходного файла потоковых мультимедийных данных.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг.1 представлена блок-схема способа загрузки потоковых мультимедийных данных в соответствии с первым примером осуществления настоящего изобретения.
На фиг.2 представлена блок-схема способа загрузки потоковых мультимедийных данных в соответствии со вторым примером осуществления настоящего изобретения.
На фиг.3 показана структура системы для загрузки потоковых мультимедийных данных в соответствии с третьим примером осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Способ загрузки потоковых мультимедийных данных в соответствии с первым примером осуществления настоящего изобретения, блок-схема которого показана на фиг.1, включает следующие шаги.
Шаг 101: получение клиентским терминалом адреса унифицированного указателя ресурса (URL, Uniform Resource Locator) исходного файла потоковых мультимедийных данных, подлежащего загрузке из потокового медиа-сервера; передача в потоковый медиа-сервер запроса описания контента (RTSP Describe) протокола потоковой передачи реального времени, содержащего URL-адрес; передача в потоковый медиа-сервер команды установки протокола RTSP (RTSP setup) после приема ответа на запрос описания контента протокола RTSP; завершение установления сеанса передачи потоковых мультимедийных данных после приема ответа на команду установки протокола RTSP. Установление сеанса передачи потоковых мультимедийных данных соответствует стандартным требованиям протокола RTSP.
На этом этапе исходный файл потоковых мультимедийных данных может отображаться в процессе загрузки, то есть потоковые мультимедийные данные, переданные из потокового медиа-сервера, могут отображаться во время кэширования, сортировки, формирования кадров и записи в файл без необходимости повторного установления сеанса передачи для загрузки потоковых мультимедийных данных.
Шаг 102: передача клиентским терминалом в потоковый медиа-сервер команды воспроизведения протокола RTSP; с помощью команды воспроизведения протокола RTSP может быть также задана скорость передачи, с которой потоковому медиа-серверу требуется выполнять передачу потоковых мультимедийных данных в клиентский терминал.
Шаг 103: после передачи в клиентский терминал ответа на команду воспроизведения протокола RTSP передача потоковым медиа-сервером клиентскому терминалу потоковых мультимедийных данных исходного файла потоковых мультимедийных данных с помощью пакетов транспортного протокола реального времени (RTP) до полного завершения передачи исходного файла потоковых мультимедийных данных и передача в клиентский терминал уведомления о завершении передачи.
Если передача не прерывается, следует выполнение шагов 104-106 до получения уведомления о завершении передачи, после чего выполнение этого алгоритма завершается, или передача прерывается; в случае прерывания передачи следует выполнение шагов 107-113.
Шаг 104: прием и кэширование клиентским терминалом пакетов RTP, переносящих потоковые мультимедийные данные, передаваемые из потокового медиа-сервера.
При этом заголовок пакета RTP содержит следующие поля расширения: заголовок пакета RTP, переносящего данные I-кадров, содержит поле I_frame_indicator (индикатор I-кадра) для указания того, расположен ли пакет RTP в начале, середине или в конце I-кадра; поле PID для разделения видеоданных и звуковых данных; заголовок пакета RTP содержит поле payload_unit_start_indicator (указатель начала блока полезной нагрузки), указывающий на то, является ли пакет RTP началом кадра данных.
Шаг 105: сортировка кэшированных пакетов RTP и формирование из них кадров, включая следующие шаги:
a) сортировка кэшированных пакетов RTP; в данном случае сортировка выполняется во избежание нарушения порядка передачи, которое может повлиять на формирование кадров;
b) обнаружение первого пакета RTP, переносящего данные I-кадра, в последовательности пакетов RTP, полученных в результате сортировки, согласно полю I_frame_indicator пакетов RTP; отбрасывание пакетов RTP, расположенных перед упомянутым обнаруженным в последовательности пакетом RTP, отделение пакетов RTP, переносящих звуковые данные, от пакетов, переносящих видеоданные, согласно полю PID пакета RTP, начиная с упомянутого обнаруженного пакета RTP, и формирование кадров из пакетов RTP, переносящих звуковые данные и видеоданные, соответственно.
В данном случае указанное формирование кадров из пакетов RTP, переносящих звуковые данные и видеоданные, соответственно, включает выполнение следующих шагов:
обнаружение в последовательности пакетов RTP пакета RTP, переносящего видеоданные, в поле payload_unit_start_indicator которого записано значение 1 как пакета, в котором расположен заголовок кадра видеоданных, формирование кадра последовательности кадров из каждого пакета, в котором расположен заголовок кадра видеоданных, и из пакетов RTP, переносящих видеоданные, с удалением заголовка до появления следующего пакета, в котором расположен заголовок кадра видеоданных;
обнаружение в последовательности пакетов RTP пакета RTP, переносящего звуковые данные, в поле payload_unit_start_indicator которого записано значение 1 как пакета, в котором расположен заголовок кадра звуковых данных, формирование кадра последовательности кадров из каждого пакета, в котором расположен заголовок кадра звуковых данных, и из пакетов RTP, переносящих звуковые данные, с удалением заголовка до появления следующего пакета, в котором расположен заголовок кадра звуковых данных.
Шаг 106: формирование файла и запись сформированных кадров данных в сформированный файл.
Шаг 107: после прерывания передачи, сохранение клиентским терминалом временной отметки кадра данных, записанного в файл последним, и отбрасывание кэшированных пакетов RTP.
На шагах 105 и 106 потоковые мультимедийные данные последовательно записываются в файл, причем данные не записываются до тех пор, пока не сформирован кадр, что гарантирует то, что каждый кадр данных, записанный в файл, является завершенным; действия, выполняемые на шаге 107, гарантируют, что в случае прерывания передачи первый кадр данных, сохраненный в файле данных, также образует множество завершенных и последовательных кадров данных I-кадра, что обеспечивает нормальное отображение и устраняет такие проблемы, как мозаичность или прерывание вывода изображения из-за того, что первый кадр не является ключевым кадром. Таким образом, файл может корректно отображаться после прерывания передачи.
Шаг 108: инициирование клиентским терминалом запроса установления сеанса передачи потоковых мультимедийных данных путем передачи в потоковый медиа-сервер запроса описания контента протокола RTSP, содержащего URL-адрес исходного файла потоковых мультимедийных данных, передача которого была прервана.
Шаг 109: после установления сеанса передачи потоковых мультимедийных данных установка клиентским терминалом поля времени запроса в команде воспроизведения протокола RTSP, запись сохраненной временной отметки в поле времени запроса и передача команды воспроизведения протокола RTSP в потоковый медиа-сервер.
Если передача больше не прерывается, то следует выполнение шагов 111-113 до получения уведомления о завершении передачи (после чего выполнение этого алгоритма завершается) или до нового прерывания передачи; если передача вновь прерывается, происходит возврат к шагу 107 для возобновления передачи и выполнения текущих задач загрузки.
Шаг 110: прием потоковым медиа-сервером команды воспроизведения протокола RTSP и анализ поля времени запроса в этой команде для получения временной отметки, сохраненной клиентским терминалом, обнаружение потоковых мультимедийных данных, соответствующих временной отметке, и передача клиентскому терминалу в пакетах RTP потоковых мультимедийных данных, расположенных после указанных данных, то есть потоковых мультимедийных данных, передачу которых требуется возобновить.
Шаг 111: прием и кэширование клиентским терминалом пакетов RTP, переносящих потоковые мультимедийные данные, передаваемые из потокового медиа-сервера.
Шаг 112: выполнение клиентским терминалом сортировки кэшированных пакетов RTP и формирования из них кадров; конкретные шаги сортировки и формирования кадров совпадают с теми шагами, которые выполняются на шаге 105, и поэтому здесь повторно не описываются.
Шаг 113: запись сформированных кадров данных в файл, сформированный перед прерыванием передачи.
На шагах 107-113, выполняемых после прерывания передачи, сохраняют временную отметку кадра данных, записанного в файл последним, и осуществляют поиск точки прерывания в соответствии с сохраненной временной отметкой для определения, а затем возобновления передачи требуемых потоковых мультимедийных данных, так что загрузка исходного файла потоковых мультимедийных данных может быть завершена путем возобновления передачи с точки прерывания, после того как передача была прервана.
На шагах 101-113 после установления сеанса потоковой передачи посредством сигнализации между клиентским терминалом и потоковым медиа-сервером потоковый медиа-сервер передает потоковые мультимедийные данные в клиентский терминал, а клиентский терминал выполняет кэширование, сортировку потоковых мультимедийных данных, формирование из них кадров и записывает эти кадры в файл. Поскольку в алгоритме загрузки не используются такие протоколы, как FTP и HTTP, для загрузки потоковых мультимедийных данных не требуются другие серверы, кроме потокового медиа-сервера.
Способ загрузки потоковых мультимедийных данных в соответствии со вторым примером осуществления настоящего изобретения, алгоритм которого показан на фиг.2, включает следующие шаги.
Шаг 201: получение клиентским терминалом из потокового медиа-сервера URL-адреса исходного файла потоковых мультимедийных данных; передача в потоковый медиа-сервер запроса RTSP описания контента, содержащего URL-адрес; передача в потоковый медиа-сервер команды установки протокола RTSP после приема ответа на запрос описания контента RTSP; завершение установления сеанса передачи потоковых мультимедийных данных после приема ответа на команду установки протокола RTSP. Установление сеанса передачи потоковых мультимедийных данных соответствует стандартным требованиям протокола RTSP.
Шаг 202: установка клиентским терминалом поля времени запроса в команде воспроизведения протокола RTSP и запись в поле времени запроса времени начала и времени окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных, передача в потоковый медиа-сервер команды воспроизведения протокола RTSP, в которой на этом этапе также может быть задана скорость передачи, с которой потоковому медиа-серверу требуется передавать в клиентский терминал потоковые мультимедийные данные.
Шаг 203: прием потоковым медиа-сервером команды воспроизведения протокола RTSP, анализ поля времени запроса в этой команде для получения времени начала и времени окончания загрузки и поиск потоковых мультимедийных данных, соответствующих временному промежутку от времени начала до времени окончания, то есть потоковых мультимедийных данных выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных; после передачи клиентскому терминалу ответа на команду воспроизведения протокола RTSP передача клиентскому терминалу потоковых мультимедийных данных, соответствующих временному промежутку от времени начала до времени окончания, с помощью пакетов RTP до тех пор, пока клиентскому терминалу не будет передано уведомление о завершении передачи, когда завершится передача потоковых мультимедийных данных, соответствующих указанному промежутку времени.
На шагах 202 и 203 потоковый медиа-сервер путем установки поля времени запроса информируется о той части исходного файла потоковых мультимедийных данных, которая интересует пользователя, то есть о выбранном для загрузки фрагменте исходного файла потоковых мультимедийных данных, и этот сервер должен передавать потоковые мультимедийные данные выбранного для загрузки фрагмента таким образом, чтобы пользователь мог свободно выполнять загрузку потоковых мультимедийных данных, содержащихся в интересующем его фрагменте исходного файла.
Если передача не прерывается, следует выполнение шагов 204-206 до получения уведомления о завершении передачи, после чего выполнение этого алгоритма завершается; в случае прерывания передачи следует выполнение шагов 207-213.
Шаг 204: прием и кэширование клиентским терминалом пакетов RTP, переносящих потоковые мультимедийные данные, передаваемые из потокового медиа-сервера.
При этом заголовок пакета RTP содержит следующие поля расширения: заголовок пакета RTP, переносящего данные I-кадров, содержит поле I_frame_indicator (указатель I-кадра) для указания того, расположен ли пакет RTP в начале, середине или в конце I-кадра; заголовок пакета RTP, переносящего видеоданные, содержит поле video_PID для размещения значения PID видеоданных, заголовок пакета RTP, переносящего звуковые данные, содержит поле audio_PID для размещения значения PID звуковых данных; заголовок пакета RTP содержит поле payload_unit_start_indicator (указатель начала блока полезной нагрузки) для указания того, является ли пакет RTP началом кадра данных.
Шаг 205: сортировка кэшированных пакетов RTP и формирование из них кадров, включая следующие шаги:
a) сортировка кэшированных пакетов RTP; в данном случае сортировка выполняется во избежание нарушения порядка передачи, которое может повлиять на формирование кадров;
b) обнаружение первого пакета RTP, переносящего данные I-кадра, в последовательности пакетов RTP, полученной в результате сортировки, согласно полю I_frame_indicator пакетов RTP; отбрасывание пакетов RTP, расположенных перед упомянутым обнаруженным в последовательности пакетом RTP, отделение пакетов RTP, переносящих звуковые данные, от пакетов, переносящих видеоданные, согласно полю PID пакета RTP, начиная с упомянутого обнаруженного пакета RTP, и формирование кадров из пакетов RTP, переносящих звуковые данные и видеоданные, соответственно.
Указанное формирование кадров из пакетов RTP, переносящих звуковые данные и видеоданные, соответственно, включает выполнение следующих шагов:
обнаружение в последовательности пакетов RTP пакета RTP, переносящего видеоданные, в поле payload_unit_start_indicator которого записано значение 1 как пакета, в котором расположен заголовок кадра видеоданных, формирование кадра, помещаемого в последовательность кадров, из каждого пакета, в котором расположен заголовок кадра видеоданных, и из пакетов RTP, переносящих видеоданные, с удалением заголовка до появления следующего пакета, в котором расположен заголовок кадра видеоданных;
обнаружение в последовательности пакетов RTP пакета RTP, переносящего звуковые данные, в поле payload_unit_start_indicator которого записано значение 1 как пакета, в котором расположен заголовок кадра звуковых данных, формирование кадра, помещаемого в последовательность кадров, из каждого пакета, в котором расположен заголовок кадра звуковых данных, и из пакетов RTP, переносящих звуковые данные, с удалением заголовка до появления следующего пакета, в котором расположен заголовок кадра звуковых данных.
Шаг 206: формирование файла и запись сформированных кадров данных в сформированный файл.
Шаг 207: после прерывания передачи сохранение клиентским терминалом временной отметки кадра данных, записанного в файл последним, и отбрасывание кэшированных пакетов RTP.
На шагах 205 и 206 потоковые мультимедийные данные последовательно записываются в файл, причем данные не записываются до тех пор, пока не сформирован кадр, что гарантирует то, что каждый кадр данных, который записан в файл, является завершенным; действия, выполняемые на шаге 207, гарантируют, что в случае прерывания передачи первый кадр данных, сохраненный в файле, также образует множество завершенных и последовательных кадров данных I-кадра, что обеспечивает нормальное отображение, а также непрерывность и качество отображаемой информации, и позволяет устранить такие проблемы, как мозаичность или прерывание вывода изображения, так что файл может корректно отображаться после прерывания передачи.
Шаг 208: инициирование клиентским терминалом запроса установления сеанса передачи потоковых мультимедийных данных путем передачи в потоковый медиа-сервер запроса описания контента протокола RTSP, содержащего URL-адрес исходного файла потоковых мультимедийных данных, передача которого была прервана.
Шаг 209: после установления сеанса передачи потоковых мультимедийных данных запись клиентским терминалом в поле времени запроса, добавленное в команду воспроизведения протокола RTSP, сохраненной временной отметки в качестве времени начала возобновления передачи, запись в поле времени, содержащееся в запросе, времени окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных в качестве времени окончания возобновленной передачи и передача команды воспроизведения протокола RTSP в потоковый медиа-сервер.
Если передача больше не прерывается, то следует выполнение шагов 211-213 до получения уведомления о завершении передачи (после чего выполнение этого алгоритма завершается) или до нового прерывания передачи; если передача вновь прерывается, происходит возврат к шагу 207 для возобновления передачи и выполнения текущих задач загрузки.
Шаг 210: прием потоковым медиа-сервером команды воспроизведения протокола RTSP и анализ поля времени запроса в этой команде для получения временной отметки и значения времени окончания, сохраненных клиентским терминалом, обнаружение потоковых мультимедийных данных, соответствующих временному промежутку от временной отметки до времени окончания, и передача клиентскому терминалу с помощью пакетов RTP потоковых мультимедийных данных, соответствующих этому временному промежутку, то есть потоковых мультимедийных данных, передачу которых требуется возобновить.
Шаг 211: прием и кэширование клиентским терминалом пакетов RTP, переносящих потоковые мультимедийные данные, передаваемые из потокового медиа-сервера.
Шаг 212: выполнение клиентским терминалом сортировки кэшированных пакетов RTP и формирование из них кадров; конкретные процедуры сортировки и формирования кадров совпадают с теми, что выполняются на шаге 205, и поэтому здесь повторно не описываются.
Шаг 213: запись сформированных кадров данных в файл, сформированный перед прерыванием передачи.
На шагах 207-213, выполняемых после прерывания передачи, сохраняют временную отметку кадра данных, записанного в файл последним, осуществляют поиск точки прерывания в соответствии с сохраненной временной отметкой для определения начала потоковых мультимедийных данных, передачу которых требуется возобновить, и выполняют передачу этих данных таким образом, чтобы загрузка при возобновлении передачи исходного файла потоковых мультимедийных данных могла быть завершена путем возобновления передачи с точки прерывания, после того как передача была прервана.
На шагах 201-213 после установления сеанса потоковой передачи посредством обмена данными сигнализации между клиентским терминалом и потоковым медиа-сервером клиентский терминал информирует потоковый медиа-сервер о выбранном для загрузки фрагменте исходного файла потоковых мультимедийных данных, потоковый медиа-сервер передает в клиентский терминал потоковые мультимедийные данные выбранного для загрузки фрагмента, и клиентский терминал выполняет кэширование, сортировку потоковых мультимедийных данных, формирует из них кадры, а затем записывает эти кадры в файл. Поскольку в алгоритме выполнения загрузки не используются такие протоколы как FTP и HTTP, для загрузки потоковых мультимедийных данных не требуются другие серверы кроме потокового медиа-сервера.
В соответствии с третьим примером осуществления настоящего изобретения структура показанной на фиг.3 системы для загрузки потоковых мультимедийных данных включает:
потоковый медиа-сервер, используемый для передачи потоковых мультимедийных данных, переносимых с помощью пакетов RTP в сеансе передачи потоковых мультимедийных данных;
клиентский терминал, используемый для приема и кэширования пакетов RTP, сортировки кэшированных пакетов RTP и формирования из них кадров, а также для формирования файла и записи сформированных кадров данных в сформированный файл.
В этой системе потоковый медиа-сервер содержит:
первый блок анализа, используемый для обмена данными сигнализации с клиентским терминалом для установления сеанса передачи потоковых мультимедийных данных;
модуль передачи, используемый для получения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, и передачи полученных потоковых мультимедийных данных в клиентский терминал с помощью пакетов RTP.
Клиентский терминал также содержит:
первый блок генерирования сигнализации, используемый для обмена данными сигнализации с потоковым медиа-сервером для установления сеанса передачи потоковых мультимедийных данных;
блок приема, используемый для приема и кэширования пакетов RTP;
блок обработки, используемый для сортировки котированных пакетов RTP и формирования из них кадров, и
первый блок памяти, используемый для формирования файла и записи сформированных кадров данных в сформированный файл.
Клиентский терминал также содержит:
второй блок памяти, используемый для сохранения, в случае прерывания передачи, временной отметки кадра данных, записанного в файл последним, и
второй блок генерирования сигнализации, используемый для формирования и передачи команды воспроизведения протокола RTSP, содержащей сохраненную временную отметку, а также формирования и передачи команды воспроизведения протокола RTSP, содержащей время начала и время окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных.
Потоковый медиа-сервер также содержит:
второй блок анализа, используемый для анализа команды воспроизведения протокола RTSP, содержащей сохраненную временную отметку, для получения сохраненной временной отметки и для анализа команды воспроизведения протокола RTSP, содержащей время начала и время окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных, для получения времени начала и времени окончания этого выбранного фрагмента, и
блок идентификации данных, используемый для определения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, подлежащих передаче в соответствии с сохраненной временной отметкой, и для определения потоковых мультимедийных данных, запрашиваемых клиентским терминалом, подлежащих передаче в соответствии с временем начала и временем окончания выбранного для загрузки фрагмента исходного файла потоковых мультимедийных данных.
Данные, которые могут быть загружены с помощью способа и системы в соответствии с настоящим изобретением, не ограничены протоколами RTP/RTCP/UDP (User Datagram Protocol, протокол передачи дейтаграмм) и применимы в множестве сред передачи, например, в проводных и беспроводных сетях.
Выше были описаны только примеры предпочтительных вариантов осуществления настоящего изобретения, не ограничивающие изобретение.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
С помощью потокового медиа-сервера, клиентского терминала, способа и системы для загрузки потоковых мультимедийных данных в соответствии с настоящим изобретением потоковые мультимедийные данные последовательно записываются в файл, при этом запись не осуществляется до тех пор, пока не сформирован кадр, что гарантирует то, что каждый кадр данных, который записан в файл, является завершенным, и уже загруженные потоковые мультимедийные данные могут быть отображены, то есть гарантируются непрерывность и качество отображаемой информации, а также устраняются такие эффекты, как мозаичность или прерывание вывода изображения в случае прерывания загрузки. Настоящее изобретение также характеризуется следующими преимуществами и признаками:
1) настоящее изобретение позволяет выполнять загрузку исходного файла потоковых мультимедийных данных только через потоковый медиа-сервер без использования другого сервера, например FTP-сервера или HTTP-сервера;
2) согласно настоящему изобретению временная отметка кадра данных, записанного в файл последним, сохраняется после прерывания передачи, и потоковые мультимедийные данные, передачу которых требуется возобновить, определяются согласно сохраненной временной отметке, при этом возобновление передачи выполняется таким образом, что загрузка исходного файла потоковых мультимедийных данных может быть завершена путем возобновления передачи с точки прерывания, после того как передача была прервана;
3) согласно настоящему изобретению потоковый медиа-сервер информируется о той части исходного файла потоковых мультимедийных данных, которая интересует пользователя, путем установки поля времени запроса таким образом, чтобы пользователь мог свободно выполнять загрузку потоковых мультимедийных данных, содержащихся в интересующем его фрагменте исходного файла потоковых мультимедийных данных.