Службы мультимедиа Azure создают локатор вывода в реальном времени и потоковой передачи с помощью Python SDK

Я работаю над проектом, в котором используется пакет SDK для Python для служб мультимедиа Azure (v3). У меня есть следующий код, который создает живой вывод и локатор потоковой передачи после запуска связанного живого события:

# Step 2: create a live output (used to reference the manifest file)
live_outputs = self.__media_services.live_outputs
config_data_live_output = LiveOutput(asset_name=live_output_name, archive_window_length=timedelta(minutes=30))
output = live_outputs.create(StreamHandlerAzureMS.RESOUCE_GROUP_NAME, StreamHandlerAzureMS.ACCOUNT_NAME, live_event_name, live_output_name, config_data_live_output)

# Step 3: get a streaming locator (the ID of the locator is used in the URL)
locators = self.__media_services.streaming_locators
config_data_streaming_locator = StreamingLocator(asset_name=locator_name)
locator = locators.create(StreamHandlerAzureMS.RESOUCE_GROUP_NAME, StreamHandlerAzureMS.ACCOUNT_NAME, locator_name, config_data_streaming_locator)

self.__media_services - это объект типа AzureMediaServices. Когда я запускаю приведенный выше код, я получаю следующее исключение:

azure.mgmt.media.models._models_py3.ApiErrorException: (ResourceNotFound) Live Output asset was not found.

Вопрос: Почему службы мультимедиа Azure выдают эту ошибку при операции создания ресурса? Как я могу решить эту проблему?

Обратите внимание, что мне удалось аутентифицировать SDK для служб мультимедиа Azure с помощью субъекта-службы и что я могу успешно отправить видео в прямую трансляцию с помощью ffmpeg.


person pycops    schedule 14.08.2020    source источник
comment
Просто проверяю, создали ли вы актив - live_output_name перед созданием Live Output?   -  person johndeu    schedule 15.08.2020
comment
@johndeu Я этого не делал. Отличается ли концепция актива от создания самого ресурса?   -  person pycops    schedule 15.08.2020
comment
См. Ответ ниже, также обратите внимание - я вижу проблему в вашем Streaming Locator. StreamingLocator (asset_name = locator_name) Имя этого ресурса должно совпадать с именем, используемым для Live Output. Это название ленты   -  person johndeu    schedule 15.08.2020


Ответы (1)


Я предлагаю вам быстро взглянуть на поток живого события в этом руководстве, которое, к сожалению, находится в .NET. Мы все еще работаем над обновлением образцов Python.

https://docs.microsoft.com/en-us/azure/media-services/latest/stream-live-tutorial-with-api

Но это должно помочь с проблемой. Первая проблема, которую я вижу, заключается в том, что, вероятно, вы не создали актив для вывода Live для записи.

Вы можете думать о Live Outputs как о магнитофонах, а Assets на магнитных лентах. Это места в вашей учетной записи хранения, в которые магнитофон будет записывать.

Таким образом, после запуска Live Event у вас может быть до 3 таких магнитофонов, работающих и записывающих на 3 разные ленты (Assets) в хранилище.

  1. Создать пустой актив
  2. Создайте живой вывод и укажите его на этот актив
  3. получите локатор потоковой передачи для этого актива - чтобы вы могли посмотреть ленту. Обратите внимание, что вы создаете локатор потоковой передачи для ресурса, созданного на шаге 1. Думайте об этом так, как будто я хочу смотреть эту ленту, а не я хочу смотреть этот магнитофон.
person johndeu    schedule 14.08.2020