【问题标题】:Convert blob file into webm with Whammy Lib使用 Whammy Lib 将 blob 文件转换为 webm
【发布时间】:2015-08-10 19:18:05
【问题描述】:

我正在使用 Whammy Lib 生成带有图像的视频。 录制视频后,Whammy 库会返回一个带有 blob 文件的临时目录。

blob:http%3A//localhost%3A8000/b07288dc-da33-409c-90bc-9d1ce949db35

我需要使用 php 将此文件上传到我的服务器,但我不知道如何发送 webm 文件而不是 blob 文件。

为了编译视频,我正在使用:

videoEncoder = new Whammy.Video();
for (var i = 0; i < images.length; i++) {
    videoCtx.putImageData(images[i].image, 0, 0);
    videoEncoder.add(videoCtx, images[i].duration);
}

blob = videoEncoder.compile();
file = (window.webkitURL || window.URL).createObjectURL(blob);

已回答!

使用我解决问题的最后一个代码进行更新:

var data = $(form).serializeArray();
var formData = new FormData();
// blob is the return from Whammy Lib after compile
formData.append('webm', blob, 'video.webm');

我只需要将 blob 文件附加到 FormData 并发送到我的 php。

【问题讨论】:

    标签: javascript html5-video video-recording webm


    【解决方案1】:

    我不知道 Whammy Lib,但如果你有 blob 对象,那么你可以使用 FormData 对象将它作为文件发送到你的服务器:

    var f = new FormData();
    f.append('videofile', b);
    var xhr=new XMLHttpRequest();
    xhr.open('POST','savevideofile.php');
    xhr.send(f);
    

    然后在savevideofile.php

    if($_FILES['videofile']){
        $my_file = $_FILES['videofile'];
        $my_blob = file_get_contents($my_file['tmp_name']);
        file_put_contents('your_file.webm', $my_blob);
        }
    

    【讨论】:

      【解决方案2】:

      例如,您可以将 Blob 对象转换为数组缓冲区,然后使用 WebSockets 将其发送到服务器。

      blob = videoEncoder.compile();
      
      var stream_ws = new WebSocket("ws://localhost/webm");
      stream_ws.binaryType = 'arraybuffer';
      
      var fileReader = new FileReader();
      var arrayBuffer;
      fileReader.onload = function() {
           arrayBuffer = this.result;
           stream_ws.send(arrayBuffer);
      }
      fileReader.readAsArrayBuffer(blob);
      

      websocket 监听进程然后可以接收 webm 文件作为二进制文件并将其保存到磁盘。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2019-02-15
        • 2020-08-10
        • 1970-01-01
        • 2015-02-17
        • 2020-02-18
        • 1970-01-01
        相关资源
        最近更新 更多