Create Cover-Preview from Moviefile Screenshot
You can use this script to create covers/previews for movies in browsed by ATVFiles. Ths script checks, if there is a already a cover, if not it takes a screenshot of the movie and saves it as cover by using the mplayer binary.
I used the mplayer from nitoTV Plugin (nitoTV.frappliance/Contents/Resources/mplayer) and copied it to /usr/bin (you have to Mount ReadWrite before). But you can also use the one from the MPlayer OS X (MplayerOSXB8r5/MPlayer OS X 2.app/Contents/Resources/mplayer.app/Contents/MacOS/mplayer). Don't forget to make the binary executable (chmod +x /usr/bin/mplayer).
Now you can create screenshots from the commandline. The following command creates a screenshot with the name 00000001.png, scaled to 400 pixel width with correct aspect ratio:
mplayer -ss 20 -frames 1 -vf scale=400:-2 -vo png Movies/filename.mp4
- 20: take screenshot after 20 seconds of movie file
- 400: screenshot(00000001.png) width 400 pixel
- Movies/filename.mp4: movie file to take a screenshot from
This could be used to create preview-covers for movies like iTunes does. Works with most movie formats/codecs.
The following bash script creates missing covers (only checks for .png) by taking a screenshot from 20 seconds after start of all movie files in /Users/frontrow/Movies/:
#!/bin/bash extensions="avi mov mp4 mkv mpeg mpg" width="400" seconds="20" path="/Users/frontrow/Movies/" for ext in $extensions do for file in $path*.$ext do base=$(echo $file | sed -e "s/\....$//") if [ -s "$file" -a ! -s "$base.png" ] then echo "Create Cover: $file" /usr/bin/mplayer -really-quiet -ss $seconds -frames 1 -vf scale=$width:-2 -vo png:z=1 "$file" mv 00000001.png "$base.png" fi done done
To create Mosiac Cover-Previews of video files, try this script.