доклад "Использование технологий Windows Media" для Izhevsk .NET User Group

Обсуждаем разработку программного обеспечения

Сообщение vva » 28 янв 2009, 12:59

собственно сама встреча:

http://izhevsk.ineta.ru/Events/EventMul ... 1bfb982bdf
Вложения
doklad_evm_pub_text.zip
(1.39 MiB) Скачиваний: 196
dokla_evm_presentation1.ppt
(1.01 MiB) Скачиваний: 197
dokla_evm_presentation2.ppt
(1.34 MiB) Скачиваний: 160
dokla_evm_presentation3.ppt
(1.21 MiB) Скачиваний: 157
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:23

Докладчики: Константин Краснопёров, Максим Киршин, Виктор Вагин

Около полугода назад мы приступили к реализации большого проекта в котором предполагалось изначально использовать по максимуму увязанные друг с другом механизмы:
Microsoft Windows Media Encoder для приёма медиаданных в систему. ( http://www.microsoft.com/windows/window ... fault.mspx )
Microsoft Windows Media Services для доставки медиаданных до конечных потребителей а также для записи. ( http://www.microsoft.com/windows/window ... erver.aspx )
Microsoft Windows Media Player – для воспроизведения медиаданных
( http://www.microsoft.com/windows/window ... fault.aspx )
Microsoft Direct Show – для преобразования данных из различных форматов
(http://en.wikipedia.org/wiki/DirectShow )
На данный момент проект находится на стадии развёртывания и внедрения.

Постановка задачи.

Заказчиком выступает федеральный ВУЗ спортивной направленности.

У заказчика имеется:
• Подключение к телеканалам (в том числе спутниковым)
• Внутренняя «локальная» корпоративная сеть, которой пользуются студенты и преподаватели в учебном и научном процессе
• Видеокамеры для съёмок тренировок, соревнований, и прочих мероприятий.
• В коридорах, в холлах, столовых и других местах плазменные экраны с плеерами на базе PC и выходом в локальную сеть.

Заказчик хочет:
• связать всё это хозяйство воедино, чтобы им можно было управлять из одного места
• Создать общую медиатеку, в которой пользователи могли бы добавлять медиаданные, просматривать и обмениваться ими, заказывать запись теле-передач или просматривать имеющиеся телеканалы, транслировать или записывать в медиатеку съёмку с камер
• Формировать на основе имеющихся телеканалов или прямых трансляций а также файлов медиатеки программы трансляции для плазменных панелей и доставлять их на плазменные панели используя tcp-ip сеть.

WMEncoder-ы на входе

В качестве основного компонента для приёма медиаданных из любых внешних источников используется Windows Media Encoder.

Это средство преобразует данные в вид, родной и понятный другим компонентам серии Windows Media (wm9). Также он может:
1. Менять степень сжатия
2. Менять разрешение (размер кадра)
3. Вырезять прямоугольную часть из входных кадров (Crop)
4. Менять соотношение размеров пикселов (Pixel aspect ratio)
5. Добавлять к выходным файлам мета информацию (название, описание, авторов и т.п.)
6. Накладывать водяные знаки (watermarks) и добавлять информацию для управления цифровыми правами доступа (DRM)
7. Выполнять преобразования, задаваемые plugin ами
8. Другие специфичные действия

WMEncoder может запускаться:
1. Как консольное приложение из командной строки,
2. Как программа с удобным пользовательским графическим интерфейсом (GUI).
3. Использоваться как COM объект или полноценный .NET компонент из других программ.
( ms-help://MS.MSDNQTR.v90.en/wmencode/htm/iwmencoderinterface.htm )


В нашем случае в общей системе заказчик выделил 30 серверов предназначенных для ввода данных в систему, с набором источников в виде подключённых tv-tuner ов, карт управления спутниковой тарелкой, видеокамерами и т.п.
Для управления экземплярами WMEncoder был написан специальный сервис доступный через Web-интерфейс. Сервисом решаются задачи:
• запись \ преобразование "живого" потока с устройств или из файлов, с нужным качеством.
• передача данных далее в систему
• мониторинг работы сервера и выполнения отдельных задач
• управление процессом записи, остановка по требованию, отложенный старт и тд
На каждом сервере можно запустить несколько экземпляров кодировщика. Агент кодирования на каждом сервере записи создаёт и управляет экземплярами WMEncoder через COM интерфейс.

Входная информация для encoder ов

С помощью кодировщика Windows Media можно выполнять кодирование живого потока в реальном времени, файлов или делать снимки экрана. Источниками содержимого в реальном времени являются все устройства аудио и видео захвата. Можно также вести съемку экранов непосредственно с рабочего стола , а так же вставлять команды сценария во время кодирования.
Следует иметь в виду, что качество содержимого на выходе зависит от исходного содержимого. Это означает, что следует начинать с максимального качества файла источника или, если источниками являются устройства, установить максимальный уровень качества у устройства.

При настройке источника для кодирования сначала определяются типы используемых источников это может быть звук, видео или сценарий команд. В источнике должен быть указан хотя бы один из типов источников звук или видео. В сеанс кодирования можно добавлять неограниченное количество источников, но каждый последующий источник основан на комбинации типов источников, созданных в сеансе. Например, если первый источник содержит только звук, то все последующие источники в сеансе основаны только на звуке. Для сеансов с несколькими источниками рекомендуется при настройке первого источника указывать все три типа источников. Если дополнительные источники не содержат какой-либо тип источника, можно закодировать пустой поток для этого типа источника. При использовании нескольких источников в результирующем потоке они идут подряд. Последовательность и длительность в результирующем потоке каждого источника на входе зависит от переключения между источниками во время кодирования.

Так же существует возможность объединения потоков например когда в качестве источника видео используется один файл, а для аудио другой. Можно объединить видео\аудио сигнал с устройства и записанный ранее видео или аудио поток в файле.
Существует возможность добавить команды сценария в поток, кодировщик поддерживает следующие типы команд сценария.
• Заголовки. Текстовые строки произвольного формата, которые отображаются в проигрывателе вместе с кодированным содержимым. Для отображения заголовков пользователи должны включить заголовки в соответствующем проигрывателе.
• Адрес URL. При добавлении в поток, при последующем воспроизведении откроется обозреватель пользователя по умолчанию на странице с запрошенным адресом URL Если проигрыватель встроен в обозреватель, то запрошенный адрес URL заменит проигрыватель.
• Кроме поддерживаемых заголовков и адресов URL, проигрыватель автоматически обрабатывает команды сценария FILENAME, EVENT и OPENEVENT. Чтобы открыть определенный файл мультимедиа в указанное время, можно использовать команду FILENAME. Чтобы создать настраиваемые команды сценария, можно использовать команду EVENT. Например, в поток можно добавить объявление. Обратите внимание, что код для указанного события должен быть определен в метафайле Windows Media для потока, чтобы проигрыватель мог выполнить указанное событие. Команда OPENEVENT предшествует действительной команде EVENT. Команда OPENEVENT позволяет проигрывателю предварительно заносить содержимое в буфер, чтобы при определенном событии переключение между потоками было более плавным. О командах серии EVENT будет рассказано позже при рассказе о проблемах буфферизации.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:24

В качестве основного компонента для приёма медиаданных из любых внешних источников используется Windows Media Encoder.

Это средство преобразует данные в вид, родной и понятный другим компонентам серии Windows Media (wm9). Также он может:
1. Менять степень сжатия
2. Менять разрешение (размер кадра)
3. Вырезять прямоугольную часть из входных кадров (Crop)
4. Менять соотношение размеров пикселов (Pixel aspect ratio)
5. Добавлять к выходным файлам мета информацию (название, описание, авторов и т.п.)
6. Накладывать водяные знаки (watermarks) и добавлять информацию для управления цифровыми правами доступа (DRM)
7. Выполнять преобразования, задаваемые plugin ами
8. Другие специфичные действия

WMEncoder может запускаться:
1. Как консольное приложение из командной строки,
2. Как программа с удобным пользовательским графическим интерфейсом (GUI).
3. Использоваться как COM объект или полноценный .NET компонент из других программ.
( ms-help://MS.MSDNQTR.v90.en/wmencode/htm/iwmencoderinterface.htm )


В нашем случае в общей системе заказчик выделил 30 серверов предназначенных для ввода данных в систему, с набором источников в виде подключённых tv-tuner ов, карт управления спутниковой тарелкой, видеокамерами и т.п.
Для управления экземплярами WMEncoder был написан специальный сервис доступный через Web-интерфейс. Сервисом решаются задачи:
• запись \ преобразование "живого" потока с устройств или из файлов, с нужным качеством.
• передача данных далее в систему
• мониторинг работы сервера и выполнения отдельных задач
• управление процессом записи, остановка по требованию, отложенный старт и тд
На каждом сервере можно запустить несколько экземпляров кодировщика. Агент кодирования на каждом сервере записи создаёт и управляет экземплярами WMEncoder через COM интерфейс.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:25

С помощью кодировщика Windows Media можно выполнять кодирование живого потока в реальном времени, файлов или делать снимки экрана. Источниками содержимого в реальном времени являются все устройства аудио и видео захвата. Можно также вести съемку экранов непосредственно с рабочего стола , а так же вставлять команды сценария во время кодирования.
Следует иметь в виду, что качество содержимого на выходе зависит от исходного содержимого. Это означает, что следует начинать с максимального качества файла источника или, если источниками являются устройства, установить максимальный уровень качества у устройства.

При настройке источника для кодирования сначала определяются типы используемых источников это может быть звук, видео или сценарий команд. В источнике должен быть указан хотя бы один из типов источников звук или видео. В сеанс кодирования можно добавлять неограниченное количество источников, но каждый последующий источник основан на комбинации типов источников, созданных в сеансе. Например, если первый источник содержит только звук, то все последующие источники в сеансе основаны только на звуке. Для сеансов с несколькими источниками рекомендуется при настройке первого источника указывать все три типа источников. Если дополнительные источники не содержат какой-либо тип источника, можно закодировать пустой поток для этого типа источника. При использовании нескольких источников в результирующем потоке они идут подряд. Последовательность и длительность в результирующем потоке каждого источника на входе зависит от переключения между источниками во время кодирования.

Так же существует возможность объединения потоков например когда в качестве источника видео используется один файл, а для аудио другой. Можно объединить видео\аудио сигнал с устройства и записанный ранее видео или аудио поток в файле.
Существует возможность добавить команды сценария в поток, кодировщик поддерживает следующие типы команд сценария.
• Заголовки. Текстовые строки произвольного формата, которые отображаются в проигрывателе вместе с кодированным содержимым. Для отображения заголовков пользователи должны включить заголовки в соответствующем проигрывателе.
• Адрес URL. При добавлении в поток, при последующем воспроизведении откроется обозреватель пользователя по умолчанию на странице с запрошенным адресом URL Если проигрыватель встроен в обозреватель, то запрошенный адрес URL заменит проигрыватель.
• Кроме поддерживаемых заголовков и адресов URL, проигрыватель автоматически обрабатывает команды сценария FILENAME, EVENT и OPENEVENT. Чтобы открыть определенный файл мультимедиа в указанное время, можно использовать команду FILENAME. Чтобы создать настраиваемые команды сценария, можно использовать команду EVENT. Например, в поток можно добавить объявление. Обратите внимание, что код для указанного события должен быть определен в метафайле Windows Media для потока, чтобы проигрыватель мог выполнить указанное событие. Команда OPENEVENT предшествует действительной команде EVENT. Команда OPENEVENT позволяет проигрывателю предварительно заносить содержимое в буфер, чтобы при определенном событии переключение между потоками было более плавным. О командах серии EVENT будет рассказано позже при рассказе о проблемах буфферизации.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:26

Драйверы-источники для encoder ов

Форматов медиаданных и источников много, появляются новые, и при всём богатстве кодеков, драйверов и plugin ов к WMEncoder у, всё равно в ряде случаев приходится писать свои. Например в описываемом проекте для приёма спутниковых каналов высокого разрешения на спутниковые карточки Technotrend было принято решение написать собственный драйвер.
На наше счастье, компания Microsoft не оставила нас наедине с этой проблемой. Для подобных задач очень давно был разработан механизм Microsoft Direct Show, местами довольно красивый, местами путанный и нелогичный. Базовым понятием в данном механизме является являются COM объекты, реализующие интерфейс IBaseFilter ( http://msdn.microsoft.com/en-us/library/dd389526(VS.85).aspx ). Такие объекты имеют набор входных и выходных IPin ов (http://msdn.microsoft.com/en-us/library/dd390397(VS.85).aspx ). Каждый фильтр читает с входных пинов медиаданные порциями (сэмплами – IMediaSample http://msdn.microsoft.com/en-us/library/dd407001(VS.85).aspx ), обрабатывает их и выдаёт порциями на выходные пины. Всё это безобразие объединяется объектом естественно IFilterGraph (http://msdn.microsoft.com/en-us/library/dd389989(VS.85).aspx ). Такие графы в целях отладки можно строить используя стандартную утилиту GraphEdit, либо программно. Удобно также то что если программой не запрещено обратное, утилитой можно просматривать графы построенные чужими программами.
Вложения
graphedit.PNG
graphedit.PNG (45.96 KiB) Просмотров: 12750
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:31

Получив данные и обработав их, WMEncoder может либо записывать результат в файл и/или передавать его с помощью прямой широковещательной рассылки в сеть.
Такие данные передаваемые по сети умеют принимать напрямую проигрыватели (Windows Media Player) и службы Windows Media Services. При этом естественно широковещательная рассылка по сети начинается только тогда когда хотя бы один потребитель (WMPlayer или WMS) подписался на неё.

При сохранении пееркодированных данных в файл, они сохраняются в формате Windows Media Расширения файлов ASF, WMA и WMV являются стандартными для файлов формата Windows Media. Расширение файла ASF обычно используется с содержимым Windows Media, созданным с помощью Windows Media Tools 4.0. Расширения файлов WMA и WMV были представлены в качестве стандартных имен для кодировщика Windows Media Encoder 7, чтобы пользователи могли отличить файлы, содержащие только звук (WMA), от видеофайлов (WMV). Однако эти три расширения могут быть взаимозаменяемыми, те поведение проигрывателя не зависит от расширения.

Формат Windows Media самый надежный и полный формат мультимедиа для приложений потоковой передачи, загрузки и воспроизведения, он включает в себя:
• кодеки для аудио и видео Windows Media;
• дополнительно интегрированную систему управления цифровыми правами (УЦП)
• контейнер файлов.

В основе формата Windows Media 9 Series лежит новая технология сжатия звука и видео. Кодеки Windows Media Audio и
Video 9 Series обеспечивают высокое качество аудио и видео на любой скорости передачи данных. Благодаря встроенным функциям обеспечивается высокое качество звучания даже на скоростях обычного модема и качество домашних кинотеатров при использовании широкополосного подключения.
В состав кодеков входят такие узко специализированные кодеки как например:

Windows Media Audio 9 Voice. До настоящего времени кодеки с низкой скоростью передачи данных были оптимизированы либо для музыки, либо для голоса. Это первый кодек, поддерживающий смешанный режим для голоса и музыки, который обеспечивает превосходное качество для потоковой передачи низкоскоростного содержимого (менее 20 кбит/с).

Windows Media Video 9 Image. С помощью этого кодека неподвижные изображения можно преобразовать в видео с помощью эффектов панорамирования и масштабирования и различных эффектов переходов. Объединение эффектов перехода с режимами панорамирования, масштабирования и плавных переходов обеспечивает практически неограниченные возможности по созданию эффектов. Готовое содержимое затем можно предоставить на скоростях передачи данных только 20 кбит/с. Этими файлами, сжатыми с помощью режимов постоянной или переменной скорости (один проход), намного легче обмениваться, так как они намного меньше, чем исходные файлы изображений. Обратите внимание, что кодек Windows Media Video 9 Image версии 2 не совместим с предыдущими версиями этого кодека.

Windows Media Video 9 Screen. Превосходно подходит для демонстрации примеров и работы компьютера во время обучения. Этот кодек обеспечивает лучшую обработку точечных рисунков и движения экрана даже на относительно медленных процессорах.

Если содержимое передается с помощью прямой широковещательной рассылки, то можно передать поток от кодировщика на сервер Windows Media (метод push) или можно предоставить клиентам (серверам или проигрывателям Windows Media) возможность принимать содержимое по собственной инициативе (метод pull). Используемый метод зависит от ситуации.
Для любого сеанса кодирования нужно задать профиль кодирования, в котором будут описанны основные характеристика исходного контента, а именно аудио\видео кодеки, частота кадров, размер видео. От этих параметров зависит качество перекодированного медиа контента. Естествено если качество входного потока низкое, то и на выходе тоже будет низкое.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:36

На иллюстрации можно видеть граф, используемый нашим драйвером для приёма сигнала со спутника через карточку Technotrend. Перечислим по порядку фильтры:

1. J.R. DVB Network Provider – фильтр для выбора настроек сетевого протокола (читай – спутниковой карточки), стандартный Microsoft фильтр, с ним может работать другое стандартное ПО. На данном этапе понятно что через пин передаются не сами медиаданные а настройки(вообще в ряде случаев в DirectShow через связь по pin ам идут вовсе не сами медиаданные, а в ряде случаев наоборот, связь осуществляется напрямую без всяких пинов)

2. USB 2.0 BDA DVB-S Tuner – фильтр позволяющий управлять непосредственно карточкой Technotrend, поставляется самим производителем Technotrend и насколько я понимаю преобразует сетевые настройки стандартного вида от предыдущего фильтра, в вид понятный карточке. В этом месте происходит непосредственное управление карточкой, которая остаётся за схемой

3. USB 2.0 BDA DVB-S Capture – фильтр, также от самого Technotrend а – отдаёт поток медиаданных полученный со спутника. Легко видеть, что сторонние производители поддерживают технологии Microsoft и поставляют свои решения в виде, готовом для использования в MS инфраструктуре.

4. J.R. Demux – стандартный фильтр который обрабатывает поток со спутника. Это сложного вида транспортный поток, в котором намешано много элементарных потоков,
a. Поток описывающий список других потоков и их параметры,
b. для разных каналов в виде отдельных потоков идёт
i. аудио,
ii. видео,
iii. телетекст и т.п.
Данный фильтр позволяет разделять сложный поток на элементарные и передавать их дальше.

5. BDA MPEG2 Transport Information Filter – стандартный фильтр, на котором собирается высокоуровневая стандартная информация о имеющихся в потоке каналах.

6. MPEG-2 Sections and Tables – стандартный фильтр, собирающий специфичную для разных каналов (и провайдеров) информацию вроде разграничений доступа

7. J.R. PSI – стандартный фильтр, также собирающий стандартную информацию о транспортном потоке, о том какие элементарные потоки в нём есть и т.п. Необходим для корректной настройки Demux фильтра (в частности для того чтобы понимать какие элементарные потоки ловить)

8. Elecard MPEG-2 Video Decoder - Этот фильтр получает от Demux уже элементарный , простой video поток MPEG2 конкретного спутникового канала. Такой поток не декодируется стандартными средставми Mircosoft тем не менее для него существует богатый выбор кодеков сторонних производителей, в данном случае используется кодек Elecard. Он преобразует поток к виду пригодному для отображения и обработки стандартными средставми Microsoft.

9. Video Renderer – стандартный фильтр, отвечающий за отображения видео в окне

10. Elecard Audio Decoder – фильтр, аналогичный 8-му (Elecard MPEG-2 Video Decoder), только для обработки аудио-потока

11. Default Direct Sound Device – стандартный фильтр проигрывающий аудио на стандартном аудио-устройстве воспроизведения.

Из данной схемы видно, что большая часть компонентов – стандартные, произведённые самой компание Microsoft, 2 фильтра – произведены производителем аппаратного средства для приёма спутниковых каналов и ещё два – выбранные из богатого набора представленных на рынке кодеков. Можно сделать вывод что механизм Direct Show в данной области хорошо работает, является стандартом для сторонних производителей и хорошо согласовывает разные компоненты друг с другом. Всё что требуется программисту – это соединить правильно фильтры и настроить их, ну и ещё иногда всё таки писать свои фильтры для работы в общем контексте.

WMEncoder, использует в качестве источников фильтры, зарегистрированные в системе с определёнными параметрами. Для того чтобы научить WMEncoder понимать приведённую выше схему, пришлось написать 2 собственных фильтра (видео и аудио), которые имеют внутри себя полноценный граф, описанный выше. Если быть точнее, «рендереры» (9й и 11й фильтры) заменены в нём на фильтры ISampleGrabber (http://msdn.microsoft.com/en-us/library/dd376984(VS.85).aspx), которые позволяют «грабить» проходящую через них информацию (порции - сэмплы). А к этим фильтрам для работоспособности прицеплены фильтры INullRenderer который просто съедает все приходящие к нему порции данных. Это всё тоже стандартные фильтры. Написанный нами фильтр-источник (PushSource) для WMEncoder просто отдаёт порции, собранные ISampleGrabber ом далее в граф который строит для себя сам WMEncoder.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:37

Выходная информация encoder ов

Получив данные и обработав их, WMEncoder может либо записывать результат в файл и/или передавать его с помощью прямой широковещательной рассылки в сеть.
Такие данные передаваемые по сети умеют принимать напрямую проигрыватели (Windows Media Player) и службы Windows Media Services. При этом естественно широковещательная рассылка по сети начинается только тогда когда хотя бы один потребитель (WMPlayer или WMS) подписался на неё.

При сохранении пееркодированных данных в файл, они сохраняются в формате Windows Media Расширения файлов ASF, WMA и WMV являются стандартными для файлов формата Windows Media. Расширение файла ASF обычно используется с содержимым Windows Media, созданным с помощью Windows Media Tools 4.0. Расширения файлов WMA и WMV были представлены в качестве стандартных имен для кодировщика Windows Media Encoder 7, чтобы пользователи могли отличить файлы, содержащие только звук (WMA), от видеофайлов (WMV). Однако эти три расширения могут быть взаимозаменяемыми, те поведение проигрывателя не зависит от расширения.

Формат Windows Media самый надежный и полный формат мультимедиа для приложений потоковой передачи, загрузки и воспроизведения, он включает в себя:
• кодеки для аудио и видео Windows Media;
• дополнительно интегрированную систему управления цифровыми правами (УЦП)
• контейнер файлов.

В основе формата Windows Media 9 Series лежит новая технология сжатия звука и видео. Кодеки Windows Media Audio и Video 9 Series обеспечивают высокое качество аудио и видео на любой скорости передачи данных. Благодаря встроенным функциям обеспечивается высокое качество звучания даже на скоростях обычного модема и качество домашних кинотеатров при использовании широкополосного подключения.
В состав кодеков входят такие узко специализированные кодеки как например:

Windows Media Audio 9 Voice. До настоящего времени кодеки с низкой скоростью передачи данных были оптимизированы либо для музыки, либо для голоса. Это первый кодек, поддерживающий смешанный режим для голоса и музыки, который обеспечивает превосходное качество для потоковой передачи низкоскоростного содержимого (менее 20 кбит/с).

Windows Media Video 9 Image. С помощью этого кодека неподвижные изображения можно преобразовать в видео с помощью эффектов панорамирования и масштабирования и различных эффектов переходов. Объединение эффектов перехода с режимами панорамирования, масштабирования и плавных переходов обеспечивает практически неограниченные возможности по созданию эффектов. Готовое содержимое затем можно предоставить на скоростях передачи данных только 20 кбит/с. Этими файлами, сжатыми с помощью режимов постоянной или переменной скорости (один проход), намного легче обмениваться, так как они намного меньше, чем исходные файлы изображений. Обратите внимание, что кодек Windows Media Video 9 Image версии 2 не совместим с предыдущими версиями этого кодека.

Windows Media Video 9 Screen. Превосходно подходит для демонстрации примеров и работы компьютера во время обучения. Этот кодек обеспечивает лучшую обработку точечных рисунков и движения экрана даже на относительно медленных процессорах.

Если содержимое передается с помощью прямой широковещательной рассылки, то можно передать поток от кодировщика на сервер Windows Media (метод push) или можно предоставить клиентам (серверам или проигрывателям Windows Media) возможность принимать содержимое по собственной инициативе (метод pull). Используемый метод зависит от ситуации.
Для любого сеанса кодирования нужно задать профиль кодирования, в котором будут описанны основные характеристика исходного контента, а именно аудио\видео кодеки, частота кадров, размер видео. От этих параметров зависит качество перекодированного медиа контента. Естествено если качество входного потока низкое, то и на выходе тоже будет низкое.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:37

WMS, общая терминология

Компонентом, предназначенным для доставки media content а конечным потребителям системы по сети является Windows Media Services или как его часто называют Windows Media Server (WMS). Основным рабочим понятием для WMS является точка публикации (publishing point). Каждой точке публикации соответствует свой URL.
Клиентами могут быть другие компьютеры или устройства, воспроизводящими содержимое (например WMPlayer), или другие сервера WMS, которые выполняют функции кэширования или повторной передачи содержимого, а также прокси – сервера. Клиенты могут быть также приложениями, разработанными пользователями с помощью набора разработчика SDK для программ Windows Media, как например в нашем случае дисплей агент на базе WMPlayer а.
Как было указано выше, контент на проигрыватель по сети может доставлять и WMEncoder, но это неудобно в целом ряде случаев

Во-первых, если важно уменьшить трафик между сервером и кодировщиком. Например, администратор сервера может добавить пункт публикации и настроить его для автоматического запуска по запросу клиента, то есть сервер не подключается к кодировщику до подключения первого клиента. Это позволяет снизить нежелательную загрузку полосы пропускания подключения сервера к кодировщику.

Во-вторых, один WMEncoder может работать одновременно только с пятью клиентами. WMS же количество клиентов программно не ограничивает.

И наконец в третьих если имеются несколько серверов распределения, которые подключаются в разное время, каждый сервер может подключиться к кодировщику, когда он готов к потоковой передаче.
Сервер Windows Media может получать содержимое из нескольких различных источников. Предварительно записанное содержимое может храниться локально на сервере, или на сетевом файловом сервере или же можно принимать живой поток с другого сервера WMS или от WMPlayer и тут же его ретранслировать.
Для передачи данных пользователю WMS может создавать как широковещательные (multicast) точки публикации так и точки публикации по требованию (on demand)

Работа WMS с точками публикации "по требованию"

Потоковая передача из пункта публикации по требованию больше всего подходит для тех сценариев, когда требуется, чтобы пользователи могли управлять воспроизведением передаваемого потоком содержимого. Этот тип пункта публикации наиболее часто используется передачи содержимого, источниками которого являются файлы, а также списки воспроизведения и папки. При подключении клиента к пункту публикации содержимое запускается с начала, а конечный пользователь может использовать элементы управления воспроизведением в проигрывателе, чтобы приостанавливать, перематывать вперед и назад, а также пропускать части списка или останавливать воспроизведение. При этом пользователю передаются только требуемые участки данных

Пункт публикации по требованию выполняет потоковую передачу содержимого только в том случае, если клиент подключился для получения потока. Для каждого нового клиента сервер Windows Media поддерживает отдельное подключение. Передача содержимого от пункта публикации передаётся всегда как одноадресный поток (unicast).
Пункт публикации по требованию можно также использовать для передачи широковещательного потока от WMEncoder а, удаленного сервера или другого пункта публикации. Любой из перечисленных источников можно использовать в качестве отдельного источника содержимого или добавить в качестве части списка воспроизведения (playlist а). Если источником содержимого является не WMS, пользовать сможет полноценно использовать элементы управления воспроизведением в проигрывателе, только выкачав весь фрагмент данных (чтобы приостанавливать, перематывать вперед и назад, а также пропускать элементы списка или останавливать воспроизведение).

Для создания пункта публикации «по требованию» в простейшем сценарии для WMS нужно просто указать файл или директорию а также URL по которым они должны быть доступны.
При реализации сценария с пунктами публикации по требованию нужно помнить:
• Возможность управления содержимым из списка воспроизведения на сервере доступна только в проигрывателе Windows Media 9 Series или в любом другом проигрывателе использующем элемент управления ActiveX проигрывателя Windows Media 9 Series. Пользователи, использующее проигрыватели предыдущих версий при подключении будут получать содержимое с начала списка воспроизведения на сервере.
• Если пункт публикации предоставляет доступ к файлам на компьютере с ОС Windows 2000 Server, то могут возникнуть проблемы при потоковой передаче содержимого из-за различий механизмов авторизации учетных записей и привилегий в системах Windows 2000 Server и Windows Server 2003. Как устранить подобные проблемы описано в документации к серверу Windows Media.
• Так как передача содержимого от пункта публикации по требованию происходит как одноадресный поток, то необходимо определить какое количество пользователей будет использовать Ваш сервер Windows Media. Для каждого пункта публикации и сервера в целом можно установить ограничения на количество подключений и полосу пропускания.

Взаимодействие WMS с WMEncoder ом

Рассмотрим сценарий, когда источником содержимого пункта публикации является поток от кодировщика.
Существует два варианта организации взаимодействия между кодировщиком и сервером Windows Media. (1) Передача потока кодировщиком на сервер и (2) прием запроса кодировщиком.

В первом случае кодировщик передает поток на специальную Push*-точку публикации. Можно настроить автоудаление этого пункта публикации после завершения процесса кодирования.

Во-втором случае создается пункт публикации по требованию или широковещательный пункт публикации, источником содержимого которого является поток от кодировщика.

Что бы использовать в качестве источника содержимого поток кодировщика нужно указать в списке воспроизведения сервера или в источнике пункта публикации строку подключения до кодировщика. Строка подключения выглядит как обычные HTTP-url с указанием имени компьютера или IP-адреса компьютера, с которого осуществляется кодирование потока кодировщиком, и порт.

При разработке системы управления потоковым видео наша команда столкнулась с интересной особенностью взаимодействия сервера Windows Media и WMEncoder. Запрос содержимого от кодировщика происходит по протоколу HTTP. Поэтому, даже если пункт публикации является широковещательным сервер все равно при каждом новом подключении клиента создаст отдельное подключение до кодировщика. Чтобы избежать нагрузки на сеть следует создать отдельный широковещательный пункт публикации, назовем его, например, Encoder.Proxy, а доставку содержимого до клиента осуществлять через другой широковещательный пункт публикации, источником содержимого которого является пункт публикации Encoder.Proxy. В этом случае будет создано одно подключение до кодировщика и при большом количестве пользователей нагрузка на сеть будет значительно снижена.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 28 янв 2009, 13:38

Потоковая передача из пункта публикации по требованию больше всего подходит для тех сценариев, когда требуется, чтобы пользователи могли управлять воспроизведением передаваемого потоком содержимого. Этот тип пункта публикации наиболее часто используется передачи содержимого, источниками которого являются файлы, а также списки воспроизведения и папки. При подключении клиента к пункту публикации содержимое запускается с начала, а конечный пользователь может использовать элементы управления воспроизведением в проигрывателе, чтобы приостанавливать, перематывать вперед и назад, а также пропускать части списка или останавливать воспроизведение. При этом пользователю передаются только требуемые участки данных

Пункт публикации по требованию выполняет потоковую передачу содержимого только в том случае, если клиент подключился для получения потока. Для каждого нового клиента сервер Windows Media поддерживает отдельное подключение. Передача содержимого от пункта публикации передаётся всегда как одноадресный поток (unicast).
Пункт публикации по требованию можно также использовать для передачи широковещательного потока от WMEncoder а, удаленного сервера или другого пункта публикации. Любой из перечисленных источников можно использовать в качестве отдельного источника содержимого или добавить в качестве части списка воспроизведения (playlist а). Если источником содержимого является не WMS, пользовать сможет полноценно использовать элементы управления воспроизведением в проигрывателе, только выкачав весь фрагмент данных (чтобы приостанавливать, перематывать вперед и назад, а также пропускать элементы списка или останавливать воспроизведение).

Для создания пункта публикации «по требованию» в простейшем сценарии для WMS нужно просто указать файл или директорию а также URL по которым они должны быть доступны.
При реализации сценария с пунктами публикации по требованию нужно помнить:
• Возможность управления содержимым из списка воспроизведения на сервере доступна только в проигрывателе Windows Media 9 Series или в любом другом проигрывателе использующем элемент управления ActiveX проигрывателя Windows Media 9 Series. Пользователи, использующее проигрыватели предыдущих версий при подключении будут получать содержимое с начала списка воспроизведения на сервере.
• Если пункт публикации предоставляет доступ к файлам на компьютере с ОС Windows 2000 Server, то могут возникнуть проблемы при потоковой передаче содержимого из-за различий механизмов авторизации учетных записей и привилегий в системах Windows 2000 Server и Windows Server 2003. Как устранить подобные проблемы описано в документации к серверу Windows Media.
• Так как передача содержимого от пункта публикации по требованию происходит как одноадресный поток, то необходимо определить какое количество пользователей будет использовать Ваш сервер Windows Media. Для каждого пункта публикации и сервера в целом можно установить ограничения на количество подключений и полосу пропускания.
Аватар пользователя
vva
Администратор
 
Сообщений: 2736
Зарегистрирован: 06 фев 2007, 13:33

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron