当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 给 iPod touch 转视频的脚本
帖子发表于 : 2008-08-12 15:07 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
原文: http://bones7456.blog.ubuntu.org.cn/2008/08/12/toipod/

由于新买了个 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 20080812

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=24000 -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%.*}.ass" ]];then
   CMD+=" -sub ""\"$PWD/${INFILE%.*}.ass\""
   P="找到字幕文件: ""${INFILE%.*}.ass"
fi

CMD+=" -o ""\"$SAVEDIR/${INFILE%.*}_ipod.mp4\""" ""\"$PWD/$INFILE\""
P+="\n\n保存目录: $SAVEDIR"
P+="\n\n是否继续?"
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


来个运行时的截图:


附件:
screenshot3.png
screenshot3.png [ 22.09 KiB | 被浏览 1110 次 ]



_________________
关注我的blog: ε==3
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-08-12 15:09 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
movie试过了?


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-08-12 15:17 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
eexpress 写道:
movie试过了?

没试过,但肯定不符合我的要求.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-08-12 15:20 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
如果可以的话,别人标准格式不更好嘛。省得你调整这些参数。你的这些参数,肯定是标准的?官方公布的?
试试嘛。别人都没设备。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-08-12 15:25 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
很多转换软件,号称支持 ipod,但都不是touch,而是分辨率是 320*240的 shuffle 之类.touch可是这个屏的两倍大.
而且它的格式就肯定标准?
反正我的这个,ipod能放,这不就OK了嘛~
而且怀疑支持外挂字幕合成的不多.
操作便利性也很难超越我这个.
我的是专用的,人家的是集大成的,性质不一样.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-08-14 12:07 

注册: 2006-05-20 10:38
帖子: 513
送出感谢: 0 次
接收感谢: 0 次
http://www.howforge.com/how-to-convert-mkv-to-avi-using-mencoder找到了一段mkv转avi的脚本,但我只会在命令行下执行,如何把它编成类似楼主右键执行的脚本呢?

原脚本, mkv2avi
代码:
#!/bin/sh
INPUT=$1 OUTPUT=$2
mencoder $INPUT -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi -o "$OUTPUT"


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-08-14 12:17 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
xiaoyong 写道:
http://www.howforge.com/how-to-convert-mkv-to-avi-using-mencoder找到了一段mkv转avi的脚本,但我只会在命令行下执行,如何把它编成类似楼主右键执行的脚本呢?

原脚本, mkv2avi
代码:
#!/bin/sh
INPUT=$1 OUTPUT=$2
mencoder $INPUT -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi -o "$OUTPUT"


保存到 ~/.gnome2/nautilus-scripts 目录就可以右键执行的.
里面的 $1 就是你点的那文件. 输出文件自动生成个文件名好了~


_________________
关注我的blog: ε==3


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-08-14 13:26 

注册: 2006-05-20 10:38
帖子: 513
送出感谢: 0 次
接收感谢: 0 次
引用:
里面的 $1 就是你点的那文件. 输出文件自动生成个文件名好了~


我对脚本一窍不通的,楼主能否为我加上去?

再谢!


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-08-14 14:21 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
代码:
#!/bin/bash
#filename: ~/.gnome2/nautilus-scripts/toIpod
#Copyright (c) 2008 bones7456 (bones7456<A>gmail<D>com)
#License: GPL
#version 20080812

SAVEDIR=`pwd`
#SAVEDIR="/data/movie"

INFILE="$1"
PWD=`pwd`
CMD="mencoder -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi "

P=""

CMD+=" -o ""\"$SAVEDIR/${INFILE%.*}.avi\""" ""\"$PWD/$INFILE\""
P+="\n\n保存目录: $SAVEDIR"
P+="\n\n是否继续?"
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


用你说的参数在我那脚本上改的,没测试过,自己试试吧.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-08-14 14:28 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
哈哈,骨头的那句点取消后台运行很强悍哦 :lol: ,取消了还在运行。。。。。。。。点取消把它废掉呗。


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-08-14 14:32 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
xiooli 写道:
哈哈,骨头的那句点取消后台运行很强悍哦 :lol: ,取消了还在运行。。。。。。。。点取消把它废掉呗。

呃...其实是我不知道怎么禁掉"取消"那个按钮...所以写个注释,号称后台运行....
真要取消,自己pkill mencoder,嘿嘿...


_________________
关注我的blog: ε==3


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-08-15 13:16 

注册: 2006-05-20 10:38
帖子: 513
送出感谢: 0 次
接收感谢: 0 次
引用:
代码:

#!/bin/bash
#filename: ~/.gnome2/nautilus-scripts/toIpod
#Copyright (c) 2008 bones7456 (bones7456<A>gmail<D>com)
#License: GPL
#version 20080812

SAVEDIR=`pwd`
#SAVEDIR="/data/movie"

INFILE="$1"
PWD=`pwd`
CMD="mencoder -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi "

P=""

CMD+=" -o ""\"$SAVEDIR/${INFILE%.*}.avi\""" ""\"$PWD/$INFILE\""
P+="\n\n保存目录: $SAVEDIR"
P+="\n\n是否继续?"
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


用你说的参数在我那脚本上改的,没测试过,自己试试吧.


It works great. Thanks!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译