搜索 社区服务 统计排行 帮助
  • 6498阅读
  • 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-06-30
在线时间:
1小时
发帖:
529
只看该作者 37楼 发表于: 2008-09-21
嗯,在远程桌面等情境下使用不能……

如果可以屏蔽音频似乎就可以了……不过我懒得试(被TF

引用
最初由 zanetu 发布


建议编辑顶楼的帖子并写上更新历史
或者干脆新开一个楼。。。

不是每个人都有耐心看到那么后面的。。。
路人你好……路人走过……

级别: 新手上路
注册时间:
2003-02-22
在线时间:
0小时
发帖:
45
只看该作者 36楼 发表于: 2008-09-21
引用
最初由 roozhou 发布
dshow2raw更新:

下载地址
http://www.namipan.com/d/617af7be49556e87d189b700fb8d531f210305558c8c0500

新特性:
1)更加精确的滤镜连接方式,不会再出现播放视频的情况
2)dshow2raw增加了选择输出格式的功能
3)x264.exe更新至r977,静态链接libpthread,不再需要pthreadGC2.dll
4)dump.ax已经支持输出音频(dshow2raw尚未添加该功能)

dump.ax 使用用法:

1)将dump.ax放在C:\windows\system32下
2)regsvr32 dump.ax /s

dshow2raw.exe 使用方法:
命令行格式 dshow2raw.exe inputfile timecode [fourcc]
其中
inputfile为dshow可以打开的视频文件
timecode为输出的timecode v2文件
fourcc为要求输出的视频流格式,暂时只支持yv12和i420,默认为yv12

x264.exe使用示例:
dshow2raw xxx.rmvb tc.txt yv12 | x264.exe - AAAxBBB ... (x264参数)

注意事项:
1)请安装适当的dshow解码器和分离器,推荐ffdshow+haali/gabest splitter+real alternative+dscaler4,大部分商业解码器都不能很好的工作
2)如果解码器不支持yv12或i420输出,请把ffdshow的codecs->rawvideo选为all supported,并勾上output中的I420和YV12
3)对于我patch过的x264.exe(包中附带的),fourcc用yv12,官方build请用i420

已知未解决bug:
1)用CoreAVCPro可能会造成控制台无响应(对编码无影响)。
2)音频含多音轨时,除第一条以外的音轨会在编码时播放出声。
3)对于24fps的vob,大部分解码器输出帧率为20fps/30fps/20fps/30fps...(这是分离器的问题,以后会加入平滑timestamp功能)

P.S.
几天内我将发布可以直接编码dshow视频文件的x264.exe和直接编码音频的CTAACEnc.exe,GUI也在制作中。本来x264已经差不多了,今天不慎把一个c源码删了...


建议编辑顶楼的帖子并写上更新历史
或者干脆新开一个楼。。。

不是每个人都有耐心看到那么后面的。。。
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 35楼 发表于: 2008-09-19
更新x264.exe至 r979
http://www.namipan.com/d/3d9f0ce7f94e9ea2d0176fe5abf7e3a0e17039775f4f0500

编译器:
tdm gcc 4.3.2

使用命令行(fprofiled 视频为720p 3D动画):
configure --extra-cflags="-pipe -march=athlon"
make fprofiled VIDS="1.y4m" -j 2
级别: 新手上路
注册时间:
2005-04-05
在线时间:
3小时
发帖:
216
只看该作者 34楼 发表于: 2008-09-19
引用
最初由 雷鸣 发布
支持roozhu大打倒rmvb!


强烈支持+1




级别: 骑士
注册时间:
2006-09-22
在线时间:
0小时
发帖:
965
只看该作者 33楼 发表于: 2008-09-19
支持更新GUI...
我等看到命令行就头晕..

级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 32楼 发表于: 2008-09-19
支持roozhu大打倒rmvb!
级别: 风云使者
注册时间:
2002-09-11
在线时间:
0小时
发帖:
4791
只看该作者 31楼 发表于: 2008-09-19
快写好
洗掉BRP/ERP那种 就行了- -

人間五十年 下天のうちをくらぶれば 夢幻の如くなり 一度生を得て 滅せぬ者のあるべきか
服务器 ftp://txxz.share.comic.cn 用户名:txxz 密码:share 1线50K可LIST以上服务器提供TX作品下载 有需要而上面没的请PM我 感谢漫网提供服务器
本社聊天催片OX群:10042749 欢迎插入 重口味满载!
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 30楼 发表于: 2008-09-19
dshow2raw更新:

下载地址
http://www.namipan.com/d/617af7be49556e87d189b700fb8d531f210305558c8c0500

新特性:
1)更加精确的滤镜连接方式,不会再出现播放视频的情况
2)dshow2raw增加了选择输出格式的功能
3)x264.exe更新至r977,静态链接libpthread,不再需要pthreadGC2.dll
4)dump.ax已经支持输出音频(dshow2raw尚未添加该功能)

dump.ax 使用用法:

1)将dump.ax放在C:\windows\system32下
2)regsvr32 dump.ax /s

dshow2raw.exe 使用方法:
命令行格式 dshow2raw.exe inputfile timecode [fourcc]
其中
inputfile为dshow可以打开的视频文件
timecode为输出的timecode v2文件
fourcc为要求输出的视频流格式,暂时只支持yv12和i420,默认为yv12

x264.exe使用示例:
dshow2raw xxx.rmvb tc.txt yv12 | x264.exe - AAAxBBB ... (x264参数)

注意事项:
1)请安装适当的dshow解码器和分离器,推荐ffdshow+haali/gabest splitter+real alternative+dscaler4,大部分商业解码器都不能很好的工作
2)如果解码器不支持yv12或i420输出,请把ffdshow的codecs->rawvideo选为all supported,并勾上output中的I420和YV12
3)对于我patch过的x264.exe(包中附带的),fourcc用yv12,官方build请用i420

已知未解决bug:
1)用CoreAVCPro可能会造成控制台无响应(对编码无影响)。
2)音频含多音轨时,除第一条以外的音轨会在编码时播放出声。
3)对于24fps的vob,大部分解码器输出帧率为20fps/30fps/20fps/30fps...(这是分离器的问题,以后会加入平滑timestamp功能)

P.S.
几天内我将发布可以直接编码dshow视频文件的x264.exe和直接编码音频的CTAACEnc.exe,GUI也在制作中。本来x264已经差不多了,今天不慎把一个c源码删了...
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 29楼 发表于: 2008-09-13
哦,因为我的dshow2raw里直接用LoadLibrary("dump.ax")加载模块,所以必须放在同一目录下或者放system32下
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 28楼 发表于: 2008-09-13
发现了,貌似和文件夹有关系
注册了dump.ax以后,特定的文件夹内执行命令行就可以正常,出了这个文件夹就不能正常……OTL

vb 6.0版本的GUI写好了

http://www.namipan.com/d/ba2232a77467ec509148beacc007439da7d733129ee04800

http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid263/easyx264.7z?svrid=263&fid=1fd820e8f5efdd704c81858f707fe12a2c37601bc37b6ae0&&txf_fid=&&txf_sid=
提取码
80c0a398

测试希望
目前有8个预设

音频编码暂时使用ffmpeg,所以如果音频部分是ffmpeg不认的那种,请把“无声”勾起

顺便征集好的预设配置


本机测试环境是 Windows Vista Home Basic + Haali Splitter + FFDShow + VSFilter 2.39 + RealAlternative
级别: 新手上路
注册时间:
2004-08-01
在线时间:
4小时
发帖:
480
只看该作者 27楼 发表于: 2008-09-13
引用
最初由 roozhou 发布
既然是给小白们用的,我希望GUI还是用VC(静态链接CRT),VB6,Delphi之类写,不然别人还要装.net很麻烦。

.net是趋势,优点很多,编译速度快,代码比c、c++易写,易读。
特别是写这种GUI类的,.net已经提供很好的子进程调用支持。比其他任何一种语言都方便。

überm Sternenzelt richtet Gott, wie wir gerichtet.

Girls
Usually
Need
Diamond
And
Money
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 26楼 发表于: 2008-09-13
本机测试ffmpeg无法对rm格式文件里面的音频进行编码
还有mkv啊mp4啊之类的东西经常无法正常加载(有可能是我这里解码器的问题,或者解码器和vista的兼容性有点ox?)
编辑:安装了Haali的splitter、安装ffdshow以后问题解决
(之前是就依靠一个mpc-hc + realalternative过活……)

不知道roozhu大是否可以造一个类似的东西提供对音频流的这种处理?
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 25楼 发表于: 2008-09-12
既然是给小白们用的,我希望GUI还是用VC(静态链接CRT),VB6,Delphi之类写,不然别人还要装.net很麻烦。
级别: 新手上路
注册时间:
2005-04-05
在线时间:
3小时
发帖:
216
只看该作者 24楼 发表于: 2008-09-12
雷鸣大也用.net么。。。握手。。。
控制进程应该不难吧,弄个线程把dshow2raw的stdout全部写入x264的stdin就可以了。。。然后分析下stderr的输出就ok。。。

另外支持roo大的新工具。。。全面加速x264取代rmvb啊。。。




快速回复

限150 字节
上一个 下一个