Конвертируйте файл blob в webm с помощью 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.


person Italo Borges    schedule 10.08.2015    source источник


Ответы (2)


Я не знаю 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);
    }
person Kaiido    schedule 24.08.2015

Вы можете преобразовать объект 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 в виде двоичных файлов и сохранить его на диск.

person fycth    schedule 24.08.2015