2016-05-22 2 views
0

J'ai un problème avec un film très vieux que je suis en train de récupérer. J'ai deux sources du même film.Synchronisation vidéo/audio avec deux sources différentes

Source 1 (de ffmeg -i):

Duration: 02:43:35.77, start: 0.000000, bitrate: 1342 kb/s 
Stream #0:0: Video: mpeg4 (Simple Profile) (DIVX/0x58564944), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 1200 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 30k tbc 
Stream #0:1: Audio: mp3 (U[0][0][0]/0x0055), 48000 Hz, stereo, s16p, 128 kb/s 

Source 2 (à partir ffmeg -i):

Duration: 02:46:11.04, start: 0.000000, bitrate: 1625 kb/s 
Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1200x720 [SAR 1:1 DAR 5:3], 1431 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default) 
Metadata: 
    handler_name : VideoHandler 
Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default) 
Metadata: 
    creation_time : 2014-06-22 12:06:22 
    handler_name : IsoMedia File Produced by Google, 5-11-2011 

Ce que je voudrais est de prendre l'audio de source 1 et vidéo de la source 2 et créer un nouveau fichier avec eux.

J'ai essayé de changer la source 1 à 30 images par seconde, puis en utilisant son audio avec la vidéo de la source 2, mais l'audio « fps » est vraiment après la synchronisation après un certain temps. Peut-être que mon approche est fausse.

quelle est la meilleure façon de prendre l'audio de la source 1 synchronisé avec la vidéo de la source 2?

+0

Vous devez étirer l'audio pour l'ajuster à la durée. En général, vous laissez l'audio seul et ajustez l'image pour qu'elle corresponde, mais ici vous ajustez l'image afin d'être prêt à sacrifier la "normalité" de votre son (elle sera subtilement plus lente/rapide mais probablement pas perceptible). Qu'est-ce qui ne va pas avec ** 29.97 ** de toute façon puisque c'est une norme de l'industrie (NTSC)? –

+0

PS: Pour étirement avec FFmpeg vous voulez soit ** [Atempo] (https://ffmpeg.org/ffmpeg-filters.html#atempo) ** ou essayez ** [Rubberband] (https://ffmpeg.org/ ffmpeg-filters.html # rubberband) ** en fonction du résultat sonore qui vous convient. Je voudrais essayer Atempo d'abord puisque votre changement de FPS est petit. C'est extraire l'audio en MP3 puis quelque chose comme 'ffmpeg -i src1audio.mp3 -filter: un atempo =" 1.0333 "src1new.mp3'. La valeur 'atempo' est non testée, mais soit aller' 0.99xxxx' ou aller '1.0xxxx' puisque 1 est la vitesse normale –

+0

Merci les gars ... désolé pour le retard. J'ai été débordé par le travail et je n'ai pas eu le temps d'essayer ces méthodes. je n'ai aucun problème avec descendre à 29.97 fps que vous avez dit que c'est une si petite différence. On dirait que c'est la façon la plus appropriée d'y aller. – Indy

Répondre

0

Méthode de base est

ffmpeg -i src2 -itsoffset 20 -i src1 -c copy -map 0:v -map 1:a new.mp4 

Cette vidéo prend de la source 2 et il muxes avec audio de la source 1. Aucun re-encodage. L'audio est retardé de 20 secondes, c'est-à-dire que le début de l'audio provenant de la source 1 se produit à 20 secondes après le début de la vidéo provenant de la source 2. Vous pouvez contrôler la synchronisation de cette façon.

Vous pouvez exécuter une commande courte, d'abord, d'expérimenter la valeur de synchronisation.

ffmpeg -i src2 -itsoffset 20 -i src1 -c copy -map 0:v -map 1:a -t 300 test.mp4 
+0

Merci pour le conseil Mulvya. Est-ce que cela va étirer l'audio scr2 pour correspondre à src1? – Indy

+0

Non. Retarde juste ça. – Mulvya