Bonjour tout le monde, je suis nouveau dans la communauté et je me permet de vous soumettre un problème que j'ai rencontré en travaillant sur un projet.
Contexte :
Je développe une application Node.js (Express) qui traduit des vidéos YouTube en convertissant l'audio original en une autre langue. Le processus fonctionne comme suit :
Extraction de l'audio de la vidéo YouTube
Transcription du texte avec Whisper API
Traduction du texte vers la langue cible avec OpenAI
Synthèse vocale du texte traduit
Fusion de l'audio traduit avec la vidéo originale via FFmpeg
Problème :
L'audio traduit et la vidéo originale ne sont pas correctement synchronisés. La durée de l'audio traduit est souvent différente de celle de la vidéo originale, ce qui cause un décalage progressif entre le son et l'image.
Détails techniques :
J'utilise FFmpeg pour la fusion avec la commande : ffmpeg -i "video.mp4" -i "audio.mp3" -c:v copy -map 0:v:0 -map 1:a:0 "output.mp4"
J'ai précédemment essayé d'ajuster automatiquement la vitesse de l'audio traduit pour correspondre à la durée de la vidéo, mais cette approche a été abandonnée
Le paramètre -shortest a été supprimé pour éviter que la vidéo ne soit tronquée
Solutions déjà tentées :
Ajustement automatique de la vitesse de l'audio (abandonné)
Modification des paramètres FFmpeg
Suppression du paramètre -shortest
Question :
Quelle serait la meilleure approche pour synchroniser l'audio traduit avec la vidéo originale sans déformer la voix ni tronquer la vidéo ? Y a-t-il des techniques FFmpeg spécifiques ou d'autres outils que je devrais considérer ?
Cordialement
Partager