SORU
15 Mayıs 2013, ÇARŞAMBA


Nasıl Web Kamerası ve ses webRTC ve sunucu tabanlı Peer bağlantısı kullanarak kaydetmek için

Kullanıcılar webcam ve ses kaydı ve sunucu üzerindeki bir dosyaya kaydetmek istiyorum. Bu dosyalar daha sonra diğer kullanıcılara hizmet etmek mümkün olacaktır.

Oynatma sorunum yok, ancak sorunları kaydetmek için içeriği yaşıyorum.

Benim anlayış getUserMedia olduğunu .() kayıt fonksiyonu henüz yazılmadı sadece bir öneri bunun için şimdiye kadar yapılmış.

Benim sunucu PeerConnectionAPİ kullanarak eşler arası bir bağlantı oluşturmak istiyorum. Bu biraz hacky olduğunu biliyorum, ama sunucuda bir eş oluşturmak ve müşteri-eş gönderir ne kaydetmek mümkün olmalıdır düşünüyorum.

Eğer bu mümkün değilse, o zaman bir flv veya diğer video formatı için bu verileri kaydetmek gerekir.

Benim tercihim aslında kamerası istemci tarafı ses kaydı için, Eğer ilk girişimi beğenmediler mi yoksa yeniden video kaydetmek için istemci izin vermek için yüklemeden önce. Bu da ağ bağlantı kesintileri için izin verecek. 'Görüntü tamam ama ses çok ihtiyacım var.' tuvale veri göndererek kamerası - bireysel kayıt sağlayan bazı kodlar gördüm

İşte ben, şimdiye kadar istemci tarafı kodu:

  <video autoplay></video>

<script language="javascript" type="text/javascript">
function onVideoFail(e) {
    console.log('webcam fail!', e);
  };

function hasGetUserMedia() {
  // Note: Opera is unprefixed.
  return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
            navigator.mozGetUserMedia || navigator.msGetUserMedia);
}

if (hasGetUserMedia()) {
  // Good to go!
} else {
  alert('getUserMedia() is not supported in your browser');
}

window.URL = window.URL || window.webkitURL;
navigator.getUserMedia  = navigator.getUserMedia || navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia || navigator.msGetUserMedia;

var video = document.querySelector('video');
var streamRecorder;
var webcamstream;

if (navigator.getUserMedia) {
  navigator.getUserMedia({audio: true, video: true}, function(stream) {
    video.src = window.URL.createObjectURL(stream);
    webcamstream = stream;
//  streamrecorder = webcamstream.record();
  }, onVideoFail);
} else {
    alert ('failed');
}

function startRecording() {
    streamRecorder = webcamstream.record();
    setTimeout(stopRecording, 10000);
}
function stopRecording() {
    streamRecorder.getRecordedData(postVideoToServer);
}
function postVideoToServer(videoblob) {
/*  var x = new XMLHttpRequest();
    x.open('POST', 'uploadMessage');
    x.send(videoblob);
*/
    var data = {};
    data.video = videoblob;
    data.metadata = 'test metadata';
    data.action = "upload_video";
    jQuery.post("http://www.foundthru.co.uk/uploadvideo.php", data, onUploadSuccess);
}
function onUploadSuccess() {
    alert ('video uploaded');
}

</script>

<div id="webcamcontrols">
    <a class="recordbutton" href="javascript:startRecording();">RECORD</a>
</div>

CEVAP
25 Temmuz 2014, Cuma


Kesinlikle Kurento bakmak gerekir. Sen WebRTC bir besleme kaydetmek için izin veren WebRTC sunucu altyapısı sağlar ve çok daha fazlası. Ayrıca here planlama, uygulama için bazı örnekler bulabilirsiniz. Gerçekten bu demo için kayıt özellikleri eklemek için kolay ve bir URI (yerel disk ya da başka bir yerde) medya dosya deposu.

Proje LGPL altında lisanslı.

Yasal Uyarı: Kurento geliştiren ekibin bir parçasıyım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006