This is a script I made to take advantage of the ffmpeg package in linux to quickly convert an mp3 to avi using a static image. I personally use this technique for uploading my songs to YouTube. I originally found the conversion command here.
All you need is a linux distro with ffmpeg installed, a jpeg or png image, and an mp3. Note: It is highly likely other image formats, audio formats, and output video formats will work, but I have only used jpeg/png+mp3+avi and so cannot attest to results otherwise.
Usage: bash mp32avi.sh <image_file> <mp3_file> <output_file.avi>
Code (mp32avi.sh):
#!/bin/bash FFMPEG=`which ffmpeg` if [ "$FFMPEG" = "" ] ; then echo "Please install ffmpeg."; exit 0; fi if [ $# != 3 ] ; then echo "Usage: $0 <image_file> <mp3_file> <output_file.avi>"; exit 0; fi if [ ! -f $1 ] ; then echo "Source image '$1' not found."; exit 0; fi if [ ! -f $2 ] ; then echo "Source mp3 '$2' not found."; exit 0; fi if [ -f $3 ] ; then echo "Output file '$3' exists. Overwrite? (y/n)"; read CONFIRM if [ "$CONFIRM" == "y" ] ; then echo "Overwriting '$3'" else if [ "$CONFIRM" == "Y" ] ; then echo "Overwriting '$3'" else echo "Operation canceled."; exit 0; fi fi fi TIME=`$FFMPEG -i $2 |& grep 'Duration' | awk '{ print $2; }' | sed -e 's/,//g'` $FFMPEG -loop_input -i $1 -i $2 -acodec copy -y -t $TIME $3