#!/bin/bash
FFMPEG=`which ffmpeg`
FPS=1 # for a youtube video from a mp3, it is enough
if [ "$FFMPEG" = "" ] ; then
echo "Please install ffmpeg.";
exit 0;
fi
if [ $# != 2 ] ; then
echo "Usage: $0 ";
exit 0;
fi
if [ ! -f $1 ] ; then
echo "Source mp3 '$2' not found.";
exit 0;
fi
if [ -f $2 ] ; then
echo "Output file '$2' exists. Overwrite? (y/n)";
read CONFIRM
if [ "$CONFIRM" == "y" ] ; then
echo "Overwriting '$2'"
else
if [ "$CONFIRM" == "Y" ] ; then
echo "Overwriting '$2'"
else
echo "Operation canceled.";
exit 0;
fi
fi
fi
TITLE=`$FFMPEG -i $1 2>&1 | grep TIT2 | cut -d: -f 2 | tr -d "'"` # get the title and remove "'" chars
IMAGE=/tmp/$RANDOM.gif
convert -size 1024x240 xc:black -fill white -draw "gravity Center text 0,0 '$TITLE'" $IMAGE # generate a black-background image with mp3 title in white
TIME=`$FFMPEG -i $1 2>&1 | grep Duration | cut -f1 -d, | cut -f2,3,4,5 -d:`
$FFMPEG -r $FPS -loop_input -i $IMAGE -i $1 -acodec copy -y -t $TIME $2
rm $IMAGE
Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/oLENS_5pH8M/12593