ウェブカメラまたはモバイルカメラを使用してビデオを録画できるアプリを作成する必要があります(クロスプラットフォームである必要があります)。
これまで、webrtcgetusermediaを使用して概念実証を作成しました。ビデオの録画と再生はできますが、ファイルをサーバーにアップロードする方法がわかりません。
このサンプルへのリンクは次のとおりです http://jsfiddle.net/3FfUP/
そしてjavascriptコード:
(function ($) {
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = document.querySelector('video');
var onFailSoHard = function(e) {
console.log('Reeeejected!', e);
};
$('#capture-button').click (function () {
console.log ("capture click!");
if (navigator.getUserMedia) {
// Not showing vendor prefixes.
navigator.getUserMedia({video: true, audio: true}, function(localMediaStream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(localMediaStream);
// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
// See crbug.com/110938.
video.onloadedmetadata = function(e) {
// Ready to go. Do some stuff.
};
}, onFailSoHard);
} else {
video.src = 'somevideo.webm'; // fallback.
}
});
$('#stop-button').click (function (e) {
video.pause ();
localMediaStream.stop ();
});
})(jQuery);
このサンプルに記録されているものをファイルとして取得して、サーバーにアップロードできるようにするにはどうすればよいですか。
こんにちは、少し遅れて申し訳ありませんが、これが私がサーバーにファイルをアップロードする方法です。これがこれを達成するための最良の方法であるかどうかは本当にわかりませんが、手がかりを与えるのに役立つことを願っていますチュートリアルに従って、Eric Bidelmanが(Sam Duttonがコメントしたように)取得したものはblobであるため、ビデオを取得して応答タイプをblobとして設定するXMLHttpRequestを作成し、その後、応答を追加したFormDataを作成しました。ブロブをサーバーに送信できるようになります。これが私の関数の外観です。
function sendXHR(){
//Envia bien blob, no interpretado
var xhr = new XMLHttpRequest();
var video=$("#myexportingvideo");
xhr.open('GET', video.src , true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// Note: .response instead of .responseText
var blob = new Blob([this.response], {type: 'video/webm'});
console.log(blob.size/1024);
console.log(blob.type);
form = new FormData(),
request = new XMLHttpRequest();
form.append("myblob",blob,"Capture.webm");
form.append("myname",$("#name_test").value);
request.open("POST","./UploadServlet",true);
request.send(form);
}
};
xhr.send();
}
パーティーに数年遅れていることは知っていますが、ビデオをキャプチャして、付属のnode.jsサーバーにwebmファイルとしてアップロードできるスニペットを次に示します。 ChromeとFirefoxでテストしました。
https://Gist.github.com/rissem/d51b1997457a7f6dc4cf05064f5fe984
唯一のクロスプラットフォームWebビデオレコーダーは HDFVR Webカメラビデオレコーダーソフトウェア です。
デスクトップではFlash(Flashコーデックを使用した記録+メディアサーバーへのストリーム)を使用し、モバイルではHTML Media Capture API(OSを使用した記録+ Webサーバーへのアップロード)を使用して、ほぼすべてのデスクトップまたはモバイルブラウザーからビデオを記録します。
それをffmpegインストールにリンクして、すべてをMP4(iOSはAndroidで再生されない.movコンテナーに記録する)のようなクロスプラットフォーム形式に変換でき、JSAPIもあります。