[分享]Nautilus下用mplayer生成视频缩略图的方法
发表于 : 2009-12-12 9:43
大家知道,nautilus默认使用totem-video-thumbnail来生成缩略图,如果你卸载了totem的话就没有视频缩略图用了。目前很多人使用mplayer作为视频播放软件,这里提供一个用mplayer生成视频缩略图的方法。
国外原贴见这里:
http://forums.fedoraforum.org/showthread.php?t=204321
这实际上是一个脚本文件,该方法利用mplayer的文件输出功能来生成缩略图,但默认是生成jpg文件,再使用convert命令转换为png图片,使用convert需要安装imagemagic中。实际上mplayer完全可以直接输出png图片,从而省略转换这一步骤,因此我将该脚本进行了如下修改:
以下内容用于生成缩略图,保存为mplayer-video-thumb.sh
以下内容保存用于配置nautilus,保存为gconf.sh
安装方法:
然后刷新一下应该就可以看到视频缩略图了。附件提供文件打包下载,及自动安装脚本。
补充说明:
1.gconf.sh并没有配置所有的视频预览,对于能播放而不能生成缩略图的视频,可以手工修改其缩略图方式(gonf-editor->desktop->gnome->thumbnailers);
2.用mplayer来生成缩略图并不一定比totem快;
国外原贴见这里:
http://forums.fedoraforum.org/showthread.php?t=204321
这实际上是一个脚本文件,该方法利用mplayer的文件输出功能来生成缩略图,但默认是生成jpg文件,再使用convert命令转换为png图片,使用convert需要安装imagemagic中。实际上mplayer完全可以直接输出png图片,从而省略转换这一步骤,因此我将该脚本进行了如下修改:
以下内容用于生成缩略图,保存为mplayer-video-thumb.sh
代码: 全选
#!/bin/bash
if [ ! -x "/usr/bin/mplayer" ] ; then
exit 1
fi
PREFIX=mvideothumb
TMP=$(mktemp -d /tmp/$PREFIX.XXXXXX)
SIZE=128
FILE="$1"
OFILE="$2"
if (($# != 2)); then
echo "$0 <in-file> <out-file>"
exit
fi
FILE=$(echo -e "${FILE//\%/\\x}")
eval $(/usr/bin/mplayer \
-really-quiet \
-nojoystick \
-nolirc \
-nocache \
-nortc \
-noautosub \
-vo null \
-nosound \
-frames 1 \
-identify "$FILE" \
| grep "^ID_LENGTH")
ID_LENGTH=${ID_LENGTH%%.*}
# 有的时候mplayer并不能返回正确的时间长度,故每次生成缩略图失败就将时间减半,最多进行3次尝试。
thumb_done=0
cnt=0
while ((!thumb_done)); do
ID_LENGTH=$((ID_LENGTH/2))
/usr/bin/mplayer \
-ss "$ID_LENGTH" \
-really-quiet \
-nojoystick \
-nolirc \
-nocache \
-nortc \
-noautosub \
-vf scale \
-vo png:outdir=$TMP:z=3 \
-nosound \
-frames 1 \
-zoom \
-xy "$SIZE" \
-slave "$FILE"
if mv $TMP/00000001.png "$OFILE" || ((cnt > 2)); then
thumb_done=1
fi
((cnt++))
done
rm -rf $TMP
以下内容保存用于配置nautilus,保存为gconf.sh
代码: 全选
#!/bin/bash
#这里指定mplayer-video-thumb.sh的位置
script_location=/usr/bin/mplayer-video-thumb.sh
if [ -e "$script_location" ]; then
for i in $(gconftool-2 --all-dirs "/desktop/gnome/thumbnailers" \
| grep "/video") \
/desktop/gnome/thumbnailers/application@ogg \
/desktop/gnome/thumbnailers/application@smil \
/desktop/gnome/thumbnailers/[email protected] \
/desktop/gnome/thumbnailers/[email protected] \
/desktop/gnome/thumbnailers/application@x-extension-m4a \
/desktop/gnome/thumbnailers/application@x-extension-mp4 \
/desktop/gnome/thumbnailers/application@x-flash-video \
/desktop/gnome/thumbnailers/application@x-matroska \
/desktop/gnome/thumbnailers/application@x-ms-asf \
/desktop/gnome/thumbnailers/application@x-ogg \
/desktop/gnome/thumbnailers/application@x-quicktime-media-link \
/desktop/gnome/thumbnailers/application@x-shockwave-flash \
/desktop/gnome/thumbnailers/application@x-shorten \
/desktop/gnome/thumbnailers/application@x-smil \
/desktop/gnome/thumbnailers/application@xspf@xml \
/desktop/gnome/thumbnailers/audio@x-pn-realaudio \
/desktop/gnome/thumbnailers/[email protected] \
/desktop/gnome/thumbnailers/[email protected] \
/desktop/gnome/thumbnailers/misc@ultravox; do
echo "Seting Key for ${i##*/}"
/usr/bin/gconftool-2 -s "$i"/command -t string "$script_location %u %o"
/usr/bin/gconftool-2 -s "$i"/enable -t boolean 'true'
done
else
echo "Unable to find: $script_location"
echo "setup not complete"
exit 1
fi
echo "SUCCESS!"
代码: 全选
chmod +x mplayer-video-thumb.sh gconf.sh
sudo cp mplayer-video-thumb.sh /usr/bin/
./gconf.sh
rm -r ~/.thumbnails/fail
补充说明:
1.gconf.sh并没有配置所有的视频预览,对于能播放而不能生成缩略图的视频,可以手工修改其缩略图方式(gonf-editor->desktop->gnome->thumbnailers);
2.用mplayer来生成缩略图并不一定比totem快;