3 ms·
https://blog.paul.cx/post/audio-video-synchronization-with-the-web-audio-api/ https://blog.paul.cx/post/audio-video-synchronization-with-t... has some backgroun
by padenot 3y ago
https://blog.paul.cx/post/audio-video-synchronization-with-the-web-audio-api/ https://blog.paul.cx/post/audio-video-synchronization-with-t... has some background, https://github.com/w3c/webcodecs/blob/main/samples/lib/web_audio_controller.js https://github.com/w3c/webcodecs/blob/main/samples/lib/web_a... is part of a full example that you can run using web codecs, web audio, audioworklet SharedArrayBuffer, and does A/V sync.
If it doesn't answer your question let me know because I wrote both (and part of the web audio spec, and part of the webcodecs spec).
- kixelated 3y agoI'm using AudioWorklet and SharedArrayBuffer. Here's my code: https://github.com/kixelated/moq-js/tree/main/lib/playback/webcodecs https://github.com/kixelated/moq-js/tree/main/lib/playback/w... It's just a lot of work to get everything right. It's kind of working, but I removed synchronization because the signaling between the WebWorker and AudioWorklet got too convoluted. It all makes sense; I just wish there was an easier way to emit audio. While you're here, how difficult would it be to implement echo cancellation? The current demo is uni-directional but we'll need to make it bi-directional for conferencing.
- padenot 3y agoJust use getUserMedia as usual and it will just work, nothing special to do.