将blob文件转换为webm与Whammy Lib
Convert blob file into webm with Whammy Lib
我正在使用Whammy Lib生成带有图像的视频。录制完视频后,Whammy lib返回一个带有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。
我不知道Whammy Lib,但如果您有blob对象,那么您可以使用FormData对象将其作为文件发送到服务器:
var f = new FormData();
f.append('videofile', b);
var xhr=new XMLHttpRequest();
xhr.open('POST','savevideofile.php');
xhr.send(f);
然后在 savevidefile .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);
}
您可以将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文件作为二进制文件并将其保存到磁盘
相关文章:
- Gulp:如何将CDN用于js-lib
- 错误:找不到模块'/lib/cli'
- 避免将lib依赖项与webpack+handlebas加载程序捆绑在一起
- 检查 javascript lib 是否已经存在
- Routing from Javascript lib in Angular JS 2
- 无法解析模块'react/lib/merge'
- 如何通过ScriptInjector在GWT中使用JS-lib
- 如何在Gulp中使用Browserify lib对模块进行别名
- 使用requireJS加载'lib/request'html代码内部
- Node.js-使用async lib-async.parallel传递一个数组
- Rails 4.1.1.:lib/assets/javascripts中的JS文件;t负载
- 将外部lib绑定到我自己的javascript库中
- 是否有任何Ruby工具或JavaScript-Lib来验证html的格式是否正确
- jquery与另一个lib冲突
- JS-Can't组合lib文件
- 为什么浏览器可以'在`.中找不到js文件/lib/`(相对)位置
- Flash Pro CC HTML5画布&CreateJS-如何将lib文件更新到最新版本
- 等待Lib(IronRouter)导致HTML在加载JS文件后无法加载
- 可以'在node.js中不需要csv-lib
- 将blob文件转换为webm与Whammy Lib