Uit Hack42
Ga naar: navigatie, zoeken
(audio en video synchroniseren)
 
(github link)
 
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven)
Regel 14: Regel 14:
 
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.
 
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 [https://www.youtube.com/watch?v=TjAa0wOe5k4 deze], [https://www.youtube.com/watch?v=s_PbyRpKrRk deze] of [https://www.youtube.com/watch?v=ucZl6vQ_8Uo 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.
+
De vraag is dan natuurlijk altijd: hoe groot moet deze delay zijn? Hiervoor zijn calibratievideo's beschikbaar (bijv [https://www.youtube.com/watch?v=TjAa0wOe5k4 deze], [https://www.youtube.com/watch?v=s_PbyRpKrRk deze] of [https://www.youtube.com/watch?v=ucZl6vQ_8Uo 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 ==
 
== Idee ==
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 16 apr 2019 om 21:22

Project: LipSync
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
LipSync Picture.jpg

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
File:LipSync_Picture.jpg noez

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