Описание нововведений IIS Media Services 4.1

В новом выпуске IIS Media Services были представлены новый REST API для управления точками публикаций и улучшения в производительности для всех сценариев публикации: загрузка видео по требованию и живое вещание. Функции REST API предлагают следующие возможности:

  • создание и удаление точек публикации;
  • перечисление всех точек публикации веб-сайта;
  • запрос и обновление настроек точек публикации и их состояния;
  • запрос статистики точки публикации.

Полное описание API можно найти на специальной странице MSDN.

Expression Encoder 4 SP2, который был выпущен неделей ранее IIS Media Services 4.1 уже поддерживает REST API предлагаемый IIS Media Services, так что вы можете легко управлять точками публикации напрямую из Expression Encoder.

Теперь с помощью проекта Live Broadcasting Project вы можете:

  • создать новую точку публикации

    • после указания точки публикации, Expression Encoder теперб предлагает новую кнопку “Create”, которая позволяет легко создать новую точку публикации (рисунок ниже)
      image
  • перезапустить точки публикации как автоматически, так и вручную

    • после подсоединения к существующей точке публикации, вы можете обнаружить новую кнопку “Restart” и пункт “Restart Automaticly” для перезапуска
      image
  • дублировать настройки публикации одной точки для другой точки
    image
    Этот функционал Expression Encoder предлагает значительно больше возможностей, чем просто дублирование настроек от одной точки к другой. После того, как вы подсоединитесь к IIS Media Services 4.1, пункт “Copy Settings” будет содержать список с полным перечислением всех доступных точек публикации, ассоциированных с сайтом. Когда вы наведете мышью на выбранную точку, вы можете получить основные данные о точке публикации.
    image

  • оценить статус каждой отдельной точки публикации

    • на рисунке ниже показана точка публикации со статусом “Starting”
      image

Обратите внимание, что новые функции и возможность использования нового REST API IIS Media Services 4.1 доступны только в Pro-версии Expression Encoder 4.

Все вызовы к REST-сервисам аутентифицируются через методы аутентификации, которые поддерживает IIS. Так что для начала использования, вам необходимо включить в IIS необходимые методы аутентификации. Может быть использован любой метод аутентификации IIS, кроме анонимного доступа.

Самый простой способ тестирования возможностей нового REST API – это использовать бесплатный инструмент веб-отладки Fiddler вместе с пользовательским интерфейсом Expression Encoder. Код ниже показывает пример данных отправленных в ответ на запрос HTTP GET https://akucer-server/the first concert.isml/settings из Expression Encoder. Этот запрос возвращает настройки для первой точки публикации “concert.isml”.

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="https://www.w3.org/2005/Atom">
  <id>https://akucer-server:80/the first concert.isml/settings</id>
  <author>
    <name />
  </author>
  <updated>2011-11-09T03:19:30Z</updated>
  <link href="https://akucer-server/the first concert.isml/settings" rel="self" type="application/atom+xml" title="Settings" />
  <link href="https://akucer-server/the first concert.isml/state" rel="related" type="application/atom+xml" title="State" />
  <link href="https://akucer-server/the first concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" />
  <content type="application/xml">
    <SmoothStreaming xmlns="https://schemas.microsoft.com/iis/media/2011/03/streaming/management">
      <Settings>
        <Title />
        <SourceType>Push</SourceType>
        <AutoStart>false</AutoStart>
        <AutoRestartOnEncoderReconnect>false</AutoRestartOnEncoderReconnect>
        <LookAheadChunks>2</LookAheadChunks>
        <Archive enabled="true">
          <Path useEventIdOnPath="false" />
        </Archive>
        <ClientConnections enabled="true">
          <ClientManifestVersion>2.0</ClientManifestVersion>
        </ClientConnections>
        <ServerConnections enabled="true">
          <SendEndOfStreamOnStop>true</SendEndOfStreamOnStop>
        </ServerConnections>
        <Modules>
          <Module id="hls" type="sink" name="HTTP Live Streaming">
            <HLS>
              <SegmentLength>PT10S</SegmentLength>
              <MaxBitRate>1600000</MaxBitRate>
              <AllowCaching>false</AllowCaching>
              <BackwardCompatible>true</BackwardCompatible>
              <IncludeCodecs>false</IncludeCodecs>
              <Encryption enabled="false" />
            </HLS>
          </Module>
        </Modules>
      </Settings>
    </SmoothStreaming>
  </content>
</entry>

Обратите внимание на дополнительные URL, которые возвращаются в ответе на запрос. Они могут использоваться для получения состояния или получения статистики точки публикации. С помощью функции построения запросов Fiddler вы можете легко сформировать HTTP-запрос, который использует REST API. На примере ниже Fiddler используется для отправки запроса HTTP GET для перечисления всех точек публикации на сайте.

image

Перед выполнением этого запрос убедитесь, что в IIS включена поддержка аутентификации Windows Authentication и функция “Automatically Authenticate” включена в настройках Fiddler.

image

В ответ на этот запрос мы можем получить перечисление всех точек публикации на сайте:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="https://www.w3.org/2005/Atom">
  <author>
    <name></name>
  </author>
  <title>Publishing Point Collection</title>
  <updated>2011-11-09T04:13:21.505Z</updated>
  <entry>
    <id>https://akucer-server:80/new publishing point.isml/settings</id>
    <updated>2011-11-09T02:57:17Z</updated>
    <link href="https://akucer-server/new publishing point.isml/settings" rel="related" type="application/atom+xml" title="Settings" />
    <link href="https://akucer-server/new publishing point.isml/state" rel="related" type="application/atom+xml" title="State" />
    <link href="https://akucer-server/new publishing point.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" />
  </entry>
  <entry>
    <id>https://akucer-server:80/the final concert.isml/settings</id>
    <updated>2011-11-09T02:23:03Z</updated>
    <link href="https://akucer-server/the final concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" />
    <link href="https://akucer-server/the final concert.isml/state" rel="related" type="application/atom+xml" title="State" />
    <link href="https://akucer-server/the final concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" />
  </entry>
  <entry>
    <id>https://akucer-server:80/the first concert.isml/settings</id>
    <updated>2011-11-09T03:19:30Z</updated>
    <link href="https://akucer-server/the first concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" />
    <link href="https://akucer-server/the first concert.isml/state" rel="related" type="application/atom+xml" title="State" />
    <link href="https://akucer-server/the first concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" />
  </entry>
  <entry>
    <id>https://akucer-server:80/the second concert.isml/settings</id>
    <updated>2011-11-09T02:22:44Z</updated>
    <link href="https://akucer-server/the second concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" />
    <link href="https://akucer-server/the second concert.isml/state" rel="related" type="application/atom+xml" title="State" />
    <link href="https://akucer-server/the second concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" />
  </entry>
</feed>

--

Это перевод оригинальной статьи IIS Media Services 4.1 released