2008年 08月 12日 的归档
给 iPod 转视频的脚本
由于新买了个 iPod touch,这几天认真钻研了下它的视频格式,搞了个nautilus脚本,使用mencoder做后端.
以后想把某个视频文件转成iPod的格式的话,直接在 nautilus 里面右键点文件-脚本-toIpod 就可以搞定了.
脚本的特点:
* 借助mplayer的强大,支持N多的源格式(已测试: avi rmvb mov flv).
* 支持srt/ass格式的外挂字幕.
* 自动缩放画面比例到适合ipod touch的480*320,如果是 ipod shuffle 之类的话,可以自己修改下脚本.
* 可视化的进度提示
* 转换速度较快
* 默认保存到当前目录,可修改脚本,输出到统一目录,方便管理.会自动加上 _ipod.mp4 的后缀名.
使用方法,保存以下脚本到 ~/.gnome2/nautilus-scripts/toIpod ,并加可执行权限…或者这里下载
PS: 如果压缩出来的字幕有乱码,请参照我以前的文章,建个 ~/.mplayer/mencoder.conf 文件,写上一行 subcp=cp936 就好了.
#!/bin/bash #filename: ~/.gnome2/nautilus-scripts/toIpod #Copyright (c) 2008 bones7456 (bones7456<A>gmail<D>com) #License: GPL #version 20081101 #用于将视频转成 ipod touch / iphone 格式.右击文件使用 SAVEDIR=`pwd` #SAVEDIR="/data/movie" INFILE="$1" PWD=`pwd` CMD="mencoder -of lavf -lavfopts format=mp4 -oac lavc -ovc lavc " CMD+="-lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:vbitrate=600:acodec=libfaac:abitrate=128 " CMD+="-af lavcresample=22050 -vf dsize=480:320:0,scale=0:0,expand=480:320,harddup -ofps 25 -srate 22050 " P="没有找到对应的字幕." if [[ -f "${INFILE%.*}.srt" ]];then CMD+=" -sub ""\"$PWD/${INFILE%.*}.srt\"" P="找到字幕文件: ""${INFILE%.*}.srt" elif [[ -f "${INFILE%.*}.ssa" ]];then CMD+=" -sub ""\"$PWD/${INFILE%.*}.ssa\"" P="找到字幕文件: ""${INFILE%.*}.ssa" elif [[ -f "${INFILE%.*}.aas" ]];then CMD+=" -sub ""\"$PWD/${INFILE%.*}.aas\"" P="找到字幕文件: ""${INFILE%.*}.aas" fi CMD+=" -o ""\"$SAVEDIR/${INFILE%.*}_ipod.mp4\""" ""\"$PWD/$INFILE\"" P+="\n\n保存目录: $SAVEDIR" P+="\n\n是否继续?" #echo "$CMD" >> ~/toIpod.log if ! zenity --question --text "$P" ; then exit 0; fi eval "$CMD 2>&1" |\ while read line; do echo $line |\ awk -F '[ :\(\)%]+' '/^Pos/{print "# 速度:",$5,"(点\"取消\"转入后台运行.)";print $4}' ; done |\ zenity --progress --title "正在转换..." --percentage=0 --auto-close --width=500 |
截图: