【发布时间】:2017-03-01 17:57:41
【问题描述】:
在将视频文件上传到服务器之前,我需要将其截断到某个部分(尚未上传的部分)。使用 html 输入元素选择文件。
我不确定如何使用 blob.slice()。 这是我的尝试,但它似乎不起作用。
var startByte = x;
var endByte = y;
var inputFile = document.getElementById('inPutId');
var vidFile = inputFile.files[0];
var slicedFile = vidFile.slice(x, y);
【问题讨论】:
-
视频文件不仅仅是一堆数据,它具有特定的数据格式,具体取决于视频类型(.avi、.mpeg、.mp4 等)。你不能只是修剪它的数据流并希望它仍然有效。您需要正确处理其帧和元数据。我建议您只标记起点和终点(可能带有 HTML5
<video>标签)并将其与完整视频一起提交到服务器,您将在服务器上正确剪切它。我不知道您使用的是什么后端技术,但服务器端有大量用于视频编辑的库。 -
你所拥有的似乎工作得很好,它会切片文件,但如上所述,切掉视频文件的一部分可能会使它根本无法播放,它不像只是切割片那么容易二进制数据。
-
我正在使用第三方 API 并发送带有适当标题的文件,以便他们的后端处理其余的 voodoo。我正在尝试处理连接问题并上传我上次离开的文件。我希望这能把事情弄清楚一点。
-
API 无法重新创建因截断而丢失的字节。
-
您是否计划多次运行此代码,以便最终发送整个文件,然后后端将其重新组合在一起?
标签: javascript file blob