k (calibratievideo's bij naam noemen) |
k (Lurwah heeft pagina LipSync hernoemd naar Gebruiker:Raboof/LipSync) |
||
(Een tussenliggende versie door een andere gebruiker niet weergegeven) | |||
Regel 25: | Regel 25: | ||
We zouden de blobs voor processing naar een of ander server-side proces kunnen sturen, maar kunnen we ze ook 'lokaal' verwerken? Iemand heeft [https://github.com/Kagami/ffmpeg.js/ ffmpeg naar javascript gecompiled], wellicht via die weg? | We zouden de blobs voor processing naar een of ander server-side proces kunnen sturen, maar kunnen we ze ook 'lokaal' verwerken? Iemand heeft [https://github.com/Kagami/ffmpeg.js/ ffmpeg naar javascript gecompiled], wellicht via die weg? | ||
+ | |||
+ | == Code == | ||
+ | |||
+ | Eerste experimenten op https://github.com/raboof/lipsync |
Huidige versie van 17 mei 2024 om 10:00
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? Hiervoor zijn calibratievideo's beschikbaar (bijv deze, deze of deze), 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?
Code
Eerste experimenten op https://github.com/raboof/lipsync