Как правильно загружать видеофайлы в службы мультимедиа Azure из angularjs

Для моего сценария наше текущее приложение начинается с кода html5 и angularjs, взаимодействующего с веб-API. У меня есть сценарий рабочего процесса, для которого я, кажется, не могу найти полный пример. Я хотел бы разрешить пользователям моего веб-сайта загружать видео и изображения в службы мультимедиа Azure. Я нашел несколько примеров, которые, кажется, перемещают данные с веб-страницы в хранилище BLOB-объектов, а затем копируют их в мультимедийные службы Azure.

  1. Есть ли способ загрузить файл непосредственно в службы мультимедиа вместо временного и постоянного контейнера больших двоичных объектов (привязанного к AMS), поскольку этот подход, похоже, заставляет меня иметь дополнительный контейнер для хранения или есть способ переместить файл в хранилище больших двоичных объектов с последующей привязкой файла большого двоичного объекта к AMS через IAssetFile?
  2. Может ли кто-нибудь предоставить конечный пример, демонстрирующий поток от загрузки веб-интерфейса до файла, который попадает в AMS?
  3. Есть ли способ убедиться, что пользователи могут просматривать, но не скачивать видео?

person user1790300    schedule 13.01.2015    source источник


Ответы (3)


1.Есть ли способ загрузить файл непосредственно в службы мультимедиа:

  • SDK служб мультимедиа требует, чтобы вы сначала создали объект Asset в нашей системе. Этот объект Asset поддерживается контейнером в хранилище. Вы можете создать пустой объект Asset и запросить URL-адрес SAS только для записи (в нашем API мы называем их «Локаторами») для загрузки вашего контента непосредственно в. Вы можете проверить этот модуль AngularJS и посмотреть, работает ли он. http://ngmodules.org/modules/angular-azure-blob-upload

2. Может ли кто-нибудь предоставить конечный пример, демонстрирующий поток от загрузки веб-интерфейса до файла, который попадает в AMS?

  • Ваш веб-API / интерфейс должен использовать SDK служб мультимедиа, чтобы сначала создать пустой актив. После создания вручную создайте URL-адрес SAS только для записи и верните его своему клиенту Angular. Затем клиент Angular может использовать библиотеку javascript на стороне клиента для загрузки непосредственно в blob / контейнер с использованием URL-адреса SAS и модуля для загрузки azure-blob, подобного приведенному здесь: http://ngmodules.org/modules/angular-azure-blob-upload

3. Есть ли способ убедиться, что пользователи могут просматривать, но не скачивать видео?

  • После загрузки видео вам следует удалить «Локатор» SAS только для записи из коллекции локаторов активов. Таким образом, никто не сможет использовать его для повторной записи.
  • На этом этапе вы можете создать локатор потоковой передачи. Пользователи смогут транслировать файл только через наши потоковые сервисы. Ваш файл должен быть закодирован в формате, который мы можем поддерживать потоковой передачей, поэтому вам, возможно, придется сначала запустить задание кодирования, чтобы получить его в правильном формате и настройках кодирования (файлы MP4 со звуком H264 и AAC). Если вы хотите осуществлять потоковую передачу из служб мультимедиа, вам необходимо убедиться, что в вашей учетной записи включен хотя бы 1 зарезервированный блок потоковой передачи. Кроме того, если вы хотите защитить свои файлы, вы можете взглянуть на наши службы защиты контента, которые обеспечат оперативное шифрование AES 128 или PlayReady DRM для ваших активов. Вы можете интегрировать это с токенами JWT и Active Directory для аутентификации / аутентификации ваших пользователей, прежде чем они смогут расшифровать видео на стороне клиента.
person johndeu    schedule 09.03.2015
comment
Помимо разрешения кому-либо загружать видео, какие шаги необходимо предпринять, если вы хотите, чтобы кто-то также мог удалить объект. Кажется, это может включать в себя много шагов? - person user1790300; 06.04.2015

Я не слишком знаком со службами мультимедиа Azure, но после просмотра этого руководства http://azure.microsoft.com/en-us/documentation/articles/media-services-rest-get-started/ мне кажется, что вы можете создать актив в Azure Службы мультимедиа и свяжите его с большим двоичным объектом. Это означает, что у вас будет только один контейнер больших двоичных объектов.

person Michael Curd - MSFT    schedule 07.03.2015
comment
Каждый виртуальный актив в API служб мультимедиа привязан к реальному контейнеру больших двоичных объектов в вашей учетной записи хранения. Таким образом, каждый раз, когда вы создаете актив в нашем API, он создает контейнер. У вас может быть столько файлов внутри вашего актива, сколько вам нужно. Я храню такие вещи, как миниатюры, рамки плакатов и XML-файлы метаданных вместе с моими видео в своих активах, чтобы хранить их в одной логической группе. - person johndeu; 09.04.2015

AMS предоставляет Rest API для всех возможностей обработки мультимедиа, включая загрузку, кодирование и публикацию. В GitHub есть образец проекта (коллекция почтальонов), по которому можно поиграть. Этот образец проекта также сопровождается хорошо написанной статьей. Пожалуйста, найдите ссылки ниже.

https://github.com/Azure-Samples/media-services-v3-rest-postman

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

Надеюсь, это поможет

person Venkatesh Muniyandi    schedule 24.06.2020