I can edit my movie in some video editor and perfectly match audio with video, but in that case I would have to re-encode the entire video which would be time consuming. Code like:
ffmpeg -i my_movie.mp4 -c:v copy -c:a aac -af "audio_filter_help_me_guys" fixed_movie.mp4
would save my time. Or I just have to use video editor such as Kdenlive?
You should not reencode neither the video nor the audio, but just delay the audio stream. The
-itsoffset
option offfmpeg
serves the purpose of adding an offset to the time stamp of a stream, such that it is delayed. The command therefore would be more like:-itsoffset 0.5 -i my_movie.mp4
specifies that the second input file (which, in this case, happens to be the same as the first), should be delayed by 0.5 s.-map 0:v -map 1:a
selects only the video from the first input file, and only the audio from the second (delayed) stream. These woulld not be needed if you had two files, one with only the video stream and the other with only the audio stream.-c:copy
indicates all streams should be copied (and is a shortcut notation equivalent to-c:v copy -c:a copy
)You should also be able to achieve this with the graphical tool Avidemux, but my experience is that it does not always work reliably. The command line is, once you found the options, way faster.