搜索 社区服务 统计排行 帮助
  • 4691阅读
  • 21回复

[原创][DVDRip Crop&SAR Calculator]

楼层直达
级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
C++编写,开源,基于GNU分发。(具体啥的我一概不知道,自己写着玩的……)

设计目标:
现在DVDRIP的一个趋势是前期不做变形,而使用Special Aspect Ratio等参数,做Anamorphic,即播放时变形。
针对这一趋势,参考之前可曾记得爱的Aspect Error算法和雷鸣的切变计算器,我写了这个小工具用于计算Anamorphic DVDRIP的SAR、DAR比值,以方便制作。使用方法和雷鸣的cropcalc工具很像。
注意:DVDRip的变形采用可曾记得爱用的AE=0变形法(NTSC 16:9的SAR 96:79),而非一般SAR DVDRip和PSP MP4常见的ITU-R BT.601变形法(NTSC 16:9的SAR 40:33)。(如果有需要的话自己改改源代码很简单嗯)

使用对象:
需要制作SAR不为1:1的DVDRIP的DVDRipper。

用户界面:
Command Line Interface

使用方法:
1. 打开程序
2. 选择DVD的类型(PAL、NTSC、VGA、4:3、16:9、1:1)
3. 输入切边数值,必须是整数,可以是奇数(使用RGB、YUV444色彩空间切割或者AVS的Resizer内部算法切割)
4. 输入目标分辨率(一般应该是720x480或704x480),需要mod 16
5. 输入扫描范围:
e.g. 比如目标分辨率是720x480,Width和Height Searching Range均是1,则会计算704x464、720x464、736x464、704x480、720x480、736x480、704x496、720x496、736x496这9种分辨率。
6. 读取输出值:
其中的SAR用于x264的--sar参数等Special Aspect Ratio Option;DAR用于XviD、MKVMerge等的Display Aspect Ratio Option。
7. 按任意键关闭程序

下载:(内附源代码)
sarcalc.7z

级别: 骑士
注册时间:
2006-09-22
在线时间:
0小时
发帖:
965
只看该作者 1楼 发表于: 2008-12-12
这类工具也有好就个了..
不如再写个GUI吧

级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
只看该作者 2楼 发表于: 2008-12-12
算SAR值的好像还没见过= =

我自己更喜欢用CLI工具所以没写GUI,要写的话么再抽空吧= =

级别: 新手上路
注册时间:
2004-08-01
在线时间:
4小时
发帖:
480
只看该作者 3楼 发表于: 2008-12-12
我记得雷鸣以前有写过类似的工具

überm Sternenzelt richtet Gott, wie wir gerichtet.

Girls
Usually
Need
Diamond
And
Money
级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
只看该作者 4楼 发表于: 2008-12-12
对,其实就是雷鸣那个工具的mod

雷鸣那个calc是算Resize,我改成算SAR而已= =

级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 5楼 发表于: 2008-12-12
呵呵,我的dshow x264根本不用输入--sar,自动的哦

其实只要记住,crop不影响sar。resize不影响dar,就可以了
级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
只看该作者 6楼 发表于: 2008-12-13
dshow不能用外部IVTC,致命伤哦

crop且resize(凑mod16)后就既影响SAR又影响DAR了= =

我主要就是为了不规则切边(比如切掉上黑边并保留所有有效像素)写这个的。。

级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 7楼 发表于: 2008-12-13
dshow当然可以IVTC,通过ffdshow里的avs挂tfm实现。我自己也正在写了一个,上次那个测试速度speedtest就是给ivtc用的。

crop和resize不是同时完成的。你可以试试ffdshow的crop+resize,可以保持正确的sar。sar/dar的原始信息从解码器获取后应该在各级滤镜间传递下去,crop和resize滤镜应该根据输入的值对其进行修正。
级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
只看该作者 8楼 发表于: 2008-12-13
按你的推荐配置的话,ffdshow拿到的是MPEG Decoder处理过的RAW Stream。DScale Decoder会做Field Matching和IVTC吧,当然也可以在解码器里关掉相关功能就是了……= =

另外你大概没明白我的表述,举个例子吧:
MPEG2Source(".d2v")
Lanczos4Resize(720,480,0,2,0,0)
(现在很多2区DVD都这样嘛,上面2px黑边,左右撑满,比如ef)
这个时候的SAR是难以计算的。而如果走ffdshow切变,如果指定分辨率并锁定比例就会在画面内部加上下黑边;如果指定分辨率但不锁定画面比例又不会输出SAR信息;如果不指定分辨率就会直接输出720x478。所以必须通过计算获得。

P.S.全走DShow是最简单的办法,但未必是最正确的办法^^

级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 9楼 发表于: 2008-12-13
楼上这种情况sar应该是(16/9)/(720/480)/(478/480)吧

谢谢楼上提醒,试了下ffdshow好像resize没改sar,看来需要和开发者讨论一下了。
级别: 新手上路
注册时间:
2009-04-17
在线时间:
0小时
发帖:
8
只看该作者 10楼 发表于: 2009-04-17
弄了几天还是不太会用……
源是720x480,上面切2,左右各切3:
Lanczos4Resize(720,480,3,2,-3,0)

计算:
Please select the source type:
2 = 16:9 NTSC
Select Source Type: 2

Width crop:6
Height crop:2

Target size
Width:720
Height:480

widthsearchrange = heightsearchrange = 1

然后把算出来的SAR都试了一遍,好像都变形了(就是跟直接播放VOB的比例不一样)

是我哪里做错了吗?
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 11楼 发表于: 2009-04-17
突然有个问题,既然做anamorphic为什么还要resize
不是mod16又会怎么样呢
级别: 新手上路
注册时间:
2009-04-17
在线时间:
0小时
发帖:
8
只看该作者 12楼 发表于: 2009-04-17
顺便问个ffdshow Crop的问题
我在Left里填4,其它三个填0,结果左右都给切了,为什么?
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 13楼 发表于: 2009-04-17
因为ffdshow要求crop结果必须mod 8
级别: 新手上路
注册时间:
2009-04-17
在线时间:
0小时
发帖:
8
只看该作者 14楼 发表于: 2009-04-17
有办法实现任意切边并保持比例吗?
快速回复

限150 字节
上一个 下一个