Hi Listers!
Here is a little tooly that I made that may be be of any use to you guys ;
Today, if you want to publish a song, pretty soon they're going to ask your for "the video". But sometimes you don't have the time / money to do it. Heck, it's a job. The "Lost Week" video took me like a (big. Huge) week to put together, not counting shooting time. BTW it was edited in KDEnlive, but since No Sister (and my Why, Phil show and all) I use Blender for that kind of things now.
Back on topic : You don't have time to put together a proper video for your shiny new because you have a life and recording the song already took the best of it lately.
Here is a script to quickly generate a cool-looking music video, given the sound file, the cover artwork image and an optional ending bit :
#!/usr/bin/env bash
This will
FILE_PATH="$1"
FFMPEG="ffmpeg"
ARTIST="$2"
ALBUM="$3"
COVER_FILE_PATH="$4"
EFFECT="$5"
if [ "$#" -ne 5 ]; then
echo "Usage: $0 [audio file path] 'artist name' 'album name' [artwork image file path] [point|line|p2p|cline]"
exit
fi
convert -resize 1280x720 "${COVER_FILE_PATH}" -background none -gravity center -extent 1280x720 "${COVER_FILE_PATH}.jpg"
$FFMPEG -y -i "${FILE_PATH}" -loop 1 -i "${COVER_FILE_PATH}.jpg" -filter_complex "[0:a] showwaves=s=1280x310:mode=${EFFECT}:r=25,colorkey= 0x000000:0.1:0.5[wave];[1:v][ wave] overlay=y=H-h:eval=init[ canvas];[canvas]drawtext= fontfile='Jura-Book.ttf': fontsize=60:text='${ARTIST}': x=30:y=(h-70-text_h*2.5): fontcolor=white:shadowy=2: shadowx=2:shadowcolor=black, drawtext=fontfile='Jura-Book. ttf':fontsize=72:text='${ ALBUM}':x=20:y=(h-70-text_h): fontcolor=ff6600:shadowy=2: shadowx=2:shadowcolor=black" -shortest -codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k "${FILE_PATH}-composite.mp4"
if [[ -e "end.mp4" ]]; then
$FFMPEG -y -i "${FILE_PATH}-composite.mp4" -i "end.mp4" -filter_complex "[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" "${ARTIST}-${ALBUM}.mp4"
rm -rf "${FILE_PATH}-composite.mp4"
else
mv "${FILE_PATH}-composite.mp4" "${ARTIST}-${ALBUM}.mp4"
fi
rm -rf "${COVER_FILE_PATH}.jpg"
echo -e "
################################################
DONE : ${ARTIST}-${ALBUM}.mp4"
- Take the (PNG) cover, and center it inside a 1280x720 (AKA 720p) pixels video ;
- Generate a "wave" of the (WAV) sound file ;
- Print "Artist" in Orange, And then "Title" in White, below, slightly bigger and offset to the left ;
- Merge the 3 together ;
- If there exists a file named "end.mp4" in the directory, append it to the final video ;
- Clean up everything, and produce a file named "Artist-Title.mp4" in 720p.
Notes:
With it, you can make that kind of music video ; hope it's useful, cheers everybody, keep on rocking it!
- This script depends on the ffmpeg and imagemagick packages
- The last argument is the style of the dancing waveform, take a short audio file to experiment with all 4 of them
- The "end.mp4" file is optional, it's there if you want an ending credit / legal / whatever bit, or a nice fade out, anything. It's scaled to fit.
- If there is a "Jura-Book.ttf" font file in the directory from which the script is invoked, it will be used, otherwise your default serif font will be.
yPhil
-- Yassin "xaccrocheur" Philip http://manyrecords.com / http://yassinphilip.bitbucket.org
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user