【问题标题】:How to truncate a file using javascript (no jQuery)?如何使用 javascript(没有 jQuery)截断文件?
【发布时间】: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


【解决方案1】:

我想知道你是否可以递归循环

var z=size_of_slice; 
var slicedFile = vidFile.substr(0, y);
check_if_slice_is_valid(slicedFile) ? upload(slicedFile) : y=y+z; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多