黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 操作系统 >> LINIX UNIX >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[推荐]Linux系统中提取DVD音频的方法介绍
      ★★★

Linux系统中提取DVD音频的方法介绍

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-12-25 9:31:53
  老婆借了盘DVD,非要让我把它想办法留下来。保存.vob是不现实了。为了给老婆展示一下Linux的强大,特地到网上攻读了一番。

  很可惜的是:工作的最开始还是用了一下Windows,因为我的机器都没有DVD-ROM, 所以用别人的机器把那些VOB文件copy下来,然后上传到我的Linux服务器上。这台机器上没有X Window, 所以下面全部的工作都是ssh到服务器上,然后在命令行下做的。

  1. 音频编码:

  
  mencoder -ovc frameno -o frameno.avi  
   -oac mp3lame -lameopts abr:br=96 -alang en VTS_01_1.VOB 
 
 

  稍微解释一下参数的意思:一般字母o开头的参数就是指output的意思了, a就是audio, v是video, c是codec, br是bit-rate(br有几种:vbr, abr, cbr。v,a和c意思分别是variable,average和constant。) alang是指audio language。en是英文,中文是zh。有时可能会有两个声道,都是中文(zh),一个普通话,一个广东话。这时就不能用alang这个参数了,要用-aid。还有,就是这里用了LAME的mp3编码。

  总之,这行命令中需要改的就是"en"和文件名了。"96"也可改成128,但最终的文件可能会比较大。frameno和frameno.avi不要改。

  2. 视频编码:(1st pass)

  
  mencoder -oac copy -o /dev/null -ovc lavc -lavcopts   
  vcodec=mpeg4:vbitrate=576:vhq:vpass=1 -vf 
 scale=640:480,crop=640:344:0:66,lavcdeint VTS_01_1.VOB
  

  这里用了libavcodec来做mpeg4的编码。最重要的就是-vf了,vf意思是video filter。所有的filters要用逗号隔开。我用了scale,crop和lavcdeint三个filters。scale就是把DVD原本的

  720x576变成640x480。crop就是把已经scaled成640x480的图像继续切成640x344。0:66是告诉mencoder从什么地方开始切,从左上角开始算,横者数0,竖者数66。注意切出来的图像最好是8的整数,如上面的344。lavcdeint就是de-interlace,不知道中文怎么译。如果你弄出来图像上能看到明显的横纹,就要加上这个选项。

  3. 视频编码:(2nd pass)

  
  mencoder -oac copy -o mymovie_1.avi -ovc 
 lavc -lavcopts vcodec=mpeg4:vbitrate=576:vhq:vpass=2  
  -vf scale=640:480,crop=640:344:0:66,lavcdeint VTS_01_1.VOB 
 
 

  在first pass里我们已经看到,输出是到/dev/null的,也就是丢掉不要了。输出的只有divx2pass.log这么一个文件。到了这个second pass,就要在-o后面放上真正的文件名了。还有就是把vpass改成2。我用的vbitrate=576是为了控制2小时10分钟片子压到小于700MB。我记得音频部分做完时会有一个建议的vbitrate,可以参考。

  好了,已经把第一个vob变成avi了。然后删掉divx2pass.log和frameno.avi,重复上面的步骤,把所有的vob都变成avi。

  4. 把所有的avi文件用下面的命令处理一下

   
  mencoder -idx mymovie_1.avi -ovc copy  
   -oac copy -o mymovie_1_out.avi
 

  5. 合并所有的avi成一个文件

  

  cat mymoive_1_out.avi mymoive_2_out. 
avi ... mymoive_8_out.avi > mymovie.avi 
  mencoder -noidx -ovc copy -oac copy 
 -o mymovie_final.avi mymove.avi
  

  OK! 搞定!dvd我们一般把它rip成avi格式。用的编码一半是xvid.mpeg4,lavcopts,质量较好的编码一半选用3pass编码方式,得到的文件大小一般也是700M左右。就是说要编码三次。(可惜不能用rmvb,它就比avi小多了,质量也很好)。

  第一次是音频编码,可以顺便剥离字幕,第二次是第一次视频编码,主要为了得到一个编码表,第三次就是按照第二次得到的码表再次编码,顺便把第一次得到的音频合成进去。

  简单的就如下:

  PHP代码:

  
  3-pass编码的例子:dvd-rip 
  rm frameno.avi -- 移去这个文件,它可能来自以前的3-pass编码(它会干扰当前编码) 
  mencoder dvd://2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3 
  mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi 
  mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi 
 
 

 

[1] [2] 下一页

文章录入:sygbox    责任编辑:sygbox 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886