如何将视频上传到 Azure 媒体服务并在移动设备上观看?

How upload a video to Azure Media Services and watch it in a mobile?

好几次以来,我们都在尝试将视频上传到 Azure 媒体服务并在手机上观看。这在个人电脑上工作得很好,而且情况非常疯狂。

我们使用 .NET API 将视频上传到 Azure 媒体服务。 我们可以在 Azure 媒体播放器中观看该视频。但自从 Azure 管理以来就没有了(有一个观看视频的选项)。在 azure media player 示例查看器中都没有

然后...我们不知道问题出在 Azure 管理、Azure 媒体播放器中还是我们上传视频时(创建资产、编码、创建定位器和策略...)。

这是我的一个视频:http://media6franquiciasworldw.streaming.mediaservices.windows.net/e70ca01a-0be8-4f54-911c-6f4b85c0d396/12_mixtaSaltamontes.ism/manifest

这是我的代码:

        //Creamos el ASSET a apartir de un archivo
        IAsset inputAsset = _context.Assets.CreateFromFile(video.PathFile, AssetCreationOptions.StorageEncrypted);

        //Encode/Codificación del vídeo. Transformamos el primer asset en otro que será el realmente difundido. Se usa un patrón (JSON/XML) definido en video.Enconder
        IAsset encodedAsset = EncodeToAdaptiveBitrate(inputAsset, AssetCreationOptions.None, video.Enconder, video.GetAssetName(), video);

        //If I use "AssetDeliveryProtocol.All", throw error: "Account is not enabled for HDS streaming"
        IAssetDeliveryPolicy policy = _context.AssetDeliveryPolicies.Create("Clear Policy", AssetDeliveryPolicyType.NoDynamicEncryption, AssetDeliveryProtocol.SmoothStreaming, null);
        encodedAsset.DeliveryPolicies.Add(policy);

        // Publish the output asset by creating an Origin locator for adaptive streaming
        _context.Locators.Create(
            LocatorType.OnDemandOrigin,
            encodedAsset,
            AccessPermissions.Read,
            TimeSpan.FromDays(3650));

这是我的"Encoder":https://pastebin.com/zQ8rS73c

我注意到这里有几个问题可能是错误的。

  1. 您的帐户中是否启动了 Streaming Endpoint 并且 运行?首先确保它在那里。
  2. 不要使用 AssetDeliveryProtocol.All。 SDK 中存在一个问题,它试图在 Adob​​e HDS 中添加,我们正在放弃对它的支持。您可能只想使用在传输协议上流式传输所需的特定协议。所以使用以下 图案: AssetDeliveryProtocol.SmoothStreaming | AssetDeliveryProtocol.Dash | AssetDeliveryProtocol.HLS | AssetDeliveryProtocol.ProgressiveDownload

您可能无法在 iOS 或 Android 客户端上播放任何内容,因为您只设置了允许 SmoothStreaming 的协议,而 SmoothStreaming 仅在桌面或自定义移动客户端上受支持.为 Android 添加 DASH,为 iOS 添加 Apple HLS 应该会有所帮助。