首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure函数在JavaScript中为mp4视频提供Azure媒体服务

Azure函数在JavaScript中为mp4视频提供Azure媒体服务
EN

Stack Overflow用户
提问于 2021-07-01 01:34:39
回答 1查看 93关注 0票数 0

我要使用Azure Blob存储进行视频托管。这些视频通过HTML视频播放器集成到我的网站中:

代码语言:javascript
运行
复制
<video controls>
  <source src="blobstorageurl" type="video/mp4">
  Your browser does not support HTML video.
</video>

因此,我创建了一个blob容器,在其中上传视频。Azure函数(Blob触发器)正在观察此容器。上传新视频时,Azure函数应启动AMS作业,并将新文件作为源。

我使用了官方示例(https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/AMSv3Samples/StreamFilesSample/index.ts)的逻辑。

下面是我的代码的一小部分:

代码语言:javascript
运行
复制
const blobTrigger: AzureFunction = async function (context: Context, myBlob: any): Promise<void> {
  ...
  mediaServicesClient = new AzureMediaServices(creds, subscriptionId, clientOptions);
  let job = await mediaServicesClient.jobs.create(resourceGroup, accountName, transformName, jobName, { input: context.bindingData.uri, outputs: jobOutputs });
}

这基本上创建了一个包含编码文件的新blob容器。

我的问题是,如何将此文件提供给我的HTML视频播放器。在本教程中,他们创建了一个流定位器,我不能将其用于HTML5播放器。我可以直接使用blob吗?或者这不是一个好主意吗?如果是,我如何在没有访问密钥的情况下提供它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-01 02:05:44

首先,您应该确保理解所谓的“渐进式加载”带有标记的视频文件与使用HLS或DASH流协议和“自适应流”的真正流解决方案之间的技术差异。有很多资源可以解释两者和客户体验之间的区别。

基本上,渐进式下载对于网络较差的客户来说需要很长的缓冲期,如果网络条件发生变化(例如在蜂窝网络上),播放体验就不会那么快或流畅。

只需在存储帐户容器中的MP4上创建一个SAS定位器(将其设置为公共),您就可以轻松获得渐进式下载URL,或者,如果您将流策略名称设置为:'Predefined_DownloadAndClearStreaming‘,您也可以通过流定位器交付它。这将允许您列出HLS、DASH和SAS (渐进式下载)路径。您也可以在AMSE工具中更轻松地看到这一点。有关内置策略类型的详细信息,请参阅此内容(您还可以为流定义自定义策略类型。) https://docs.microsoft.com/en-us/rest/api/media/streaming-locators/create

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68199275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档