繁体   English   中英

Uint8Array 中的数字是多少? 斑点

[英]What are the numbers inside an Uint8Array? Blob

你好比我聪明的人

我对web开发了解不多,希望能在这里得到一些答案。 我试图下载一些基本的 m3u8 文件来学习。 糟糕的是,所有片段都是 1x1p png 文件,它们以 ts 格式持续 10 秒。

所以现在我可以考虑的下一步是了解浏览器如何读取这些片段并显示所需的视频而不仅仅是白色像素。 所以我查看了 jwplayer 8 vanlong 流代码内部,发现以下行:

Blob([new Uint8Array([0, 0, 0, 28, 102, 116, 121, 112, 105, 115, 111, 109, 0, 0, 2, 0, 105,...])], {type: "video/mp4"}))

然后我指的是将视频对象源文件设置为 blob url

我想我了解了它的工作原理。 基本上,有一个请求以 blob 格式返回内容。 然后将这些东西转换为这些数字。

但现在我很挣扎。 我不知道这些数字是什么。 它们是 mp4 文件的内容吗? 它们是否链接到细分市场? 另外,如果这是真的,我不明白为什么它们在我的文件中很简单,而不是像问题中那样加载。 谢谢你的帮助

//编辑我用数字写了一些基本的测试代码

blob = new Blob([new Uint8Array([0, 0, 0, 28, 102, 116, 121, 112, 105, 115, 111, 109, 0,...])], {
   type: "video/mp4"
})
console.log(blob)
var url = URL.createObjectURL(blob);
document.getElementById('_video').src = url;

视频瞬间结束

Javascript 以非常规的方式表示二进制数据。 你看到的Uint8Array是一个Binary Array Buffer,用来存储视频文件的二进制数据。 简单来说,这些数字是视频的原始二进制数据。

你正在做什么new Blob([new Uint8Array([0, 0, 0, 28, ..])])从原始二进制数据创建一个新的 Blob 文件。 您的视频文件没有运行的原因很可能是因为您的二进制数据不是 mp4 文件的正确表示。

了解有关“类型化数组”的更多信息: https://javascript.info/arraybuffer-binary-arrays

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM