贴两个压缩碟子的脚本

Totem,mplayer,sopcast,realplayer,bmp
回复
头像
百草谷居士
帖子: 3921
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

贴两个压缩碟子的脚本

#1

帖子 百草谷居士 » 2008-10-30 9:05

这段时间一直在把家里的VCD、DVD压缩存放到电脑上,所以对使用mencoder压缩碟子写了两个脚本。贴出来分享。
这个是压缩VCD的:

代码: 全选

fname=""
for ((i=2; i<27; i++))
do
  mencoder -cdrom-device /dev/scd0 vcd://$i -oac copy -ovc copy -of mpeg -o vcd-$i.mpg
  fname=${fname}' 'vcd-$i.mpg
done

mencoder $fname -oac copy -ovc copy -of mpeg -o vcd.mpg
eject /dev/scd0
mencoder vcd.mpg -oac copy -ovc xvid -xvidencopts pass=1 -o /dev/null
mencoder vcd.mpg -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 44100 -ovc xvid -xvidencopts bitrate=420:pass=2 -o 视频/大拇指儿歌.avi
rm vcd.mpg vcd-*.mpg
使用之前,先使用mplayer查看一下VCD分成了多少段:

代码: 全选

mplayer -cdrom-device /dev/scd0 -identify vcd://1
这里注意使用-cdrom-device选项要指定自己光驱分配的设备名,我这里是/dev/scd0。VCD的第一段一般是版权画面,可以不要,从VCD://2开始处理。根据自己的VCD的段数,修改第二行中i<27中的值,我这里是26段,所以是小于27。
脚本开始使用循环,构造一个字符串,这个字符串其实就是一个类似“vcd://2 vcd://3 vcd://4 vcd://5 ……“的字符串。
“mencoder -cdrom-device /dev/scd0 vcd://$i -oac copy -ovc copy -of mpeg -o vcd-$i.mpg”就是把vcd中从第二段开始所有的段都复制对应的硬盘文件。
”mencoder $fname -oac copy -ovc copy -of mpeg -o vcd.mpg“就是把上面复制出来的文件都合并到vcd.mpg文件中。
"eject /dev/scd0"命令弹出光盘。下面的两个命令对复制出来的vcd.mpg文件进行二次编码。最后删除临时文件。

下面是压缩DVD的:

代码: 全选

mencoder -dvd-device /dev/scd0 dvd:// -oac copy -ovc copy -of mpeg -o dvd.mpg
eject /dev/scd0
mencoder dvd.mpg -oac copy -ovc xvid -xvidencopts pass=1 -o /dev/null
mencoder dvd.mpg -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 44100 -ovc xvid -xvidencopts bitrate=420:pass=2 -o 视频/东方神娃.avi
rm dvd.mpg
DVD的相对简单一些,可以一次性的把所有节目复制出来,进行二次编码。
注意我压缩的是儿童动画片,所以码率比较低。如果压缩的是电影,最好把bitrate设到700以上。需要音效好的好可以把br=64改为128。

二次编码中的第一次编码并没有指定码率,不知道这个对最终的编码质量有没有影响,希望知道的人解释一下。
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: 贴两个压缩碟子的脚本

#2

帖子 oneleaf » 2008-10-30 9:25

应该是有微量影响的,但不会有太大的影响,因为第二次编码需要根据第一次采样的结果来分析如何动态调整码率,从而达到尺寸和清晰度的一个平衡。

呵呵,二次编码我实际使用中基本上看不到带来的好处。建议除非你是压缩 h264+1080p/720p 的,其余的都可以忽略掉。
回复