Course Outline
Handling Media Devices
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Limitations and browser compatibility considerations
2. Accessing Media Devices via navigator.mediaDevices
- Enumerating devices
- Managing device changes
3. Cross-browser Compatibility
- API implementation:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategies for Safari fallback
4. Media Device Management
- Device initialization using getUserMedia(constraints)
- Understanding media device constraints
- Controlling the start and stop of media streams
- Handling device changes
5. Recording with MediaRecorder
- Controlling streaming and recording start/stop
- Downloading files in .webm format
- Generating real-time waveform previews
Optional Add-ons:
- Saving audio in .wav format via ScriptProcessorNode
- Visualizing audio FFT spectrum
- Displaying volume levels in decibels
- Implementing voice recognition using webkitSpeechRecognition
Peer Connection
1. Signaling Servers
- Options for bidirectional channels:
- WebSocket
- Socket.io
- SignalR
- Defining message structures
- Developing a simplified WebRTC client
- Executing the full signaling flow
2. Video Chat Implementation with WebRTC
- Architecture: Node.js + ws
- WebRTC client component: RTCPeerConnection
- Conducting local E2E testing
Optional Features:
- Implementing call hang-up (closing connections and stopping media)
- Facilitating group calling in multi-user rooms
- Applying token-based authentication
3. Screen Sharing
- Utilizing getDisplayMedia()
- Architectural design and implementation options
4. Session Description Protocol (SDP)
- Overview and content details
- Methods for reading and interpreting SDP
- Codec management:
- Audio & Video codecs
- Negotiation and control mechanisms
- Fallback strategies
5. WebRTC Statistics via getStats()
- Understanding types of statistics
- Interpreting statistical data
- Creating live bitrate and jitter visualizations
- Implementing quality adaptation strategies
6. Comprehensive Topic Coverage
- Hands-on use-case
Requirements
This course is tailored for frontend and full-stack developers, technical architects, and engineers who are developing 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 prior experience in Node.js and WebSocket-based communication being beneficial but not mandatory.
Testimonials (2)
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
That every technical lesson came with multiple practical exercises to nail down the concepts.