H264 is a video stream format - it doesn't contain any audio stream data at all.
MP4 is a package, which can contain both audio and video stream(s) - but it can't "invent" an audio stream from video data!
Start with your movie source file: it probably contains both video and audio streams, and you will need to fetch / convert both in order to build a "working" MP4 file.
Check you original with VLC: "Tools...Codec Information" will show you what streams are present in the original file. FFMPEG can extract both Video and Audio streams to separate files, and then combine them back again.
Extract Audio stream:
ffmpeg -i GoodAudioInput.mp4 -c:a copy -vn -sn audio.m4a
Get Video stream:
ffmpeg -i GoodVideoInput.mp4 -c:v copy -sn -an video.mp4
Merge the two:
ffmpeg -i video.mp4 -i audio.m4a -c:v copy -c:a aac -strict experimental merged.mp4
To resync audio:
ffmpeg -i video.mp4 -itsoffset 3.0 -i audio.m4a -c:v copy -c:a aac -strict experimental merged.mp4
(Will make audio 3.0 seconds later)