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

自己做的小工具dshow2raw,请帮忙测试

楼层直达
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
最新更新见此楼
http://popgo.net/bbs/showthread.php?s=&threadid=494982

彻底解决vfr和字幕内嵌问题,再也不会有影音不同步的问题了,真正所见即所得。支持各种帧率自适应ivtc和deinterlace滤镜。

下载地址(内含源码)
http://www.namipan.com/d/b4e1bd38635d07682d564da8c791ab05de35b7fed5aa0500

包含模块
dump.ax 修改自dxsdk的sample中的dump,用于截取帧的渲染滤镜,并提供接口供应用程序调用
dshow2raw 调用dump.ax并将帧序列(暂时只支持yv12)输出至stdout,时间码输出至指定文件。
x264.exe 自己编译的r965,已修正win32 stdin的bug和处理raw 输入时uv需对调的bug。编译器tdm gcc 4.3.2,各种最新补丁都已打上了。

使用方法
1)先将dump.ax放到system32下,用regsvr32 dump.ax注册
2)命令行:dshow2raw xxx.xxx timecode.txt | x264.exe - AAAxBBB ...(其他x264参数),其中xxx.xxx为dshow可播放的任何文件,timecode.txt为要输出的timecode v2 文件,可用于mp4box,mkvmerge,tc2cfr等工具mux用,AAAxBBB为文件的分辨率。
3)如果要嵌字幕只要安装vsfilter就可以了,用起来和看片一样。mkv的封装字幕不需要提取。

我的方法是先自动生成一个播放用的graph,然后去掉Video Renderer并连上我的Dump。我只在xp下试过,如果vista下的默认渲染器名字不是Video Renderer就不行了,有vista的请测试一下。

改进计划
1)增加对设备(DVD、摄像头等)和流媒体的支持
2)支持多个文件的裁剪和连接
3)加入自适应decimate功能,配合TFM实现完美自适应ivtc
4)静态链接到x264.exe内部

大家有别的要求也可以提出
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 1楼 发表于: 2008-09-09
好像可以很容易地让压制x264变得像压rmvb般简单……

(rmvb的很流行,傻瓜化的压制应该有不可磨灭的功劳……)
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 2楼 发表于: 2008-09-09
恩,realproducer和vsfilter配合得不好,我这个没有任何问题,DirectShowSource可以下课了。
正在研究读取DVD的方法,目标是直接实现DVD+ass->x264。
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 3楼 发表于: 2008-09-09
引用
最初由 roozhou 发布
恩,realproducer和vsfilter配合得不好,我这个没有任何问题,DirectShowSource可以下课了。
正在研究读取DVD的方法,目标是直接实现DVD+ass->x264。

手工一步一步DVDRip让人觉得更加放心……
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 4楼 发表于: 2008-09-09
记得5年前我用一个叫MovieJack的软件,就是用vfw直接DVD->avi的,
出了x264后反而变麻烦了。真不懂直接压有什么不放心的,有人用d2v+avisynth看DVD的吗,也没见用mplayerc看有什么问题啊,倒是用directshowsource总有各种奇怪的问题。
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 5楼 发表于: 2008-09-09
好像不错的样子

先自动生成一个播放用的graph,然后去掉Video Renderer并连上我的Dump。
如果vista下的默认渲染器名字不是Video Renderer就不行了,有vista的请测试一下。
===============================
这2句是什么意思?

级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 6楼 发表于: 2008-09-09
找到dxsdk里的graphedit.exe,随便找个视频文件拖进去,就会自动生成一个图,在图的最末端是视频渲染器和音频渲染器。我的程序在生成这个图后,会搜索图中的视频渲染器,记下和它连接的pin,然后删除,再添加自己的dump渲染器并和那个pin连接。因为WinXP中不管是DDraw还是VMR名字都叫Video Renderer(就是graphedit里看到的名字),所以我用下面的方法来找视频渲染器。

IGraphBuilder::FindFilterByName(L"Video Renderer",&pVR)

Vista里的默认渲染器是EVR,我这里没Vista,所以想知道是不是有别的名字,如果有装vista的请帮忙试试。
级别: 骑士
注册时间:
2006-09-22
在线时间:
0小时
发帖:
965
只看该作者 7楼 发表于: 2008-09-09
貌似不错的样子,晚些时候拿去跑次那种变态桢率的片子去..

级别: 圣骑士
注册时间:
2003-02-20
在线时间:
79小时
发帖:
1605
只看该作者 8楼 发表于: 2008-09-09
引用
最初由 雷鸣 发布
好像可以很容易地让压制x264变得像压rmvb般简单……

(rmvb的很流行,傻瓜化的压制应该有不可磨灭的功劳……)

我怎么也没看出压x264比rmvb难在哪里了。。。

嗯。。。
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 9楼 发表于: 2008-09-09
难在source上,x264需要装一大堆别的东西
级别: 精灵王
注册时间:
2005-12-13
在线时间:
0小时
发帖:
3859
只看该作者 10楼 发表于: 2008-09-10
=_= 我贴呢 被删了 都是啊B的错
老实说楼主那个好麻烦

= =
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 11楼 发表于: 2008-09-10
引用
最初由 roozhou 发布
记得5年前我用一个叫MovieJack的软件,就是用vfw直接DVD->avi的,
出了x264后反而变麻烦了。真不懂直接压有什么不放心的,有人用d2v+avisynth看DVD的吗,也没见用mplayerc看有什么问题啊,倒是用directshowsource总有各种奇怪的问题。

胶片还原的质量方面,directshow解码器必须考虑速度,这样才能实时输出供观看
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 12楼 发表于: 2008-09-10
雷大有什么dshow下可用的ivtc滤镜可以推荐一下,我一个也没找到
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 13楼 发表于: 2008-09-10
引用
最初由 roozhou 发布
雷大有什么dshow下可用的ivtc滤镜可以推荐一下,我一个也没找到

dshow下ivtc不都是由mpeg解码器去做的吗
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 14楼 发表于: 2008-09-10
那就推荐一个软件模式下能ivtc的解码器吧。NV PureVideo只有在DXVA下才能ivtc,软件模式下不行。
快速回复

限150 字节
上一个 下一个