Cross browser audio/video/screen recording via webRTC – MediaStreamRecorder

MediaStreamRecorder.js is a cross-browser implementation to record audio & video streams via WebRTC. The lib allows you to submit/upload recorded blobs in realtime to your server.

Record audio+video in Chrome

  1. <script src="https://cdn.webrtc-experiment.com/MediaStreamRecorder.js"> </script>
  2. <script>
  3. var mediaConstraints = {
  4.     audio: true,
  5.     video: true
  6. };
  7.  
  8. navigator.getUserMedia(mediaConstraints, onMediaSuccess, onMediaError);
  9.  
  10. function onMediaSuccess(stream) {
  11.     var multiStreamRecorder = new MultiStreamRecorder(stream);
  12.     multiStreamRecorder.video = yourVideoElement; // to get maximum accuracy
  13.     multiStreamRecorder.audioChannels = 1;
  14.     multiStreamRecorder.ondataavailable = function (blobs) {
  15.         // blobs.audio
  16.         // blobs.video
  17.     };
  18.     multiStreamRecorder.start(3 * 1000);
  19. }
  20.  
  21. function onMediaError(e) {
  22.     console.error('media error', e);
  23. }
  24. </script>

Uploading and receiving via PHP

  1. <?php
  2. foreach(array('video', 'audio') as $type) {
  3.     if (isset($_FILES["${type}-blob"])) {
  4.  
  5.         $fileName = $_POST["${type}-filename"];
  6.         $uploadDirectory = "uploads/$fileName";
  7.  
  8.         if (!move_uploaded_file($_FILES["${type}-blob"]["tmp_name"], $uploadDirectory)) {
  9.             echo("problem moving uploaded file");
  10.         }
  11.  
  12.         echo($uploadDirectory);
  13.     }
  14. }
  15. ?>

API documentationGitHub

Alex

I am a full-stack developer. I love programming,  design and know my way around server architecture as well.  I would never feel complete, with one of these missing. I have a broad range of interests, that’s why I constantly dive into new technologies and expand my knowledge where ever required. Technologies are evolving fast and I enjoy using the latest. Apart from that, I am a peace loving guy who tries to have people around him that think the same.  I truly believe in the principle: “If you help someone, someone will help you, when you need it."

View Comments

Recent Posts

B&B / Hotel Booking Solutions for WordPress | 2024

BOOKING SOLUTIONS 202x This is my take on a subset of booking, appointment, PMS or… Read More

4 weeks ago

WordPress Cron + WP-CLI + Ntfy

THE GOAL Create a system cron for WordPress, that is accessible and can be easily… Read More

2 months ago

2024 is here and now :)

2024, what's cooking? Slowly getting into the 2024 spirit. 3 projects coming to a close… Read More

4 months ago

2023 ends and whats next !

Short look back at 2023 This has been a busy and interesting year. I am… Read More

4 months ago

cubicFUSION Grid Tweaker – Elementor Grid made easy.

Elementor Pro provides grid containers as an experimental feature. The options provided are limited, when… Read More

5 months ago

Archaeology Travel Booth – Travel Innovation Summit 2023

Archaeology Travel is an online travel guide for people who enjoy exploring the world’s pasts.… Read More

6 months ago