Project: LipSync | |
---|---|
Naam | LipSync |
Door | Raboof |
Status | Idee |
Madskillz | video, audio, sync, android, html5, javascript, mediarecorder, ffmpeg |
Doel / Omschrijving | |
audio en video synchroniseren | |
Alle Projecten - Project Toevoegen |
Nee, we gaan geen playbackvideo's maken, maar Audio en video synchroniseren.
Probleem
Wanneer je een audio/videosysteem hebt met aparte apparaten voor de audio en voor de video (bijv externe schermen, losse versterkers/audioapparatuur etc), zoals het Projectiewandje, dan kan het voorkomen dat video en audio niet helemaal in sync zijn, omdat de latency van het audio- en het video-pad niet hetzelfde is.
In de meeste videosoftware, en soms zelfs de video/audioinstellingen van het OS, kun je een delay configureren voor de audio of video om hiervoor te compenseren.
De vraag is dan natuurlijk altijd: hoe groot moet deze delay zijn? Er zijn handige video's beschikbaar (bijv deze, deze of deze) die dit makkelijk maken, maar het blijft lastig dit op het oog/oor precies goed te krijgen. Het zou beter zijn als we de delay zouden kunnen meten.
Idee
Nu heeft tegenwoordig bijna iedereen een prima audio/video-recorder in zijn broekzak. Kunnen we iets makkelijks maken zodat je een filmpje kunt opnemen maken van je testopstelling, en in dit filmpje de daadwerkelijke benodigde delay te meten?
Aanpak
Het meest universeel zou zijn wanneer we dit kunnen doen in HTML5/Javascript. Met de MediaRecorder API kun je videofragmenten opnemen. Die krijg je dan als blobs terug, zo te zien vaak als WebM met de video in VP8 en de audio in Vorbis. Om die te kunnen processen moeten we die dus kunnen decoderen.
We zouden de blobs voor processing naar een of ander server-side proces kunnen sturen, maar kunnen we ze ook 'lokaal' verwerken? Iemand heeft ffmpeg naar javascript gecompiled, wellicht via die weg?