由于 Azure 媒体服务将于明年退役,我正在考虑尝试不同的方法将视频编码为 MP4,这种方法包括 Azure Function。流程是这样的
BlobInputStream
上的blobClient.openInputStream()
获取BlobClient
。byte[]
获取BlobInputStream
。FFMPEG
。(这就是我困惑的地方是如何做到这一点)。byte[]
,从 byte[] 创建 InputStream
。upload(InputStream data)
上调用 BlobClinet
将编码视频写入存储帐户容器。理论上听起来很简单,但我在这里遇到的问题是 JAVE2 和其他类似的库接受
java.io.File
对象作为输入和输出,但 azure-storage-blob
库不公开任何 api 来获取 File
对象。现在剩下的选项是打开输入流以获取 byte[],然后如何对字节数组进行编码。
blob存储的不是文件,而是对象。您可以使用流来传递数据,而不是使用 BlobClient 的任何文件
然而,恕我直言,无服务器功能的目的是在有限的处理时间下快速运行,而视频编码则不然。因此,与仅运行一些计算(例如容器)或使用具有现货节点的 Azure Batch 相比,您最终可能会遇到超时和更高的成本。