Course Code: webrtccust
Duration: 14 hours
Prerequisites:
  • Each participant should have access to a computer, laptop, or tablet with a keyboard
  • Devices should have a webcam and a microphone
  • If there are any domain restrictions that block peripheral access, it should be resolved before the course start
  • Internet access is required
  • Each laptop should have the following installed:
    • Visual Studio Code or an equivalent IDE
    • Extensions for HTML, CSS, and JavaScript code analysis
    • Git Bash or an equivalent terminal
    • Node.js – updated to the latest version, or all participants should use the same version
    • Access to a TURN and/or STUN server
Overview:
The course will be intensive.
 
It would be ideal for everyone to have their setup fully prepared in advance.

 
Course Outline:

Day 1 - Media Devices handling

  • Constraints configuration
    ○ input devices
    ○ output devices
    ○ audio properties
    ○ video properties
    ○ device surfaces
    ○ video resolutions (VGA / SD, HD, Full HD, QHD / 2K, UHD / 4K, 8K)

 

  • Device interrogation
    ○ query list by device type
    ○ query by device id
    ○ mis-configuration handling

 

  • Device callbacks
    ○ Device change events
    ○ Device settings (exposure time, compensation, brightness, white balance)
    ○ Display in page / in modal

 

  • Device playback
    ○ Image capture
    ○ Image flipping
    ○ Video play / stop
    ○ Video recording
    ○ Video filters (blur, brightness, contrast, gray scale, invert, opacity, saturation, sepia)

Day 2 - Peer connection

  • TURN / STUN servers
    ○ Server architecture
    ○ Server configurations
    ○ Proprietary server

 

  • Peer connections
    ○ Signaling servers
    ○ SDP generation process (Offer / Answer handshake)
    ○ Connection callbacks
    ○ Remote tracks handling
    ○ Fallback mechanisms

 

  • RTC Data Channels
    ○ Signaling architecture
    ○ Channel configuration
    ○ Functionality and Features
    ○ Use-cases
    ○ Advantages and benefits