Get in Touch
 Duration 14 hours

Course Outline

Media Device Management

Browser Permissions using navigator.permissions

  • Hardware access:
    • Webcam
    • Microphone
  • Optional permissions:
    • Geolocation
    • Notifications
    • Clipboard (read/write)
  • Querying permissions and checking status
  • Constraints and browser compatibility

Accessing Media Devices with navigator.mediaDevices

  • Listing available devices
  • Managing device changes

Cross-Browser Compatibility

  • API utilization:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Safari fallback approaches

Managing Media Devices

  • Device initialization: getUserMedia(constraints)
  • Media device constraints
  • Initiating and terminating media streams
  • Responding to device changes

Recording with MediaRecorder

  • Managing stream start/stop and recording
  • Downloading .webm files
  • Live waveform preview

Optional Enhancements:

  • Saving audio in .wav format via ScriptProcessorNode
  • Audio FFT spectrum visualization
  • Volume bar display in decibels
  • Voice recognition using webkitSpeechRecognition

Peer Connections

Signaling Servers

  • Options for bidirectional channels:
    • WebSocket
    • Socket.io
    • SignalR
  • Message formatting
  • Simplified WebRTC client implementation
  • Complete signaling workflow

WebRTC Video Chatting

  • Architecture: Node.js + ws
  • WebRTC client: RTCPeerConnection
  • Local end-to-end testing

Optional Capabilities:

  • Terminating calls (closing connections, stopping media)
  • Group calls (multi-user rooms)
  • Basic token-based authentication

Screen Sharing

  • Utilizing getDisplayMedia()
  • Architecture and configuration options

Session Description Protocol (SDP)

  • Overview and components
  • Parsing and interpreting SDP
  • Codecs:
    • Audio & Video
    • Negotiation and management
    • Fallback strategies

WebRTC Statistics via getStats()

  • Categories of statistics
  • Interpreting statistical data
  • Real-time bitrate/jitter graphs
  • Strategies for quality adaptation

All topics covered

  • Hands-on practical exercises

Requirements

This program is tailored for frontend and full-stack developers, technical architects, and engineers implementing browser-based real-time communication features, such as video conferencing, screen sharing, or audio streaming. Participants should possess a solid understanding of JavaScript and web technologies, with complementary experience in Node.js and WebSocket-based communication serving as a beneficial advantage.

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories