如何在 NodeJS 中创建视频 URL Blob?
How to create a Video URL Blob in NodeJS?
你能帮我在 NodeJS 中创建视频 URL Blob 吗?
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
var byteCharacters = atob(reader.result.slice(reader.result.indexOf(',') + 1));
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([ byteArray ], { type: 'video/ogg' });
var url = URL.createObjectURL(blob);
console.log(url);
};
reader.readAsDataURL(xhr.response);
};
xhr.open(
'GET',
'...Video URL...'
);
xhr.send();
错误输出:
throw new Error('cannot read as File: ' + JSON.stringify(file));
Error: cannot read as File: undefined
我使用了 XMLHttpRequest、URL、FileReader 和 Blob 包
请帮忙,谢谢
Node.JS 没有 XMLHttpRequest
、FileReader
、Blob
等,而是使用 fs
, http
modules and other built-in classes, like Buffer
尝试在服务器上使用这些浏览器功能,即使使用尝试模拟它们的包,也可能并不总是有效。事实上,许多模拟这些功能的库并不包含所有内容。例如xmlhttprequest
节点包不使用.response
,只使用文本响应
在 Node.JS 中,不需要 blob URL(你会在哪里使用它?),你只需直接与 Buffer
交互。
// making a http request to fetch something
const http = require("https");
const request = https.request({
method: "GET",
url: "https://example.com/video.ogg"
}, (res) => {
const chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", () => {
// raw byte data
const buffer = Buffer.concat(chunks);
/*
* Interact with Buffer here
*/
});
});
request.end();
您可以使用 Azure Cloud 存储视频,然后使用 Azure BLOB
你能帮我在 NodeJS 中创建视频 URL Blob 吗?
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
var byteCharacters = atob(reader.result.slice(reader.result.indexOf(',') + 1));
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([ byteArray ], { type: 'video/ogg' });
var url = URL.createObjectURL(blob);
console.log(url);
};
reader.readAsDataURL(xhr.response);
};
xhr.open(
'GET',
'...Video URL...'
);
xhr.send();
错误输出:
throw new Error('cannot read as File: ' + JSON.stringify(file));
Error: cannot read as File: undefined
我使用了 XMLHttpRequest、URL、FileReader 和 Blob 包
请帮忙,谢谢
Node.JS 没有 XMLHttpRequest
、FileReader
、Blob
等,而是使用 fs
, http
modules and other built-in classes, like Buffer
尝试在服务器上使用这些浏览器功能,即使使用尝试模拟它们的包,也可能并不总是有效。事实上,许多模拟这些功能的库并不包含所有内容。例如xmlhttprequest
节点包不使用.response
,只使用文本响应
在 Node.JS 中,不需要 blob URL(你会在哪里使用它?),你只需直接与 Buffer
交互。
// making a http request to fetch something
const http = require("https");
const request = https.request({
method: "GET",
url: "https://example.com/video.ogg"
}, (res) => {
const chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", () => {
// raw byte data
const buffer = Buffer.concat(chunks);
/*
* Interact with Buffer here
*/
});
});
request.end();
您可以使用 Azure Cloud 存储视频,然后使用 Azure BLOB