If your video file contains subtitle tracks or multiple audio tracks, the above solution by @qubodup will discard the subtitle tracks but keep all the non-first audio tracks in the video. In that case, you should use the following command line as a more general solution:
ffmpeg -y -i v.mp4 -i a.m4a -c copy -map 0 -map -0:a -map 1:a video-new.mp4
This will replace all audio tracks in the video file v.mp4 by all audio tracks in the audio file a.m4a, keeping all other tracks including video tracks and subtitle tracks intact.
For better understanding, -map 0 selects all tracks (including all audio/video/subtitle tracks) from the first input file (index starts from 0); -map -0:a discard all audio tracks from the first input file; -map 1:a select all audio tracks from the second input file. In particular, 1:a:0 means the first (the last '0') audio track (the middle 'a') of the second input file (the first '1'), discarding the 3rd number (i.e., becomes 1:a) means all that type of tracks (audio tracks), discarding the 2nd number (i.e., becomes 1) mean all types of tracks. The -ve sign means subtraction.
For detailed explanation on FFMPEG's -map option, you can refer to FFMPEG Advanced Options