Course Outline
Handling Media Devices
1. Browser Permissions via navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permission status
- Limitations and browser compatibility
2. Accessing Media Devices with navigator.mediaDevices
- Device enumeration
- Managing device changes
3. Cross-browser Compatibility
- API application:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategies for Safari fallback
4. Media Device Management
- Device initialization: getUserMedia(constraints)
- Configuring media device constraints
- Initiating and terminating media streams
- Handling device changes
5. Recording with MediaRecorder
- Starting/stopping streaming and recording
- Downloading .webm files
- 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
- Complete signaling flow
2. Video Chat via WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Local End-to-End testing
Optional Features:
- Call termination (closing connection, stopping media)
- Group calling (multi-user rooms)
- Token-based simple authentication
3. Screen Sharing
- Utilizing 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
- Interpreting stats
- Live bitrate/jitter charts
- Quality adaptation strategies
6. All topics are
- Hands-on use-case
Requirements
This course is tailored for frontend and full-stack developers, technical architects, and engineers creating browser-based real-time communication features such as video chat, screen sharing, or audio streaming. Participants should possess a solid understanding of JavaScript and web technologies, with optional prior experience in Node.js and WebSocket-based communication.
Testimonials (3)
I really enjoyed learning about AI attacks and the tools out there to begin practicing and actively using for security testing. I took a lot of knowledge away which I didn't have at the beginning and the course met what I hoped it would be. My favorite part shown from the training was Comet Browser and was amazed at what it could do. Definitely something will be looking into more. Overall it was a great course and enjoyed learning all OWASP GenAI Top 10.
Patrick Collins - Optum
Course - OWASP GenAI Security
Hands-on, exercises, in-person helping and questioning.
Jose Paulos - INESC TEC
Course - Tailwind CSS
That every technical lesson came with multiple practical exercises to nail down the concepts.