You see these on youtube a lot, and sound file being played back with a fixed image. This is how to create one using ffmpeg
ffmpeg -loop 1 -i input.jpg -i input.mp3 -c:a copy -c:v mjpeg -aspect 16:9 -shortest output.mp4
The -shortest option ensures the video is created the same length as the sound file (the shortest of the two inputs, as the image file will loop forever!
The -loop 1 option (which replaces loop_input) ensures the image file is continuously looped.
one can play around with audio codecs, video outputs and aspect ratios until you have what you want (you can always use -t for time in seconds for testing)