FFMPEG how to add image and soundwaves to video
Use the overlay filter to put the showwaves on top of image.jpg:

ffmpeg -i song.mp3 -i image.jpg -filter_complex "[0:a]showwaves=s=3840x200:mode=line:colors=red|yellow[sw];[1][sw]overlay=(W-w)/2:(H-h)/2:format=auto,format=yuv420p[v]" -map "[v]" -map 0:a -movflags +faststart video.mp4



Adjust showwaves colors with the colors option. Each channel will have its own color, so in this example, if song.mp3 is stereo, the left channel is red and the right channel is yellow.
If you just want a single waveform of all channels add the aformat filter before showwaves, as in aformat=channel_layouts=mono,showwaves=s=3840x200:mode=line:colors=00ff00.