繁体   English   中英

在JavaScript中将.mp4链接转换为BLOB

[英]Converting .mp4 link to BLOB in JavaScript

目前,我正在尝试使用Javascript将外部.mp4文件(URL)转换为blob对象。 这是我的脚本:

<!DOCTYPE html>
<html>
    <body>
        <video controls="" preload="auto" id="_video"></video>
    </body>
</html>

<script>
function createObjectURL(object) {
    return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}

function display(videoStream){
    var video = document.querySelector('_video');
    var videoUrl=createObjectURL(videoStream);
    video.src = videoUrl;
}

display('http://vjs.zencdn.net/v/oceans.mp4');
</script>

但我得到:

无法'createObjectURL' on 'URL': No function was found that matched the signature provided.执行'createObjectURL' on 'URL': No function was found that matched the signature provided.

Jsfiddle: http : //jsfiddle.net/xyzr67Lu/

您不需要创建Blob对象,可以直接使用url:

<!DOCTYPE html>
<html>
    <body>
        <video controls="" preload="auto" id="_video"></video>
    </body>
</html>

<script>

function display(videoStream){
    var video = document.getElementById('_video');
    video.src = videoStream;
}

display('http://vjs.zencdn.net/v/oceans.mp4');
</script>

如果您确实想创建一个Blob,则可以通过首先下载视频来实现,尽管用户体验会因此受到影响:

<!DOCTYPE html>
<html>
    <body>
        <video controls="" preload="auto" id="_video"></video>
    </body>
</html>

<script>
function createObjectURL(object) {
    return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}

async function display(videoStream){
    var video = document.getElementById('_video');
    let blob = await fetch(videoStream).then(r => r.blob());
    var videoUrl=createObjectURL(blob);
    video.src = videoUrl;
}

display('http://vjs.zencdn.net/v/oceans.mp4');
</script>

暂无
暂无

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

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