Course Outline
Media Devices Handling
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Permission querying and status
- Limitations and browser compatibility
2. Reading Media Devices with navigator.mediaDevices
- Device enumeration
- Handling device changes
3. Cross-browser Compatibility
- API usage:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Safari fallback strategy
4. Media Device Handling
- Device initialization: getUserMedia(constraints)
- Media device constraints
- Starting and stopping media streams
- Handling device changes
5. Recording Devices with MediaRecorder
- Start/stop streaming and recording
- Download .webm file
- Real-time waveform preview
Optional Add-ons:
- Save in .wav format using ScriptProcessorNode
- Audio FFT spectrum visualization
- Volume bar in decibels
- Voice recognition with webkitSpeechRecognition
Peer Connection
1. Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Message structure
- Simplified WebRTC client
- Full signaling flow
2. Video Chat via WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Local E2E testing
Optional Features:
- Call hang-up (close connection, stop media)
- Group calling (multi-user rooms)
- Token-based simple authentication
3. Screen Sharing
- Use of getDisplayMedia()
- Architecture and options
4. Session Description Protocol (SDP)
- Introduction and contents
- Reading and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and control
- Fallback strategies
5. WebRTC Statistics with getStats()
- Types of statistics
- How to interpret stats
- Live bitrate/jitter charts
- Quality adaptation strategies
6. All of the topic are
- Hands-on use-case
Requirements
This course is ideal for frontend and full-stack developers, technical architects, and engineers building browser-based real-time communication features like video chat, screen sharing, or audio streaming. Participants should have a working knowledge of JavaScript and web technologies, with optional experience in Node.js and WebSocket-based communication.
Testimonials (5)
Part related to application security using code snippets
Mateusz Rusak - DOLFI 1920 SPOLKA Z OGRANICZONA ODPOWIEDZIALNOSCIA
Course - OWASP Top 10 2025
Machine Translated
I liked how Gunnar wrote pretty much all of the code on the fly as we were going through, but that there was plenty of pre-prepared material on the google drive that I can refer to after the training. The code Gunnar wrote based on the sample data I provided beforehand was also extremely useful and also made the training relevant to our own datasets.
Ranvir - Schroders Personal Wealth
Course - Visual Studio Code
Multiple examples for each module and great knowledge of the trainer.
Sebastian - BRD
Course - Secure Developer Java (Inc OWASP)
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Course - How to Write Secure Code
Real-life examples.