我想要流一个视频是存储在天蓝色的blob存储。我用的是反应。
发布于 2022-01-06 11:22:19
关于解决办法--尝试使用以下解决方案
解决方案1: Azure媒体服务:使您能够使用低延迟实时流、批编码、内容保护/DRM构建媒体应用程序,并在任何设备上向数百万观众提供流媒体内容。
Azure Media Services是一个基于云的平台,它使您能够构建实现广播质量的视频流、增强可访问性和分发、分析内容以及更多内容的解决方案。
有关详细信息,请参阅本文档如何连接到Azure媒体服务v3 node.js SDK:https://learn.microsoft.com/en-us/azure/media-services/latest/configure-connect-nodejs-howto
将用于JavaScript的Azure媒体客户端库与npm结合使用。
如果文件是使用Assest AzureMediaServicesSDK.上传的,则上传的视频将存储为一个文件,这将使将视频流到不同设备上变得更加容易。
要流或下载资产,首先需要通过创建一个定位器来“发布”它。定位器提供对资产中包含的文件的访问。
一旦创建了定位器,就可以构建用于流或下载文件的URL。
注意:你要把你的视频直接上传到Azure存储?如果是这样的话,我的建议是使用Azure 上传视频,而不是直接将视频上传到Azure
@azure/storage-blob解决方案2:使用此代码的尝试允许使用node.js package从Azure存储中对视频进行流。
app.get("/video", async (req, res) => {
try {
// Create the BlobServiceClient object which will be used to create a container client
const blobServiceClient = BlobServiceClient.fromConnectionString(
AZURE_STORAGE_CONNECTION_STRING
);
const containerName = 'videos';
const blobName = req.query.path;
// Get a reference to a container
const containerClient = blobServiceClient.getContainerClient(containerName);
// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
console.log('\nDownloaded blob content...');
const downloadBlockBlobResponse = await blockBlobClient.download(0);
downloadBlockBlobResponse.readableStreamBody.pipe(res);
} catch (err) {
console.error(err);
res.sendStatus(500);
}
});有关更多详细信息,请参阅此所以螺纹
https://stackoverflow.com/questions/70604805
复制相似问题