如何创建视频文件的 Blob

13

我想创建一个本地视频文件的Blob:file:///home/user/NodeJS/Projects/project1/routes/../videosTrans/Node.js教程-面向初学者的Node.js和Express2.js简介.mp4。

我无法理解Blob的确切格式。我希望创建它并将其作为输入传递给createObjectURL()函数。 以下方法不起作用:

 var URL = this.window.URL || this.window.webkitURL;
       var file = new Blob(["file:///home/sanika/NodeJS/Projects/project1/routes/../videosTrans/Node.js tutorial for beginners - an introduction to Node.js with Express2.js.mp4"], "type" : "video\/mp4");
       var value = URL.createObjectURL(file);

1
你好,你找到了实现的方法吗?我也想做同样的事情。 - H4mm3R
@h4mm3R,请查看我下面的答案。 - Muhammad Tahir
2个回答

10
请将blob的第二个参数作为对象使用。因此,您的代码应该是:
var URL = this.window.URL || this.window.webkitURL;
var file = new Blob(
    ["file:///home/sanika/NodeJS/Projects/project1/routes/../videosTrans/Node.js tutorial for beginners - an introduction to Node.js with Express2.js.mp4"],
    {"type" : "video\/mp4"});
var value = URL.createObjectURL(file);

1
能否将这个二进制大对象转换为WebM格式? - Peck_conyon
这个不管用,能给我提供一个jsfiddle吗?HTML5最近有更改过吗?谢谢。 - Ranjit Kumar
您正在为文本file://...创建Blob URL,并将其标记为MP4。 - Nate Scarlet

1
你可以通过以下代码获取。测试也提供了 JSFiddle演示链接 HTML代码
<form>
    <video></video>
    <br/>
    <input type="file" name="file" id="fileItem" onchange="onChange()" >
    <input type="submit" value="Play">
</form>

JS 代码

    var URL = window.URL || window.webkitURL;
    var video = document.getElementsByTagName('video')[0];
    function onChange() {
        var fileItem = document.getElementById('fileItem');
        var files = fileItem.files;
        var file = files[0];
        var urlBlob = URL.createObjectURL(file);
        video.src = urlBlob;
        video.load();
        video.onloadeddata = function() {
            video.play();
        }
    }

在这里测试它。

https://jsfiddle.net/9ad3nm2o/2/


@Abhishekkumar 你用的是哪个浏览器?我刚在 Chrome 上测试了一下,它可以正常工作。 - Muhammad Tahir
同一浏览器。chrome。 我也问了这个问题:https://stackoverflow.com/questions/63194504/filereader-readasdataurl-not-working-for-video-in-react - Darth Vader
我明白了我之前所尝试的不同方法。我曾试图播放一个没有声音的MP4文件,但是我现在不明白为什么没有声音的视频无法正常播放。 - Darth Vader

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接