Course Outline
Managing Media Devices
Browser Permissions via navigator.permissions
- Hardware access:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Constraints and browser compatibility issues
Retrieving Media Devices using navigator.mediaDevices
- Listing available devices
- Managing device changes
Ensuring Cross-Browser Compatibility
- API implementation:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Safari fallback approaches
Media Device Management
- Initializing devices: getUserMedia(constraints)
- Defining media device constraints
- Controlling media stream start and stop
- Responding to device changes
Recording Devices using MediaRecorder
- Controlling streaming and recording start/stop
- Downloading .webm files
- Generating real-time waveform previews
Optional Extensions:
- Exporting audio in .wav format using ScriptProcessorNode
- Visualizing Audio FFT spectrum
- Displaying volume bars in decibels
- Implementing voice recognition with webkitSpeechRecognition
Peer Connections
Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Structuring messages
- Creating a simplified WebRTC client
- Completing the signaling flow
Video Chat using WebRTC
- System architecture: Node.js + ws
- WebRTC client setup: RTCPeerConnection
- Local end-to-end testing
Optional Enhancements:
- Ending calls (closing connections, stopping media)
- Group calling (multi-user rooms)
- Basic token-based authentication
Screen Sharing
- Utilizing getDisplayMedia()
- Architectural considerations and options
Session Description Protocol (SDP)
- Overview and components
- Parsing and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and management
- Fallback strategies
WebRTC Statistics via getStats()
- Categorization of statistics
- Interpreting statistical data
- Visualizing live bitrate and jitter
- Strategies for quality adaptation
Coverage of all topics
- Practical use-case implementation
Requirements
This course is well-suited for frontend and full-stack developers, technical architects, and engineers developing browser-based real-time communication features, such as video chat, screen sharing, or audio streaming. Participants are expected to have a solid understanding of JavaScript and web technologies, with experience in Node.js and WebSocket-based communication being beneficial but not strictly required.
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 2600 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (3)
The training helped me expand my knowledge and understanding of Burp Suite. I also realized that what I had learned through self-study was still quite limited. This training was very helpful to me as a QA because Burp Suite is a valuable tool for performing security testing and improving the overall quality of application testing. I will continue exploring this tool and learning more about its features and capabilities.
Rea Mendez - BAKAWAN Data Anallytics Inc.
Course - OWASP Top 10 2025
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.