# create audio tracks (10,15,30,60 seconds) sox -R -n beep.wav synth 0.04 sine 440 sox -R -n null.wav trim 0 0:00.48 sox -R null.wav -v 0.2 beep.wav null.wav -e signed -b 16 -c 2 second.wav sox -R second.wav second.wav second.wav second.wav second.wav five.wav sox -R five.wav five.wav ten.wav sox -R five.wav five.wav five.wav quarter.wav sox -R quarter.wav quarter.wav half.wav sox -R half.wav half.wav minute.wav rm -f beep.wav null.wav second.wav five.wav # create 1-minute video track (1500 frames) ls clock[0-5][0-9].png clock60.png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%04d.png\n", $0, n-12); n++}}' | sh rm -f frame-0[0-9][0-9].png frame0000.png frame150[1-9].png frame15[1-9][0-9].png ffmpeg -i frame%04d.png -i minute.wav -target pal-dvd -aspect 16:9 track00.mpg rm -f frame*.png # create 15-seconds video tracks (375 frames each) ls clock0[0-9].png clock1[0-5].png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, n-12); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track01.mpg rm -f frame*.png ls clock1[5-9].png clock2[0-9].png clock30.png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, n-12); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track02.mpg rm -f frame*.png ls clock3[0-9].png clock4[0-5].png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, n-12); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track03.mpg rm -f frame*.png ls clock4[5-9].png clock5[0-9].png clock60.png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, n-12); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track04.mpg rm -f frame*.png # create 15-seconds tracks with clock running backwards ls clock4[5-9].png clock5[0-9].png clock60.png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, 387-n); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track05.mpg rm -f frame*.png ls clock3[0-9].png clock4[0-5].png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, 387-n); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track06.mpg rm -f frame*.png ls clock1[5-9].png clock2[0-9].png clock30.png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, 387-n); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track07.mpg rm -f frame*.png ls clock0[0-9].png clock1[0-5].png | awk '{for (i=0;i<25;i++) {printf("cp %s frame%03d.png\n", $0, 387-n); n++}}' | sh rm -f frame-[0-9][0-9].png frame000.png frame37[6-9].png frame3[89][0-9].png ffmpeg -i frame%03d.png -i quarter.wav -target pal-dvd -aspect 16:9 track08.mpg rm -f frame*.png # create menu tracks ffmpeg -loop 1 -i menu1.png -i ten.wav -target pal-dvd -aspect 16:9 -t 0:10 menu1.mpg ffmpeg -loop 1 -i menu2.png -i ten.wav -target pal-dvd -aspect 16:9 -t 0:10 menu2.mpg ffmpeg -loop 1 -i menu3.png -i half.wav -target pal-dvd -aspect 16:9 -t 0:30 menu3.mpg ffmpeg -loop 1 -i menu4.png -i half.wav -target pal-dvd -aspect 16:9 -t 0:30 menu4.mpg ffmpeg -loop 1 -i menu5.png -i half.wav -target pal-dvd -aspect 16:9 -t 0:30 menu5.mpg