[分享]播放连续剧的脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
HuaChong
帖子: 493
注册时间: 2006-09-12 17:10

[分享]播放连续剧的脚本

#1

帖子 HuaChong » 2009-01-15 17:23

起因:看电视连续剧或者听一些新东方的讲座的时候,经常的需要记住自己看到哪了,下一次继续从上次结束的地方还是要重复相同的命令,于是自己想了想,写了这个脚本,实现的主要功能是调用mplayer作为播放软件,并在播放过程利用循环测试是否想要继续播放下去,跟据选择进行操作,直至退出并生成标签,下一次直接运行这个脚本任何参数都不要的情况下就能够从上次结束的地方开始。学的不精,欢迎大家批评指正哈!
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
session=`ls|grep label|awk -F . '{print $1}'`
if [ "$1" != "" ] ; then
mplayer `ls |grep "走西口$1" `
temp=`echo "$1+1"|bc`
rm *label
else
echo "你没有指定要播放的文件,于是我揣测你想从上次结束的地方继续..."
read -p "上一次已经看到$(($session-1)),从$session继续看吗?" goon
if [ "$goon" = "y" ]; then
temp=`echo "$session+1" |bc`
mplayer `ls|grep "走西口$session"`
rm *label
else
read -p "再给你一次机会输入文件名,最后一次" filename
mplayer *走西口$filename*
temp=`echo "$filename+1" |bc `
rm *label
fi
fi
#temp=$session
#temp=`echo "$1+1"|bc`
while [ 1 ]
do
read -p "想看下一集吗?" next
if [ "$next" = "y" ]; then
mplayer `ls |grep "走西口$temp"`
temp=`echo "$temp+1"|bc`
else
echo "好吧,结束"
touch "$temp.label"
break
fi
done
exit 0
头像
poweroff
帖子: 395
注册时间: 2008-12-13 15:03

Re: [分享]播放连续剧的脚本

#2

帖子 poweroff » 2009-01-16 10:39

我以为时自动偏移,和断点继续呢。

断点--假设看到第10集的一半(29分钟)下次能从这里开始。(能提前一点点也不错)
一条狗的马甲!
对不起,我承认我是一只穿着马甲的狗!
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

Re: [分享]播放连续剧的脚本

#3

帖子 yaoms » 2009-01-16 10:46

恩,我需要二楼描述的功能,楼主继续努力, :em11
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: [分享]播放连续剧的脚本

#4

帖子 xiooli » 2009-01-16 10:50

poweroff 写了:我以为时自动偏移,和断点继续呢。

断点--假设看到第10集的一半(29分钟)下次能从这里开始。(能提前一点点也不错)
用管道来控制mplayer的话是可以获得播放时间的,将结束时间记录下来,下次从这里开始不久可以了么?
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: [分享]播放连续剧的脚本

#5

帖子 lerosua » 2009-01-16 11:44

好,支持。 :em11
头像
greco
帖子: 2487
注册时间: 2007-04-06 10:24
来自: ~/Shanghai

Re: [分享]播放连续剧的脚本

#6

帖子 greco » 2009-01-16 19:12

xiooli 写了:
poweroff 写了:我以为时自动偏移,和断点继续呢。

断点--假设看到第10集的一半(29分钟)下次能从这里开始。(能提前一点点也不错)
用管道来控制mplayer的话是可以获得播放时间的,将结束时间记录下来,下次从这里开始不久可以了么?
好主意啊
http://silenceisdefeat.com/~greco

代码: 全选

''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d
头像
HuaChong
帖子: 493
注册时间: 2006-09-12 17:10

Re: [分享]播放连续剧的脚本

#7

帖子 HuaChong » 2009-01-17 0:28

poweroff 写了:我以为时自动偏移,和断点继续呢。

断点--假设看到第10集的一半(29分钟)下次能从这里开始。(能提前一点点也不错)
兄台真是说出了我的难处阿,起因是一集当中我不想看了,那我必须把这集看完才能保存,我一直没想到怎么去实现在一集的任一时间内间断,不知道怎么实现,正好在这里放出这个问题,请大家帮忙解决一下。
A: 93.7 (01:33.7) of 331.0 (05:31.0) 3.5%
Exiting... (Quit)
播放一段媒体退出时,最后的内容为上述所示,怎么能够把它保存起来呢?或者pipe过来呢?如果保存起来通过这个操作

代码: 全选

 cat status |awk -F \( '{print $2}'|awk -F \) '{print $1}'
就能获取到01:33.7这个播放时间,然后更改播放命令为

代码: 全选

mplayer -ss $status $file
估计就差不多了,或者也可以把时间提前2-3秒钟的时间
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: [分享]播放连续剧的脚本

#8

帖子 xiooli » 2009-01-17 10:34

HuaChong 写了:
poweroff 写了:我以为时自动偏移,和断点继续呢。

断点--假设看到第10集的一半(29分钟)下次能从这里开始。(能提前一点点也不错)
兄台真是说出了我的难处阿,起因是一集当中我不想看了,那我必须把这集看完才能保存,我一直没想到怎么去实现在一集的任一时间内间断,不知道怎么实现,正好在这里放出这个问题,请大家帮忙解决一下。
A: 93.7 (01:33.7) of 331.0 (05:31.0) 3.5%
Exiting... (Quit)
播放一段媒体退出时,最后的内容为上述所示,怎么能够把它保存起来呢?或者pipe过来呢?如果保存起来通过这个操作

代码: 全选

 cat status |awk -F \( '{print $2}'|awk -F \) '{print $1}'
就能获取到01:33.7这个播放时间,然后更改播放命令为

代码: 全选

mplayer -ss $status $file
估计就差不多了,或者也可以把时间提前2-3秒钟的时间
你看看我那个显示歌词脚本其中显示mplayer的那段吧,那个就可以获取时间:
viewtopic.php?f=21&t=174420
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: [分享]播放连续剧的脚本

#9

帖子 bones7456 » 2009-01-19 23:12

支持~ :em11
关注我的blog: ε==3
回复