Обслуживание видеоконтента из хранилища BLOB-объектов Azure

Я пытаюсь обслуживать MP4-видео из хранилища BLOB-объектов Azure. Я могу заставить видео воспроизводиться в современных браузерах, убедившись, что тип контента Blob установлен на video/mp4; однако я не могу искать в обратном направлении.

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

Нужно ли настраивать роль хранилища определенным образом для обслуживания видеоконтента?

6 ответов

Решение

Из ответа @smarx мне не было ясно, как установить это для моего контейнера BLOB-объектов, но после некоторого поиска в Google я нашел код ниже. Просто выполните его в LINQPad, и видео начнет потоковую передачу:

var storageAccount = CloudStorageAccount.Parse("AccountName=<accountName>;AccountKey=<accountKeyBase64>;DefaultEndpointsProtocol=http");
var blobClient = storageAccount.CreateCloudBlobClient();

// Get the current service properties
var serviceProperties = blobClient.GetServiceProperties();

// Set the default service version to 2011-08-18 (or a higher version like 2012-03-01)
serviceProperties.DefaultServiceVersion = "2011-08-18";

// Save the updated service properties
blobClient.SetServiceProperties(serviceProperties);

Всем, кто хочет использовать Azure CLI:

      az storage account blob-service-properties update --account-name [account_name] --default-service-version '2020-10-02'

Вы можете попробовать установить версию по умолчанию для вашей учетной записи хранения на 2011-08-18: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-blobs-improved-http- заголовки для возобновления при загрузке и изменении в случае совпадения условий.aspx. Это улучшает несколько параметров в диапазоне запросов (вероятно, что делает прогрессивная загрузка в вашем браузере). Я не слышал ничего конкретного о воспроизведении видео, но попробовать не повредит.:-)

Для тех, кто приходит сюда из Google:

Azure имеет два типа учетных записей хранения: StorageV1 / V2 (опция по умолчанию выбирается при создании новой учетной записи) и BlobStorage.

Хотя опция StorageV2 может иметь больше функций, она не поддерживает partial content requestsЭто означает, что Chrome не позволяет искать видео.

Вы можете определить тип хранилища на портале Azure, перейдя в свою учетную запись хранения> Свойства> Тип учетной записи.

Я попытался воспроизвести очень маленький объект, закодированный в формате MP4, непосредственно из видеоэлемента HTML5 с включенным элементом управления. Я мог использовать этот элемент управления для прокрутки моего видео вперед и назад.

Каков размер вашего видео контента? Также вы можете использовать Fiddler для проверки заголовков HTTP, чтобы убедиться, что они ожидаются или они точно совпадают, когда вы используете один и тот же большой двоичный объект из корзины S3?

Если вы можете поделиться ссылкой на BLOB, я могу быстро попробовать и посмотреть, в чем может быть проблема.

Вы можете сделать это через Powershell. Вот пример для Azures ARM (не классический, но вы можете легко конвертировать).

Select-AzureRmSubscription -SubscriptionName "subscription" $Name = 'storageaccountname' $resourcegroup = 'resourcegroup'

$sp = New-Object -TypeName Microsoft.WindowsAzure.Storage.Shared.Protocol.ServiceProperties 

$sp.DefaultServiceVersion = "2017-04-17" $key = (Get-AzureRMStorageAccountKey -StorageAccountName $Name
-ResourceGroupName $resourcegroup).Value[1]

$context = New-AzureStorageContext -StorageAccountName $Name
-StorageAccountKey $key

$blobClient = $context.StorageAccount.Create
Другие вопросы по тегам