Help with syncing Audio and Video, Please Read


I need help syncing audio from an external device with video shot using 3 seperate phones.

So, I went into a studio to record a live performance. The audio was recorded at 48Khz with the microphones they have at the studio, and had set up 3 phones to record the performance at 3 different angles. When trying to import the videos into Shocut, it tells me that the videos have variable framerates, etc.

Iv’e tried using the built-in converter feature to make the framerates constant, but the seperate audio track still falls out of sync quite badly.

After checking the properties of all 3 video files, the framerates are as follows:

29.99 frames/second
30.03 frames/second
30.02 frames/second

Is there anything that I can do to synchronize these 3 videos with the audio track? I was unable to find a topic about this on the forums, so please forgive me if someone has already posted about a similar issue.

Any help would be greatly appreciated, thank you.

Try changing the speed on the Properties tab of either the video or audio clip that you want to change. With the amount of decimal points available there is a good amount of control that Shotcut offers to change the speed at smaller increments. Keep playing with the speed parameter in Properties and it might do the trick.

You can go to Properties > Audio and try the “Sync” option there. I have never used that but it seems to be the option you need to solve your problem.

This is obscure and ugly, but here’s a variable rate ffmpeg transcode command that will give you a constant rate video file with audio stretched as necessary to match the timestamps:

ffmpeg -loglevel verbose -vsync cfr -i Phone1_Input.mp4 -map 0 -ignore_unknown -filter:a? aresample=async=1:min_comp=0.001:min_hard_comp=0.1:first_pts=0 -codec:v? libx264 -profile:v high -crf 16 -g 48 -bf 2 -preset medium -movflags faststart -codec:a? aac -ar 48000 -b:a 384k -sn -dn -f mp4 -y Phone1_Output.mp4

If you don’t have ffmpeg installed separately, there is a copy in the Shotcut program folder.

The first curiosity would be converting all three phone videos to CFR using this command, then put them on tracks in Shotcut and play them at the same time. Do the phones get out of sync with each other over time? If so, the issue is the inaccurate timestamp generators in the phones causing the smear, and there’s not a lot that can be done about that. You would be down to “creative editing” through egregious jump cutting to hide the sync issue.

If the phones actually are in sync, then you have a good chance of getting the studio audio to line up with them too.

In this case, fo future I would never suggest using third party software for this. I’ve edited about 100 music videos and I came to learn that there’s always a sound to sync to. Look for an “S” or “P” sound or a drum hit. Usually, a clap or a snare will work. Place a marker on the audio track and then scrub through your clips and locate that moment. Also, you need to use good converter for that

Welcome to the forum!

I think we’re under the impression that the OP already tried to sync the videos to an “S”/“P”/clap/snare, but over time the different tracks fall out of sync because the playback speed of each track is slightly different. This is a very common problem when using different capture devices from different manufacturers that are not linked by a shared time code generator or genlock system. Generally speaking, the less professional the capture device, the more it smears time due to an inaccurate timestamp generator. The longer the captured video is, the greater the problem will become.

Since Shotcut itself is built on top of ffmpeg, using ffmpeg to convert variable frame rate to constant frame rate would be a first-party solution. The command-line code listed above is just a tweaked version of the process that happens in Shotcut when using the Convert to Edit-Friendly function. Granted, we are working our way through an edge case here, so we’re having to bend the rules a bit.

This topic was automatically closed after 90 days. New replies are no longer allowed.