Pages : 1
#1 Le 23/10/2009, à 00:39
- yannoo
Mixage audio/video (v4l + libavcodec)
Bonjour,
J'essaye de faire un programme de mixage audio/video qui permettrait de mixer plusieurs flux audio/video provenant de diverses webcams et/ou de fichiers audio/video (avi,mpeg,wav,etc ...) et d'y appliquer des effets temps réels, programme qui pourrait se commander via une table de mixage Hercules Dj Rmx par exemple.
(je crois que s'appelle du vdjing ou qqchose comme ça)
J'arrive déjà à :
* décoder et afficher le flux de plusieurs webcams en // avec V4L(2)
* décoder et afficher plusieurs fichiers videos en // avec libavcodec/libavformat/libavutil/libswscale et autres
* mixer ces flux videos ensembles (en pure C pour l'instant, mais je pense l'adapter en MMX/SSE bientôt)
* détecter l'appui et la position des boutons/curseurs/"volants" sur la console de mixage Hercules Dj Rmx
Par contre, je n'ai pas encore touché à la partie son, ni donc à la synchronisation entre le son et la video (cf. avance/recul rapide, seeking et autres joyeusetés)
=> où puis-je trouver des tutoriels "assez basiques mais pas trop quand même" et/ou des forums qui concernerait la synchronisation audio/video et le seeking sur des fichiers videos avec les libavqqchose ???
@+
Yannoo
Hors ligne
#2 Le 23/10/2009, à 01:05
- yannoo
Re : Mixage audio/video (v4l + libavcodec)
Concernant la partie son ,j'ai déjà fait :
* des petits programmes permettant d'enregistrer les sons provenant du micro, de les enregistrer et de les lire/sortir sur la carte son
* des petits programmes permettant de jouer des notes midi et de changer d'instrument à l'aide d'un clavier midi (M-Audio KeyStation 49e) ou de simuler un clavier azerty/qwerty à partir d'un clavier midi (très pratique pour une voisine aveugle mais bonne musicienne ...)
Dans un tout autre plan, je commence aussi à plancher sur une sorte de video 3D (cf. un cube 3D avec une video différente sur chaque face du cube qu'on peut faire pivoter en 3D ... mais je prévois aussi un truc bi-écran+lunettes qui permette de simuler un effet de profondeur comme le font nos 2 yeux qui ne voyent en réalité qu'en 2D)
@+
Yannoo
Hors ligne
#3 Le 03/11/2009, à 00:06
- yannoo
Re : Mixage audio/video (v4l + libavcodec)
Ca y est j'ai déjà qqchose qui commence à ressembler à quelque chose : )
* plusieurs acquisitions V4L en // (2x webcams + 1x PCTV)
* mixage de 2 videos dans une troisième, en temps réel et via une console de mixage Hercules Dj Rmx
(RGB1 * AV1 + RGB2 * AV2) * (R,G,B) avec RGB1, RGB2 et (R,G,B) étant pilotés par la Dj Rmx
AV1 et AV2 sont des flux vidéos provenant de fichiers vidéos décodés par (la géniale API) libavcodec
=> le fait que ça ai tourné du premier coup en temps réel avec du "simple code C" (cf. sans MMX ni SSE) m'a carrément impressionné ... sont carrément supermégahyper puissants les processeurs d' aujourd'hui
Donc maintenant, "y'aka" (because "il n'y a qu'à" laisserait supputer que ça doit être assez simple => avec "y'aka" on se doute de suite que c'est ironique et donc loin d'être aussi basique que ça )
* gérer l'audio
(bizarre, l'audio à l'air bien plus compliquée à gérer que la vidéo avec libavcodec ... va comprendre ...)
* gérer la synchro audio/video (bon ça à la rigueur, je pense que c'est très fortement relié au point précédent)
* gérer le seeking (si j'arrive à gérer la synchro audio/video, je pense ça doit être du gateau ...)
J'ai fait des classes C++ pour la partie video et créé une API pour gérer la console Hercules Dj Concole Rmx
Car depuis que j'ai découvert la forte portabilité que procuraient les APIs X11 et OpenGL, + la simplicité d'utilisation et de réutilisation qu'elles permettent, j'ai tendance à tout vouloir APIser
Je voudrais bien mettre à dispo d'un maximum de monde les sources C de tout ça, mais je n'arrive même pas à mettre un simple fichier texte dans un nouveau projet que j'ai crée sous SourceForge ... : (
=> s'il y a quelqu'un qui veut bien m'expliquer comment on "remplit" simplement un projet sous SourceForge, je suis bien sûr preneur ... quoiqu'il y a sûrement des projets déjà plus ou moins correspondant à celui-là non ? (mon but n'est pas d'être "un chef de projet", seulement de "faire un peu avancer le schmilblick")
@+
Yannoo
Dernière modification par yannoo (Le 03/11/2009, à 01:03)
Hors ligne