找回密码
 新注册用户
搜索
查看: 7863|回复: 2

[原创]较为简单的带ass特效视频批量转换教程

[复制链接]
发表于 2010-12-5 09:51:59 | 显示全部楼层 |阅读模式
本帖最后由 lfk 于 2010-12-5 10:13 编辑

较为简单的带ass特效视频批量转换教程

唔...因为此文会在很多地方发布...看到此文的人的能力肯定也有高有低....
大大们见了可能会想,这sb连MeGUI都不会用还敢写教程
小白们见了可能会想,ass相比srt到底有啥优势啊
呃...所以,在开头先说一下,此文主要是自己折腾了n小时的纪念
还有就是给"可能有相同问题的人"一个能搜索到解决方案的可能性
大大们轻喷
小白们共勉
考虑到图片的时效性,都没有截图,我会尽量用比较容懂的语言描述...= =!


首先,需要的软件/工具清单
1.VobSub http://www.baidu.com/baidu?word=vobsub
2.WisMencoder http://download.pchome.net/multimedia/video/detail-22258.html
3.漫娱论坛MKV整合工具 http://tora.to/blog/232925.htmhttp://www.manyv.com.cn/bbs/thread-31582-1-1.html (需注册)
4.ReNamer http://www.den4b.com/?x=downloads
5.Aegisub http://www.baidu.com/baidu?word=Aegisub
6.avsTJ.ass.exe/avsTJ.ssa.exe 见附件或http://u.115.com/file/f854d2e804
7.PureCodec http://jm.wmzhe.com/softlist2.html

大概介绍
1.用于支持ass字幕
2.主角,转码用的
3.用于把mkv里封的ass挖出来(如果要转码的文件格式是mkv
4.用于ass字幕的批量重命名
5.调整ass时间轴用(如果是Raw+外挂字幕,有可能时间轴不准确
6.批量修改avs文件用
7.PureCodec,MPC+KMP+ffdshow+haali+Vobsub一键安装
(呃...我不确定此文的方法能在没有安装PureCodec的计算机上可行,因为视频解码的东西好像很多都是通过各种注册dll实现的
1246必装,357看你的需要,推荐安装


正文

前几天,把草莓棉花糖压了给手机看,用的格式工厂,那ass支持的效果叫一个棒,完全把ass当做srt对待了....
满屏的各种控制字符,全未经转意就写出来了...
本来滚动的一行免责声明,丫活生生的给我显示了几分钟(ass里滚动应该是忽略结束时间的,大概....

今天想把双恋转了给手机看,决定不能再用格式工厂那玩意儿了....
于是去搜了下ass内嵌相关的文章,然后也有很多用MeGUI+AVS压的....但是那教程看得我好蛋疼...
而且MeGUI居然不能批量处理.....不能批量也许对压一集需要十多个小时的专业压缩来讲没啥...
但是对于我这种自己转了给手机看的人来讲....蛋疼了点= =

好在,WisMencoder和MeGUI一样,也是Mencoder内核,支持AVS脚本.而且关键的是WisMencoder支持批量压缩...
AVS,全名AviSynth,我的理解是一个允许在压视频的时候加各种滤镜的脚本,专业解释请喂鸡或喂狗...


正文的正文


第一步 得到ASS文件和把ASS文件改名到与视频相同

  1.如果ass是被封到mkv里的,请把她救出来,用"mkvextract.exe"也可以,不过推荐使用"漫娱论坛MKV整合工具",因为,能批量!
    运行"漫娱论坛MKV整合工具",把所有视频文件拖进去,勾选提取字幕,点开始解析,过一会儿,视频文件所在的文件夹里就会有很多ass文件了
    如果是mkv里内嵌了简繁两种,请按喜好删除一种
    这时的这些ass,文件名是视频源文件名后面加了个"_track?"的
                 例如[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip]_tract3.ass
       假设视频名字为[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip].mkv
    请把那个ass改名为[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip].mkv.ass  后面有讲为什么,先这样改吧
    批量改名,推荐ReNamer,启动之后,把要改名的ass拖到"Drag your files here"(初次使用记得点一下Name以按升序排列)
    然后点"Click here to add a rule",在Add Rule里选Replace,把"_tract3"替换成".mkv"就行了

  2.如果本来就是字幕组弄好的外挂,
                 比如[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip].mp4
                   和[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip].ass,
    也请把ass文件改成[KTXP][Futakoi+Alternative][01][XVID_AC3][DVDRip].mp4.ass      后面有讲为什么,先这样改吧
    在Add Rule里选Insert,勾选Suffix(逆序),输入".mp4"就行了

  3.如果是Raw+外挂,而且视频名字和字幕名字完全对不上
    比如 黒神 The Animation 第01話 「三位一在」 (1920x1080 H264 FLAC 2ch コメンタリー).mkv
      和 [POPGO&HKG][Kurokami_The_Animation][01][GB_BIG5][X264_AAC](90B02CC8).uni_big5.ass
    想要对字幕批量重命名,请在Add Rule里选UserInput,然后在右边的框中输入目标文件名,以换行区分开每个文件
    显然,不可能对着视频挨个复制文件名粘贴过去
    对于Vista和Win7,对着视频文件所在的文件夹按住shift点右键,选择在此处用Windows命令行打开.....
    对于xp,不知道有没有这个功能,没有的话就用 cmd,盘符:   cd 文件夹名称 那样进入那个文件夹吧 (或者见后
    然后输入dir /b >1.txt
    然后在进文件夹,打开1.txt
    把文本复制到刚才那个方框中,勾选skip extension(忽略扩展名),就行了
    如果你经常看raw,需要经常重命名字幕,推荐你使用这个方法,虽然有点麻烦,但是一劳永逸
   
        1).新建一个txt,里面写dir/b>!!!.txt
            保存,改名为getname.bat,记下其存放位置F:\***'s Documents\我的文字
        2).win+R,regedit,转到HKEY_CLASSES_ROOT\*\shell下新建子键(key)   !.Getname   
            这里是在右键菜单里显示的名字,随意改个自己喜欢的名字,感叹号比较醒目...
        3).在再刚才新建的子键HKEY_CLASSES_ROOT\*\shell\!.Getname下新建子键command(这个不能随便改= =
        4).把command键里的字符型变量的值改成刚才那个bat的位置,后面加个空格"%1"....
            例如"F:\***'s Documents\我的文字\getname.bat" "%1"
        完工,进文件夹对着视频点右键,点!.Getname,然后所有的文件名都保存到!!!.txt里了
   
    对于Raw+外挂,改名完了最好每集点开看一下,确认时间轴是否对得上,对不上请用Aegisub平移下(大多数动画只用平移,少数动画需要分段平移)





第二步 使用WisMencoder的AVS编辑功能编写AVS脚本

  1.打开WisMencoder,不要把文件直接往里拖,而是点左上角的 压缩任务,添加文件...或者快捷键ctrl+a
  
  2.选择"用WinAVS添加文件(高级用户)"
  
  3.在弹出来的窗口中,选中待压缩的视频(记住用按住ctrl或者shift复选,或者ctrl+a全选!
  
  4.然后,你就能看到AVS脚本的自动生成界面了,不推荐做任何的改动,除非你知道你在干什么,请直接跳转到"添加代码"页
    在# Add your own code here:后面输入
    LoadPlugin("D:\Program Files (x86)\Pure Codec\Codecs\VSFilter.dll")
    ConvertToYV12()
    LanczosResize(480,360)
    然后点"插入到特效列表"
    LoadPlugin就是加载滤镜,后面的括号内的内容需要改一下,指向你的VobSub安装路径里面的VSFilter.dll
    我安装了PureCodec,直接用的那里面的VSFilter.dll
    第二行是色彩空间转换
    第三行,你想压多大就写多大吧,480是高,360是宽,等会还得在WisMencoder里面设一次
  
  5.点击位于窗口下部的字体加黑了的一个按钮"添加到WisMencoder"
  
  6.然后到WisMencoder安装路径下的AVSFile文件夹(例如D:\Program Files (x86)\WisMencoder\AVSFile)下面,你会看到那里有很多avs文件
    你可以用记事本打开它,例如
    # Created by WisAVS v1.7.0_beta (in WisMencoder v2.3.0) - 2010/12/5 7:56:09
    # Visit http://bbs.wissky.com for more info.
    # Z:\_Watching\Futakoi 1&2_双恋1&2.[Xvid 640x480_AC3].[Raw].[DVDRip].[05]\[Raws-4U] Futakoi (DVD DivX6.6 640x480)\[Raws-4U] Futakoi - 01 (DVD 640x480 DivX MP3).avi
    DirectShowSource("Z:\_Watching\Futakoi 1&2_双恋1&2.[Xvid 640x480_AC3].[Raw].[DVDRip].[05]\[Raws-4U] Futakoi (DVD DivX6.6 640x480)\[Raws-4U] Futakoi - 01 (DVD 640x480 DivX MP3).avi",convertfps=true)
    LoadPlugin("D:\Program Files (x86)\Pure Codec\Codecs\VSFilter.dll")
    ConvertToYV12()
    LanczosResize(480,360)
    可以看到,里面其实就是你刚才添加的代码,和需要转码的文件路径&文件名
    刚才在添加代码的时候,只挂了加载字幕用滤镜,并没有指定具体的字幕文件,而且在"字幕(Vobsub)"页的那一项"自动搜索字幕文件",根本没用.....
    加载字幕的命令是TextSub("绝对路径\字幕文件名.ass"),如果刚才添加代码的时候,把这行加进去,那所有的视频都会使用这个字幕文件...肯定不行啊= =
    所以,得现在向逐个avs文件添加里面文件对应字幕文件,挨个打开avs,然后往里面复制TextSub("绝对路径\字幕文件名.ass")也行,不过推荐使用avsTJ.ass.exe
    那是一个由lfk在cmg1987的协助下于2010/12/4用c++开发的一个针对WisMencoder使用avs脚本批量转码时,对avs的脚本批量修改的软件...
    呃....简单的说,就是自动修改avs文件,根据DirectShowSource里的绝对路径和视频文件名,追加TextSub和字幕绝对路径&字幕文件名
    使用方法:
        1).确保视频文件和字幕在一个文件夹,而且分别是AAA.mp4和AAA.mp4.ass的格式(切记不要AAA.mp4和AAA.ass...因为程序写成那样了....
            源代码在此...http://u.115.com/file/f8160a7b3f 闲得蛋疼的同学可以自己改.....
        2).把avsTJ.ass.exe复制到avs所在的文件夹
            例如D:\Program Files (x86)\WisMencoder\AVSFile
        3).运行,会出来个dos命令行(我还没看到MFC所以不会写带GUI的程序= =!),出现"XXXX.avs has been TIAOJIAOed"字样,就成功了
            打开avs文件,可见里面多了一行TextSub(......)
        N).如果3不好使,请新建一个txt,里面写上"D:\Program Files (x86)\WisMencoder\AVSFile\avsTJ.ass.exe",然后把扩展名txt改为cmd,运行他
           avsTJ.ass.exe为调教ass字幕用,avsTJ.ssa.exe为调教ssa字幕用
  
  7.这时,如果你开一个MPC或者KMP,把这个avs往里面拖,就应该能正常播放了(有字幕,窗口原始大小为你刚才LanczosResize里面输的大小
    如果不能播放,有如下建议:
                       1).卸载格式工厂(或其他格式转换软件)... (装了好像会导致AviSynth生理周期紊乱,至少格式工厂会
                       2).安装PureCodec(如果之前装了格式工厂还得把PureCodec卸了重装= =...亲身经历




第三步 配置WisMencoder各项压缩参数


  1.然后就是对WisMencoder视频压缩的设置了
     1).基本设置\文件输出 设置输出路径  选一个你喜欢的容器,avi/mp4/psp用的pmp
     2).音频设置\编码器 编码类型 推荐MP3或者AAC(MP3兼容性好,AAC效率高,先试试AAC不好使就用MP3吧= =   
                                 编码方式 推荐平均码率,或者用动态码率在音质里面试试每个等级对应大概多少码率
                \音质 平均码率建议用160或者192,不高于源文件的码率就行   动态码率自己试试吧...反正便携式播放器音质也就那样了我就没试      采样率44.1kHz足矣
                \高级选项 如果是日\粤双语的片,音频流选取那里得自己填,不是1就是2..(视频是0...多分
     3).视频设置\编码器 编码类型 你的设备支持啥就用啥,X264是效率最高的,不过我那手机不支持   
                        编码方式 我还是推荐固定码率,动态码率试起来好麻烦= =...
                                    反正是给自己看,压坏了也没事...不过动作激烈或者3次元的片最好还是用动态的
                \画面 画面大小 根据视频的横纵比和你设备的分辨率,自己算吧,比如这片是640x480,我手机是640x360,那画面大小那里宽就是480(=640/480*360),宽就是360
                                码率 一般设得比源文件的码率小,查看源文件码率多少请用MediaInfo
                             PureCodec自带MediaInfo,且已经嵌入MPC,KMP好像也有)
                             如果源文件是640x480分辨率,码率是1000,压到480x360的话,大概设1000*640/480的码率就差不多了
                      帧数 留空表示和源文件一样,你要设为比源文件小的也行,设大了没意义
     4).其他请按自己需要设置
     N.)截取与分段 试验性压缩最好选上这个,压缩一分钟的片段看看码率什么的
     
  2.点右上方的"开始压缩"
  
  3.祈祷不要报错= =!
     
     



谢谢观赏.....XD

avsTJ.rar

10.23 KB, 下载次数: 3918

avsTJ.ass.exe

code.rar

721 Bytes, 下载次数: 3614

源代码

回复

使用道具 举报

发表于 2010-12-5 19:57:30 | 显示全部楼层
MediaCoder NT CUDA这个工具不错,可以用显卡来压,速度是我的i520M的两倍还要多,支持批处理~但需要提前做好各种工作包括反交错(是这么称呼么)
另外还有一个Handbrake这个也不错,基本功能多,E文,可以选择CPU的核心数(貌似多核心并列运行做得不错)
回复

使用道具 举报

 楼主| 发表于 2010-12-6 07:36:44 | 显示全部楼层
回复 2# muclemanxb


    二压不需要反交错....
    我其实只是想把ass的特效凹进去.....等会看看Handbrake支持ass不....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-9-29 15:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表