Add an audio file to a video, overwriting existing audio with FFmpeg.
This method will overwrite any existing audio on the video inputvideo.mp4 and replace it with audiotoadd.mp3
ffmpeg -i inputvideo.mp4 -i audiotoadd.mp3 -map 0:v -map 1:a -c:v copy -shortest outputvideo.mp4
Stream 0 which is the first input is mapped as the video stream. Stream 1 the second input becomes the audio input.
The video stream is copied (not changed) and by using the -shortest command, the encoding ends when the shortest input stream ends. Meaning there will be no audio without video or video with no audio in the output.