СПОСОБ ОПРЕДЕЛЕНИЯ МЕДИА ПОТОКОВ, ВЕЩАНИЕ КОТОРЫХ ОСУЩЕСТВЛЯЕТСЯ В МАСШТАБЕ РЕАЛЬНОГО ВРЕМЕНИ, И СИСТЕМА ДЛЯ РЕАЛИЗАЦИИ СПОСОБА
METHOD OF DETERMINING REAL-TIME BROADCAST MEDIA STREAMS AND SYSTEM THEREFOR

Область техники, к которой относится изобретение
Настоящее изобретение относится к компьютерным и сетевым технологиям, а именно, к технологиям, используемым для выявления аудио и/или видео потоков, вещание которых осуществляется в масштабе реального времени.
Предшествующий уровень техники
Из уровня техники известны технические решения, обеспечивающие выявление аудио и/или видео потоков, вещание которых осуществляется в масштабе реального времени. Выявление таких потоков может осуществляться в процессе Интернет-поиска ссылок на данные потоки, в том числе, с использованием поисковых роботов, или с использованием специализированных (так называемых вертикальных) поисковых систем, ориентированных на поиск по тематическим ресурсам Интернета, в которых предусмотрена возможность проверки ссылок на мультимедийные потоки на предмет их соответствия критерию «живого» потока. При этом в качестве объекта обработки, как правило, выступают Web-страницы Интернета. Результатом обработки является, обширный результирующий список Web-страниц с низким процентом релевантности на соответствие критерию «живой поток».
Из уровня техники известно решение, представленное в заявке на изобретение US 2003028896 - «Video and digital multimedia aggregator remote content crawler», в котором представлен способ проверки медиа контента как составной части более общей системы для поиска мультимедийных материалов. Для проверки контента используют процессор критериев проверки (контента), базу данных критериев проверки, процессор сбора метаданных. Проверка критериев может быть основана на типе контента, формате, и способе доставки. Процессор критериев может идентифицировать поисковые параметры посредством анализа и импорта метаданных стандартизированных и собственных форматов контента, парсинга имен полей метаданных, описательных терминов с последующим добавлением их в базу данных критериев. Процессор критериев может также идентифицировать критерии поиска обратным способом, анализируя гипертекст, связанный с требуемыми гиперссылками и анализируя текст, ближайший к гиперссылке.
Типы данных коптента, которые будут включены в базу данных, могут включать все доступные промышленные стандарты и собственные форматы подачи. Обработка критериев происходит в модуле проверки критериев, который определяет, удовлетворяет ли содержание гипертекстовых файлов условиям критериев проверки. Выполняется алгоритм сравнения, чтобы определить, содержат ли гипертекстовые файлы элементы, перечисленные в базе данных критериев, такие как ключевые слова, описания типа данных, и дескрипторы метаданных. Сбор метаданных может быть выполнен несколькими способами, включая передачу или загрузку всех, или части файлов, и анализа файловой структуры для известных полевых дескрипторов метаданных и содержания полей.
Однако известное решение не ориентировано на определение живых потоков. Определение потоков подобного рода происходит исключительно по ограниченному набору ключевых элементов (слов), поиск которых осуществляется в гипертекстовых файлах. В случае если в гипертекстовом файле отсутствуют ключевые элементы из известного набора, тип потока не будет определен.
Из уровня техники известно также решение, представленное в заявке на изобретение US 2009216758 «Method and apparatus for an application crawler», в котором представлены способ и устройство для поиска видеофайлов и извлечения подробной информации из веб-страниц и веб-приложений. С помощью данного изобретения осуществляют проверку функционирующего приложения. Поисковый робот, может загрузить и инсталлировать компоненты так, что веб-приложение будет представлено тем же самым способом, что было бы создано в браузере. Метод может включать инсталлирование видеофайлов, видеопотоков. Поисковый робот приложения может индексировать контент, используя многочисленные поля метаданных. В одном из вариантов исполнения изобретения поисковый робот приложения может достигнуть видео потока или видеоплеера и «вытащить» соответствующие данные.
Однако для поиска медиа потоков необходима инсталляция приложения с веб-страницы. При этом индексация контента происходит после инсталляции контента и анализа метаданных. Таким образом, в известном техническом решении идет процесс, «обратный» процессу, представленному в заявляемом техническом решении, в котором вывод о содержимом контента - «живой» поток или нет, делают на основе анализа метаданных. Кроме того, данное изобретение не ориентированно на выявление аудио и видео источников, вещание которых осуществляется в масштабе реального времени.
Изобретение позволяет находить на веб-страницах аудио или видео файл и определять их описание и технические характеристики.
Наиболее близким к заявляемому решению является способ определения медиа потоков, вещание которых осуществляется в масштабе реального времени, н система для реализации способа, представленные в контексте описания технологии Интернет-поиска мультимедийного контента реального времени (RU 2399090 (С2); МПК: G06F 17/30). Способ содержит этапы, на которых: А) заранее задают в поисковой системе расширяемый и модифицируемый набор признаков наличия на Web-страницах вещания AV контента реального времени; В) осуществляют анализ загруженной Web-страницы на предмет присутствия в ней признаков, свидетельствующих о наличии на данной Web-странице вещания AV контента реального времени, из упомянутого их набора; С) если такие признаки выявлены в Web-странице при анализе, сохраняют адрес данной Web-страницы в базе данных из состава поисковой системы. Если же на этапе С) такие признаки не выявлены, то переходят на этап D), на котором загружают новую Web-страницу и повторяют в отношении нее этапы В) и С). При этом этап В) осуществляют посредством разбора текстового содержимого файлов Web-страницы сначала на предмет обнаружения в нем по меньшей мере одного признака, указывающего на средство или технологию воспроизведения AV контента, и затем, при успешном обнаружении, на предмет присутствия в нем по меньшей мере одного признака, указывающего на то, что воспроизводимый AV контент является именно AV контентом реального времени. Признак может представлять собой некоторой символ или набор символов. В частности, признак может представлять собой элемент разметки Web-страницы, такой как тег, параметр или атрибут.
В материалах описания данного изобретения (RU 2399090) также предоставлена компьютерно-реализуемая поисковая система, включающая модуль поиска признаков, выполненный с возможностью анализа загруженной Web-страницы на предмет присутствия в ней признаков, свидетельствующих о наличии на данной Web-странице вещания AV контента реального времени, из упомянутого их набора; базу данных, приспособленную для сохранения адресов Web-страниц, в которых модулем поиска признаков по результатам анализа установлено наличие вещания AV контента реального времени.
В техническом решении по патенту RU 2399090 в процессе поиска ссылок на мультимедийные потоки предусмотрена возможность проверки данных ссылок на предмет их соответствия критерию «живой» поток. При этом в качестве объекта обработки выступают Web-страницы Интернета. В данном техническом решении не предусмотрена возможность подключения непосредственно к серверу по ссылке для получения результирующего списка ссылок с высоким процентом релевантности на соответствие критерию «живой поток». Таким образом, набор ссылок, предоставляемый конечному пользователю, в большинстве своем, включает ссылки, находящиеся в «выключенном» состоянии или представляющие собой статические файлы фиксированной продолжительности, т.е. не удовлетворяющие критерию «живого» потока.
Сущность изобретения
Задачей настоящего изобретения является создание системы и способа, обеспечивающих выявление аудио, видео потоков, вещание которых осуществляется в масштабе реального времени, или, иными словами, так называемое «живое» вещание.
Техническим результатом изобретения является повышение достоверности определения из массива медиа потоков таких потоков, вещание которых осуществляется в масштабе реального времени за счет использования определенных критериев проверки ссылок и последовательности их применения.
Актуальность решения поставленной задачи обусловлена все возрастающим количеством Интернет-ресурсов, где осуществляется «живое» вещание, и потребностью пользователей при поиске аудио или видео контента реального времени в получении ссылок на мультимедийные потоки с высокой степенью достоверности, удовлетворяющих критерию «живой» поток, не затрачивая при этом значительного времени на перебор и проверку больших объемов не относящейся к делу информации.
Поставленная задача решается тем, что способ определения медиа потоков, вещание которых осуществляется в масштабе реального времени, включает следующие этапы:
- подключение к медиа серверу по сетевой ссылке,
- получение (загрузку) от медиа сервера информации о медиа потоке, включающей характеристики потока в заданном формате и/или часть потока, предназначенную для воспроизведения на клиентской стороне,
- анализ полученной информации о медиа потоке, заключающийся в поиске признаков, свидетельствующих о том, что анализируемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени,
при этом в качестве признаков используют любую последовательность символов и/или байт в медиа потоке, на основе которых делают вывод о том, что медиа поток соответствует критерию «живой» поток.
В качестве информации о медиа потоке дополнительно могут быть использованы заголовки протокола.
При получении от сервера последовательности байт, их анализ осуществляют в непрерывном режиме до получения данных, предназначенных непосредственно для воспроизведения, и при получении сообщения с информацией о том, что поток является записанным, делают вывод о том, что проверяемый поток не является источником мультимедиа, вещание которого осуществляется в масштабе реального времени.
В качестве признаков могут быть использованы:
- параметр, характеризующий продолжительность потока (Duration), и/или
- параметр, характеризующий позицию, с которой начинается воспроизведение в потоке (Start Time) и/или
- параметр возможности перемотки в рамках передаваемого потока (Seekable). В случае, если значение параметра, характеризующего продолжительность потока (Duration), является отрицательным или нулевым, или больше заданного предела, осуществляют анализ значения параметра возможности перемотки в рамках передаваемого потока (Seekable), в случае, если он указывает на запрет перемотки в потоке, делают вывод о том, что анализируемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени.
В случае, если значение параметра, характеризующего продолжительность потока (Duration), находится в интервале от нуля до заданного предела, осуществляют повторное подключение к медиа серверу и определение значений данного параметра и параметра, характеризующего позицию, с которой начинается воспроизведение (Start Time), которые сравнивают со значениями аналогичных параметров, полученных при первоначальном подключении, и в случае не совпадения хотя бы одного из значений параметров делают вывод о том, что анализируемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени; в случае если значения параметров совпадают, осуществляют поиск признаков мультимедийного потока в заголовках ответа сервера, при обнаружении которых делают вывод о том, что проверяемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени.
Установленный предел значений параметра, характеризующего продолжительность потока, подобран экспериментально и может находиться в интервале значений от 5 до 9 часов.
В случае если от сервера не получены значения параметров продолжительности потока и/или позиции воспроизведения, делают вывод о том, что проверяемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени.
Поставленная задача также решается тем, что система для определения медиа потоков, вещание которых осуществляется в масштабе реального времени включает:
- мультимедийный клиент, выполненный с возможностью подключения к медиа серверу по ссылке и загрузки информации о медиа потоке, включающей характеристики потока в заданном формате и/или определенной части потока, предназначенной для воспроизведения на клиентской стороне и/или информации о заголовках протоколов, полученных от сервера,
- блок анализа информации о медиа потоке,
при этом блок анализа информации выполнен с возможностью проверки полученной информации о медиа потоке, заключающейся в поиске признаков, свидетельствующих о том, что анализируемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени, где в качестве признаков использована любая последовательность символов или байт в медиа потоке, на основе которых делают вывод о том, что медиа поток соответствует критерию «живой» поток.
В качестве мультимедийного клиента могут быть использованы такие приложения как MPlayer или VLC media player, а так же любой другой продукт, в том числе самостоятельно разработанный мультимедийный клиент, выполненный с возможностью коммуникации, обработки и предоставления необходимой информации. Блок анализа информации выполнен с возможностью реализации алгоритма способа, представленного выше.
Таким образом, технология определения типа потока, является ли он потоком реального времени или статическим файлом фиксированной продолжительности, заключается в анализе метаинформации, получаемой из самого медиа потока. Медиа клиент подключается к медиа серверу, после чего получает от него метаинформацию о потоке в заданном формате, а также определенную часть потока, предназначенную для воспроизведения на клиентской стороне. Полученная метаинформация, а также переданный буфер медиа потока, проходят стадию проверки с целью определения типа потока. Основная цель проверки заключается в анализе данных и поиске признаков, свидетельствующих о том, что анализируемый поток является источником мультимедиа, вещание которого осуществляется в масштабе реального времени.
Характерной чертой «живого» потока (контента) является невозможность выполнения в отношении него «перемотки вперед» с помощью средств клиентского воспроизводящего приложения. Типичными примерами «живого» AV контента в Интернете являются телевизионное (ТВ) и радиовещание эфирных студий, специальное Интернет-вещание профессиональных и любительских студий, изображение с Веб-камеры потокового вещания.
Описание чертежей
Изобретение поясняется чертежами.
На фиг.1 представлена схематическая иллюстрация структуры и работы поисковой системы со встроенным блоком 5 определения типа потока, включающим модуль определения медиа потоков, вещание которых осуществляется в масштабе реального времени (модуль определения «живых потоков» 14), реализованный согласно настоящему изобретению. На фиг.1 представлена высокоуровневая архитектура поисковой системы. Позициями на фиг.1 обозначены:
1 - поисковая система источников аудио, видео реального времени,
2 - модуль поисковой системы ссылок на потоки (функции модуля аналогичны функциям поисковых роботов аналогичных вертикальных поисковых систем),
3 - база данных поисковой системы, которая используется модулем поисковой системы ссылок на потоки,
4 - база данных не проверенных потоков, которая формируется модулем поисковой системы ссылок на потоки,
5 - блок определения типа потока, который содержит модуль 14, относящийся к настоящему изобретению,
6 - база данных потоков реального времени,
7 - модуль обработки поисковых запросов,
8 - веб-сервер,
9 - подключение к сети Интернет.
На фиг 2. представлена схематическая структура работы блока 5 определения типа потока со встроенным модулем 14 согласно настоящему изобретению, где
10 - модуль определения типа медиа данных по ссылке,
11 - модуль определения мультимедийных контейнеров, в котором определяется тип данных, на которые указывает медиа ссылка,
12 - модуль анализа и извлечения данных из контейнера,
13 - мультимедийный клиент,
14 - модуль определения «живых» потоков, реализованный согласно заявляемому изобретению.
На фиг.3 представлена блок-схема последовательности операций предпочтительного варианта осуществления способа, согласно настоящему изобретению.
Подробное описание изобретения.
Заявляемое изобретение позволяет проводить проверку найденных в процессе Интернет - поиска ссылок на мультимедийные потоки таких потоков, вещание которых осуществляется в масштабе реального времени.
Ниже представлено подробное описание заявляемого изобретения, реализованного в модуле 14 фиг.2, в контексте работы поисковой системы фиг.1. При этом наилучший вариант реализации алгоритма работы заявляемого модуля подробно представлен на фиг.3.
Поисковая система 1 (см. фиг.1) предоставляет пользователю инструмент поиска ссылок на потоки, вещание которых осуществляется в масштабе реального времени, посредством Веб-сервера 8. Перед тем как предоставить конечному пользователю ссылку на мультимедийный поток, осуществляют проверку типа потока через блок 5 определения типа потока. Поток, на который указывает ссылка, должен находиться в вещающем (включенном) состоянии и соответствовать критерию «живого» потока, то есть, вещание которого должно осуществляться в режиме реального времени. Проверка осуществляется с помощью заявляемой системы (модуля 14), которую содержит блок 5. При этом в блок определения типа потока 5 попадают ссылки из БД не проверенных потоков 4, сформированной по итогам поиска поисковыми роботами посредством модуля поисковой системы ссылок на потоки 2, в которую поступают данные из БД поисковой системы 3. Функции модуля 2 аналогичны функциям поисковых роботов вертикальных поисковых машин. Переданная блоку 5 ссылка подвергается анализу. Если проанализированная ссылка указывает на источник мультимедиа, вещание которого осуществляется в режиме реального времени, тогда она сохраняется в БД потоков реального времени 6. Модуль 2 и модуль 5 подключены к сети Интернет 9 для осуществления коммуникаций. Веб-сервер 8 также выполнен с возможностью подключения к сети Интернет 9 с целью предоставления пользователю интерфейса для осуществления поисковых запросов.
Далее представлено подробное описание принципа работы блока определения типа потока 5 (см. фиг.2) со встроенным модулем 14, в котором реализовано заявляемое изобретение.
При реализации изобретения на вход блока 5 поступает ссылка, указывающая на поток воспроизведения любого из существующих форматов аудио, видео из базы данных 4 не проверенных потоков, при этом передача мультимедийных данных по ссылке может осуществляться по любому из известных открытых, а также закрытых протоколов. Модуль 10 определения типа медиа данных по ссылке определяет схему протокола и расширение контента, на который указывает ссылка. Примером таких ссылок могут служить ссылки на потоковое воспроизведение данных по протоколу (схеме) RTSP, HTTP, MMS, RTMP и другим общеизвестным или закрытым протоколам передачи мультимедийных данных по сети. Проанализировав ссылку в модуле 10, данные передаются модулю определения мультимедийных контейнеров 11, целью которого является определения данных, возвращаемых по ссылке при первичном запросе. Мультимедийная ссылка может указывать на поток воспроизведения, или же на мультимедийный контейнер, или плейлист. Если возвращаемыми данными является контейнер или плейлист, в таком случае модуль 11 определит тип контейнера и передаст его содержимое модулю анализа и извлечения данных из контейнера 12. Любой из загруженных мультимедийных контейнеров подвергается анализу. В зависимости от типа контейнера из него может быть извлечена следующая информация:
- Ссылки на потоки;
- Метаинформация;
- Описание потока, которое может включать в себя:
- Информацию об авторе,
- Оглавление потока,
- Ссылку на сайт правообладателя,
- Копирайт,
- и т.д.
Ссылка, извлеченная из контейнера или плейлиста, передается модулем 12 в модуль определения типа медиа данных 10. Подобная итеративная процедура повторяется до тех пор, пока модуль определения мультимедийных контейнеров 11 не получит прямую ссылку на мультимедийный поток, после чего данная ссылка будет передана мультимедийному клиенту 13. Модуль 13 подключается к серверу по указанному адресу с целью получения метаинформации о потоке, а также самого мультимедийного потока(ов). Передаваемый от сервера поток «разбирается» в модуле 13 в соответствии с правилами, установленными для проверяемого формата потока. Примерами таких форматов могут служить такие форматы потоковой передачи данных как asf, ogg, mpeg-ts и другие известные, а также закрытые форматы передачи мультимедийных данных. Далее модуль 13 определяет характеристики потока из передаваемых данных, такими характеристиками, например, могут являться продолжительность потока, позиция в потоке с которой следует начать воспроизведение, формат аудио и (или) видео потока, битрейт аудио и (или) видео потока, количество сменяемых кадров за единицу времени в видео потоке (FPS), кодеки, необходимые для воспроизведения аудио и (или) видео данных и другие передаваемые характеристики потока. Собранная информация мультимедийным клиентом 13 передается в модуль определения «живых» потоков 14 для анализа. Передаваемые данные включают в себя все заголовки протокола, полученные от сервера, полученную метаинформацию о характеристиках потока(ов) и буферы, предназначенные непосредственно для воспроизведения. Целью анализа является поиск признаков, явно или не явно указывающих на тип потока. В качестве признака может выступать любая последовательность символов или байт в медиа потоке, на основе которых может быть сделано заключение о том, что медиа поток является источником мультимедиа, вещание которого осуществляется в реальном времени. Характерными признаками, как в отдельности, так и в совокупности могу быть такие характеристики, как продолжительность потока, начало воспроизведения потока, отдельные значения в заголовках протокола, или же отдельные байты, передаваемые в виде информационных флагов в момент установки медиа сессии с сервером, а также байты, или их последовательность, передаваемые в самом медиа потоке. Схематическая последовательность реализуемых действий определена в блок-схеме фиг.3. Описание действий в соответствии с данной блок-схемой отображено в примерах конкретного выполнения. После анализа данных модуль определения «живых» потоков 14 определяет тип потока:
- Мультимедийный поток, вещание которого осуществляется в режиме реального времени;
- Статический файл конечной продолжительности;
- Ссылка не является мультимедийным источником аудио или видео.
Ссылки, относящиеся к типу мультимедийных ссылок, вещание которых осуществляется в режиме реального времени, сохраняются модулем 5 в базу данных потоков реального времени 6 и становятся доступными для поиска через поисковый сервис.
Таким образом, заявляемая в качестве изобретения система, содержит мультимедийный клиент 13, выполненный с возможностью подключения к медиа серверу по ссылке и загрузки информации о медиа потоке, включающей характеристики потока в заданном формате и/или определенной части потока, предназначенной для воспроизведения на клиентской стороне и/или заголовках протоколов, полученных от медиа сервера, и блок анализа информации о медиа потоке, реализованный в примерах на фиг.1-3 в виде модуля определения «живых» потоков 14. При этом блок анализа информации о медиа потоке выполнен с возможностью реализации заявляемого способа.
Ниже представлено описание наилучшего варианта реализации изобретения по алгоритму фиг.3.
Блоку определения типа потока 5 передается ссылка на мультимедийные данные. Происходит определение протокола и способа коммуникации с медиа сервером. Далее система пытается подключиться к серверу. Если сервер не доступен или соединение по каким-то причинам не возможно, для анализа берется новая ссылка. В случае успешного подключения, в зависимости от используемого протокола передачи данных, происходит определение способа анализа передаваемой от сервера информации с целью определения типа потока. В зависимости от способа передачи данных могут быть использованы два аналитических подхода, первый из которых основан на анализе характеристик потока(ов), второй аналитический подход включает анализ битовых сообщений сервера.
Характеристиками потока(ов) являются информационные данные, передаваемые в самом потоке. Такими характеристиками, как правило, являются показатели битрейта аудио/видео потока, кодеки, необходимые для воспроизведения потока(ов), продолжительность потока, позиция с которой следует начать воспроизведение, возможность перемотки в потоке и т.д. Для анализа в примере, представленном на фиг.3, использованы следующие параметры:
Duration - продолжительность потока;
Start Time - позиция, с которой начинается воспроизведение;
Seekable - возможность перемотки в рамках передаваемого потока.
В начале, система анализирует значение параметра Duration. Если его значение меньше или равно нулю или его значение больше установленного предела, где значение предела меняется в зависимости от ситуаций, как правило, находится в интервале значений от 5 до 9 часов, тогда происходит проверка параметра Seekable. Если значение параметра Seekable свидетельсвует о том, что перемотка в потоке запрещена, считают анализируемый поток источником мультимедиа реального времени, в противном случае файлом фиксированной продолжительности.
При проверке параметра Duration, его значение могло быть больше нуля, но меньше установленного предела, в таком случае система делает вывод о том, что проверяемая медиа ссылка воспроизводит файл фиксированной длины. Для подтверждения этой установки, системой будет сделано повторное подключение к медиа серверу с целью определения характеристик и сравнения их с характеристиками первого запроса. На этом этапе проверяется изменение параметров Duration и Start Time, полученных после первого и второго подключения к медиа серверу. Если изменился параметр Start Time, это означает, что после повторного запроса сервер сдвинул позицию воспроизведения. Такие изменения указывают на то, что медиа сервер изменил воспроизводимые данные не зависимо от того просматривался поток или нет. При этом так же отслеживаются изменения параметра Duration, так как может измениться сам буфер воспроизведения и, как следствие, его продолжительность. Подобные изменения говорят о том, что воспроизводимый поток является источником мультимедиа реального времени. Если же при повторном запросе значения параметров Duration и Start Time остаются без изменений, начинают анализировать заголовки ответа сервера. Целью анализа заголовков является поиск косвенных признаков. Примером косвенного признака может служить значение заголовка Pragma=features="broadcast", а так же другие косвенные признаки. Если косвенные признаки найдены, считают ссылку на поток источником мультимедиа реального времени. В противном случае, считают воспроизводимый поток ссылкой на файл фиксированной длины.
Второй аналитический подход включает анализ битовых сообщений сервера. Система подключается к серверу в соответствии с установленными правилами и запрашивает необходимый поток на воспроизведение. Сервер начинает отдачу потока, сообщая его характеристики (пример характеристик приведен выше). Попутно с характеристиками от сервера идут, так называемые, информационные сообщения, представленные определенной последовательностью байт. Каждое из передаваемых сообщений имеет свое значение. Модуль 13 принимает все сообщения до тех пор, пока от сервера не начинают приходить буферы потока(ов), предназначенные непосредственно для воспроизведения. Из всех передаваемых данных от сервера мультимедийный клиент ожидает сообщение с информацией о том, что поток является записанным «Stream Is Recorded». Если данное сообщение получено, делают вывод о том, что данный поток является файлом фиксированной длины, если же данного сообщения не было получено, данный поток считают источником мультимедиа реального времени.
Ниже представлены конкретные примеры анализа и определения типа потока.
Пример 1.
На вход блока определения типа потока была получена медиа ссылка следующего формата http://Reference_l?MSWMExt=.asf (URL). После подключения к серверу, загрузки передаваемой от сервера информации и определения характеристик, на выходе была получена структура с переменным набором характеристик (см. таблицу №1)
Таблица №1.
Характеристики потока.
Характеристики потока
Значение
Duration (продолжительность потока)
0.00
Start Time (время начала воспроизведения)
4041177.35
Seekable (возможность перемотки в рамках передаваемого потока, принимает два значения, ноль - перемотка запрещена, единица - разрешена)
0
Demuxer (формат передаваемых данных)
Asf
Video Format (формат видео)
WMV3
Video Bitrate (видео битрейт)
354000
Video Width (ширина видео кадра)
320
Video Height (высота видео кадра)
240
Video Fps (количество сменяемых кадров за единицу времени)
1000.000
Video Aspect (соотношение сторон видео)
0.0000
Video Codec (видео кодек)
ffwmv3
Audio Format (аудио формат)
353
Audio Bitrate (аудио битрейт)
32048
Audio Rate (частота звука)
44100
Audio Codec (аудио кодет)
ffwmav2
Данная структура была передана модулю определения «живых» потоков. Совместно с характеристиками из таблицы №1, данному модулю также были переданы заголовки протокола, по которому осуществлялась коммуникация с медиа сервером (см. таблицу №2).
Таблица №2.
Заголовки протокола.
Заголовки протокола
Значение
Content-Type (формат и способ предоставления сущности)
video/x-ms-asf
Cache-Control (директива для управления кэшированием)
max-age=0, no-cache
Server (Список названий и версий веб-сервера)
Cougar/9.01.01.3841
Date (Дата генерации отклика)
Fri, 16 Nov 2012 11:36:36 GMT
Pragma (Особенные опции выполнения операции)
no-cache, xResetStrm=l
В данном случае сначала системой рассмотрены характеристики потока, изначально проанализированы параметры, связанные с продолжительностью потока и позицией, относительно которой начинается воспроизведение медиа потока. Поскольку медиа сервер указал, что продолжительность потока равна нулю, а позиция, с которой воспроизводится поток, при этом начинается с сорок шестого дня, модуль определения «живых» потоков сделал вывод о том, что данный поток является потоком, вещание которого осуществляется в реальном времени.
Duration=0.00
Start Time=4041177.35 (4041177.35/86400=46.8 дней, где 86400 количество секунд в сутках)
При этом стоит учитывать, что сервер мог не сообщить значение продолжительности потока, что автоматически присваивает данному параметру нулевое значение, соответственно, если сервер не сообщил позицию воспроизведения, он так же приравнивается нулю.
Пример 2.
В рамках настоящего примера представлено три варианта реализации изобретения с измененными значениями параметра Duration при сохранении всех остальных значений параметров Примера 1. Для всех вариантов также можно сделать вывод о том, что поток является источником мультимедиа реального времени, если продолжительность потока задана достаточно большим интервалом или отрицательной величиной, что явно указывает в рамках одного признака на то, что данный поток является потоком реального времени. В таблице №3, приведены варианты значений продолжительности потока, которые явно указывают на его принадлежность к потокам реального времени.
Таблица №3.
Варианты значения продолжительности потока, указывающие на вещание потока в реальном времени.
Характеристики потока
Значение
Комментарий
Duration (продолжительность потока)
-0.01
Отрицательное значение (величина может быть любой) указывает, что продолжительность данного потока не определена.
Duration (продолжительность потока)
0
Так же не определена продолжительность потока.
Duration (продолжительность потока)
1844674407368.96
Значение соответствует 5 849 424 годам, что явно подтверждает, что продолжительность потока не определена.
Пример №3
Этап получения и обработки данных в данном случае полностью аналогичен примеру №1. Так же загружаются данные, формируется структура с характеристиками потока и данные передаются модулю определения «живых» потоков для анализа. Модуль анализирует продолжительность потока и позицию воспроизведения (см. таблицу №4). В момент анализа модуль посчитал, что продолжительность является достаточно маленькой величиной, что явно указывает на то, что данный поток является файлом с фиксированной продолжительностью.
Таблица №4.
Краткий список характеристик потока для первого соединения.
Характеристики потока
Значение
Duration (продолжительность потока)
1230.26
Start Time (время начала воспроизведения)
7.41
Все остальные характеристики потока…
В случае получения подобных данных (короткая продолжительность) от сервера, модуль делает повторное подключение через небольшой интервал времени (от секунды до трех). После повторного подключения были получены характеристики продолжительности и позиции воспроизведения (см. таблицу№5). Новые характеристики сравнивались с данными, полученными при первом подключении.
Таблица №5.
Краткий список характеристик потока для второго соединения.
Характеристики потока
Значение
Duration (продолжительность потока)
1230.26
Start Time (время начала воспроизведения)
11.78
Все остальные характеристики потока…
При этом обнаружено что, при повторном соединении изменилась позиция воспроизведения в потоке. Для модуля это означает, что сервер передает трафик небольшими буферами переменной длины, при этом, указывая с какой позиции в буфере следует начать воспроизведение. В некоторых случаях при повторном обращении может быть получен новый размер продолжительности (Duration), подобная ситуация возникает в том случае, если при первичном обращении позиция воспроизведения находилась в конце буфера (см., например, таблицу №6).
Таблица №6.
Изменение продолжительности при повторном запросе.
Первый запрос
Duration (продолжительность потока)
1230.26
Start Time (время начала воспроизведения)
1227.03
Все остальные характеристики потока…
Второй запрос
Duration (продолжительность потока)
1573.15
Start Time (время начала воспроизведения)
2.00
Все остальные характеристики потока…
Основной сутью повторного запроса является определение изменений в характеристиках потока. Если при втором запросе изменяется продолжительность и (или) позиция, с которой надо начинать воспроизведение, модуль считает данный поток источником мультимедиа реального времени.
Пример №4.
Для различных видов протоколов используется разный подход с целью определения типа потока, например в случае подключения к потоку по протоколу RTMP в момент так называемого «рукопожатия», клиент отправляет запрос на воспроизведение конкретного потока, после чего сервер отправляет клиенту определенный набор метаинформации с характеристиками потока и сообщений о статусе обработки запроса. В случае с протоколом RTMP для файлов конечной длины сервер передает сообщение «Stream Is Recorded». Если такое сообщение получено, тогда поток считается файлом, если такое сообщение не получено, поток считает источником мультимедиа реального времени.
Пример №5
В некоторых случаях, проанализировав полученные характеристики потока, а так же сам буфер для воспроизведения, не получается определить тип потока. В таких случаях анализируют различные косвенные признаки, полученные от медиа сервера. Модулем просматриваются заголовки протокола, переделанные серверам (заголовки ответа см. Таблицу №7).
Таблица №7.
Заголовки HTTP ответа.
Заголовки протокола
Значение
Cache-Control (директива для управления кэшированием)
no-cache
Content-Type (формат и способ предоставления сущности)
application/octet-stream
Pragma (Особенные опции выполнения операции)
no-cache
Pragma (Особенные опции выполнения операции)
client-id=29827
Pragma (Особенные опции выполнения операции)
features="broad cast"
Server (Список названий и версий веб-сервера)
Cougar 4.1.0.3921
В данном примере, медиа сервер указал через особенные опции выполнения операции, что трансляция является broadcast (широковещательной). Используя вышеуказанную директиву, модуль определения «живых» потоков посчитает данный поток источником мультимедиа реального времени.