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

[原创]dshow2raw工具发布专用帖(更新至2011-11-25)

楼层直达
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
sf帐号已经恢复,请在sf上下载最新版本
【最新版本下载】
2011-11-25

* 更新x264至2106,libx264使用gcc 4.6.1编译。
* 使用--sei-opts <integer>参数代替--versioninfo。<integer>为0不添加版本信息,1只有版本信息,2有版本信息和编码参数,默认为0。
* 改善了CTAACEncoder在多线程下的性能,支持扩展wav头。
* dshow2wav可以使用-E和-T设定开始和结束时间(必须写在输入文件名之前)。

2011-08-31
http://sourceforge.net/projects/direct264/files/Direct264%20SVN%20Release/2011-08-31/direct264_20110831.7z/download
* 更新x264至2074,libx264使用gcc 4.5.2编译,cli部分用vs2010sp1编译。
* 字幕功能可以作为内置滤镜使用,可配合dshow以外的输入方式使用。方法是--vf subtitle,可以放在resize,crop等滤镜后加载,但仍要使用--sub xxx选择字幕文件。dshow模式下如果使用--sub但不在vf里加subtitle还和之前相同。注意vf模式下如果使用--starttime需要相应调整字幕里的时间轴,但老的dshow模式下直接加载不需要。
* vsfilter升级至mpc-hc 3698,DirectVobSub模式下增加对NV12的支持。
* 修正dshow输入w*h(crop后)非mod32时可能引起随机crash的bug

【使用方法】
1) 将压缩包中所有的exe,dll和ax文件解压到相同目录下
2) 基本编码命令和官方版相同。解码会优先使用dshow,如果dshow打开失败会再尝试lavf(官方版本为先ffms再lavf)。
3) “CTAACEncoder.exe" 可使用winamp的enc_aacplus插件将影音文件中的音频编码为aac格式。直接在控制台下不带参数执行将显示完整帮助。
4) ”dshow2wav.exe" 可使用dshow解码影音文件中的音频并输出wav头+pcm至stdout。
5) 如果需要直接压缩DVD
   --插入DVD光盘或用虚拟光驱加载DVDISO
   --打开DVD上的VIDEO_TS文件夹,找到所需的IFO,正片一般是VTS_01_0.IFO
   --用三个工具中的任何一个编码该文件
【x264中的新参数(仅在dshow模式下有效)】
1) --deldup minfps[:lthresh[:mbthresh[:mbmax[:cthresh]]]]  : 开启删除重复帧滤镜,具体用法看下面的解释。
2) --smoothts : 开启平滑帧率功能。许多mpeg2解码器播放24fps DVD输出帧率为20/30相间或17/24/30/30相间,这个功能可以将其修正。(最新的ffdshow不需要此参数)
3) --starttime hh:mm:ss.ssss, --endtime hh:mm:ss.ssss : 设定编码开始和结束的位置。
4) --sub <subfilename> : 加载字幕,支持所有常见格式。可通过多次指定加载多条字幕(最多16条)。如果已安装了vsfilter/vobsub,请先关闭自动加载字幕功能。
5) --versioninfo : 向AVC码流中写入x264版本信息和编码参数,默认不写入。
6) --ivtc <mode>: 启用ivtc功能,具体用法看下面的解释。
7) --timed-scenecut : scenecut的强度默认是随帧数线性增加,加入此参数后则随时间戳线性增加。此参数vfr输入下可避免GOP长度超过预设值。
* 如果输入文件的后缀名为avs会按avisynth输入处理,后缀名为y4m会按y4m输入处理,后缀为yuv或文件名为 - 会按raw yv12输入处理,文件名为file%02d.jpg这种形式则由lavf读入图片序列,其余将按先dshow后lavf输入处理。
* --fps不强制cfr,对实际输出的时间戳无影响。
* 不指定--sar时,x264会自动根据解码器输出设定。如果用--sub加载字幕时,也会根据--sar的值对字幕进行补偿以使播放时字幕不变形。
* 请先安装适当的dshow解码器和分离器,推荐ffdshow+haali/gabest splitter,大部分商业解码器(NVidia PV, Indeo, Cyberlink...)都不能很好的工作。
* 如果解码器不支持nv12或yv12输出,请把ffdshow的codecs->rawvideo选为all supported,并勾上output中的NV12和YV12。
【deldup 去重复帧滤镜的使用】
x264新加入了一个near duplicate frame remover滤镜。滤镜算法参考mplayer中的decimate滤镜。
作用:
a)实现自适应ivtc,自动调整被ivtc部分的帧率
b)对一些静态画面较多的视频,删除重复帧可以大大加快编码速度并减少文件体积
用法:
默认关闭,用"--deldup"参数开启。参数格式为"--deldup minfps[:lthresh[:mbthresh[:mbmax[:cthresh]]]]"。
minfps: 小数,指定允许的最小帧率。如果当前帧与上个已编码帧的间隔超过1/minfps秒则该帧不进行重复性检查直接编码。需指定。
lthresh: 小数,指定Y平面允许的最大SAD为w*h*lthresh,设为负数不进行Y平面检查。默认0.4。
mbthresh,mbmax: 整数,如果画面内SAD超过mbthresh的8x8块个数超过mbmax,视为非重复帧并跳过后面的检,仅对Y平面有效。默认320,width/10。
cthresh: 小数,指定U和V平面允许的最大SAD为w*h*cthresh,设为负数不进行U/V平面检查。默认lthresh*2。
【ivtc功能的使用 】
在x264参数中加入--ivtc <mode>即可开启
mode现有三种
a:仅对视频进行场匹配,场序为自动,deldup滤镜不自动开启。
通常只是用来处理一些场序混乱的视频,并不适合用来做ivtc。
t:场序为tff,deldup滤镜自动打开,默认参数为24:1:400:80:2,
并且lthresh,mbmax,cthresh参数会根据phase滤镜的匹配结果动态调整。
通常用来处理30fps telecine的视频。
b:场序为bff,其他同t模式。
d:通过ffdshow的DScaler插件模式开启,用于在ivtc后再插入resize等后处理。场序在ffdshow中指定,其他同t/b模式。(现在x264自带resize和crop,此方法已不推荐)
某些DVD噪点较多,可能默认的deldup参数太低,需要手动设置更高的值
【使用示例】
1)用x264编码rmvb文件中5分到6分30秒的一段,输出mkv
x264.exe -o a.mkv --crf 26 ...(其他x264参数) --starttime 0:5:0 --endtime 0:6:30 a.rmvb
2)用x264编码DVD,并加载ass字幕,输出mp4,同时打开deldup减小文件体积。DVD盘符为H:
x264.exe -o dvdrip.mp4 --crf 18 ...(其他x264参数) --deldup 12 --sub dvd.ass --smoothts H:\VIDEO_TS\VTS_01_0.IFO
3)将mkv文件中的音轨转为128kbps立体声lc-aac
CTAACEncoder -m 2 -b 128000 -c 2 -d -o yyy.aac yyy.mkv
4)将DVD(盘符E: )的第2条音轨用neroaacenc编码
dshow2wav.exe E:\VIDEO_TS\VTS_01_0.IFO 2 | neroaacenc.exe -q 0.2 -ignorelength -if - -of dvd_audio.mp4。
6)用x264编码某经过telecine的vob文件
x264 -o ivtc.mp4 --crf 20 ...(其他x264参数) --ivtc t telecined.vob
旧版本下载
源代码请在https://direct264.svn.sourceforge.n...t/direct264获取
2011-05-17
* 更新x264至1995
下载:http://www.mediafire.com/?1ajza4ynvu9kuu4

2011-03-25
* 更新x264至1924
* x264可以输出超过2G的avi
下载:http://www.mediafire.com/?dco1vi3luv6789d

2010-08-31
* 更新x264至r1670(因为filter system在编译时还有许多问题,所以最新版本可能要在十一左右再出)
* 更新了vsfilter
* 修正了使用--sub时,正常编码至结束时崩溃的bug
* 修正了--demuxer dshow不能使用的bug
* 优化了dump.ax
* x264增加了新参数--timed-scenecut,可使scenecut根据时间戳来调整,避免deldup删帧后GOP变得过长
2010-07-02
* 更新x264至r1659
* 修正了使用lossless编码时有可能crash的bug
* 默认keyint_min恢复至与原版相同(keyint / 10)
* 默认线程数改为 (核心数 + 线程数) * 0.75,在超线程CPU上默认线程数减少,其他CPU不变
2010-04-28
* 更新x264至r1564
* 修正了CTAACEncoder -T参数定位的bug
2010-04-08
* 更新x264至r1523
* 默认keyint自动设为fps*10,使用--keyint 0有同样效果。
* CTAACEncoder使用mp4/m4a输出时不再需要先将输出文件保存至系统TEMP目录。
注意:--timecode和--timescale参数已经删除,请使用官方版新加的--tcfile-in和--timebase参数。
2010-03-04 (请下载v2)
* 更新x264至r1471
* 编码DVD时不再需要注册VTSReader.ax。新增加了VTSReaderMod.ax,内包含MPC的MPEG2分离器,文件名后缀为IFO时自动调用其中的滤镜。
* CTAACEncoder可以正确处理文件名中含有无法在当前代码页显示的字符的情况。将在提示信息中使用8.3文件名,不再出现崩溃或mp4输出无法创建文件的情况。
2010-02-25
* 升级x264至r1462
* 修改了x264默认参数,--profile high时weightp和b-pyramid默认打开(和官方版相同),--profile main时默认关闭(兼容PSP)。
* x264上一些小的性能优化
2010-02-08
* 升级x264至r1416
* 修正了mp4输出的bug
2010-01-29
* 升级x264至r1400
* x264中dshow输入的多线程模式改善,减少一对不必要的互斥锁
* 修正了更多vsfilter在DirectVobSub模式下的问题
* vtsreader.ax和decssfilter.ax合并成一个文件
2009-12-25
* 修复vsfilter用--sub加载字幕色彩错误的bug
* vsfilter对于HD视频自动使用BT.709转换RGB->YUV,dshow和--sub均有效。
* 修复了CTAACEncoder定位的bug
* 重新编译了一些模块,程序体积减小
2009-12-17
* 更新x264至r1376
* dump加入新接口,可以返回打开文件的时长。x264使用dshow模式编码时,会在编码前打印出文件的长度。如果文件没有长度(比如摄像头实时摄像),则不打印。此功能可方便计算编码进度。
* 如果使用了--starttime指定开始时间,x264会打印出实际开始编码第一帧的时间戳,精确到十万分之一秒。如果需要同时编码音频,该数据可以用来给音频编码器精确定位。
* ivtc加入了新的d模式。由于phase滤镜之前不能插入任何其他滤镜,包括crop,所以如果需要resize或crop,必须在ffdshow的DScaler插件中中启用FLT_Phase并在之后使用crop或resize。d模式可以从DScaler接口中获取phase滤镜的判定结果并进行IVTC工作。该模式可能还有bug,请大家帮忙测试。
* CTAACEncoder的-T和-E参数支持小数输入,并且支持精确到sample的定位(dshow模式下要求不使用-mt,并且解码器输出的时间戳必须足够准确)。
* 修正了CTAACEncoder选择mp4输出时不能用unicode文件名的bug。
* 修正了dump中几个错误的sar值。
2009-12-02
* x264更新至r1354
* 多处小规模性能优化
* min_keyint默认值改为2(兼容BD)
2009-11-23
* x264更新至r1342(注意由于与很多解码器存在兼容问题,weightp默认关闭,需要使用请用--weightp 1或2参数打开)
* 新加入的flv输出支持vfr
* 输入DVD时,8:9/32:27/16:15/64:45的sar会被自动更正为10:11/40:33/12:11/16:11。
2009-10-27
* x264更新至r1310
* CTAACEncoder中的downmix使用MMX优化
2009-10-17
* x264更新至r1292
* CTAACEncoder使用dshow输入时会自动将5.1或4声道的音源downmix成立体声(使用Dolby Prologic II矩阵)
2009-09-11
http://www.namipan.com/d/dshow2raw_...74842591dec0e00
* 更新x264至r1251
* 修正了非mod8分辨率崩溃的bug
* 修正了y4m输入的问题
2009-08-18
http://www.namipan.com/d/dshow2raw_...3add21015d70e00
* 更新x264至r1214
* 修正了versioninfo中没有rc_lookahead和mbtree信息的问题
* 优化了部分汇编代码
2009-08-17
http://www.namipan.com/d/dshow2raw_...f766ecc56d50e00
* 更新x264至r1210。请注意从1197开始新加入的mb-tree功能,对crf码率控制有较大影响。另外使用mp4和avi输出时请将--rc-lookahead参数限制在60以下(默认40)。
* x264加入avi输出功能,可以输出vfr的avi但需要指定--fps为混合帧率的最小公倍数。另外使用的是老式的avi格式,所以不支持2G以上的文件,将来会加入分段功能,或改用OpenDML格式。
* 改进了CTAACEncoder的命令行提示
另外由于上个版本开始ivtc使用YV12输入,新加入了对宽高的限制。使用ivtc时宽必须mod16,高必须mod4
2009-07-29
* x264 更新至r1195(加入新参数subme 10)
* phase滤镜可在YUV420下正常工作,开启x264内置ivtc时不再需要YUY2输入。x264使用默认参数大约有5%的速度提升
* vsfilter的代码移至guliverkli2上重新编译
2009-07-20
* 更新x264至r1184
* 增加了对15:11 sar的支持,修正某些ts输出非常大的fps(10000+)的问题
* 少量的性能优化
ffmpeg也已经更新,现在可以从mkv中提取aac和mp3了,请下载新版
2009-07-08
http://www.damipan.com/file/2RlSNfM.html
2009-06-22  
http://www.damipan.com/file/26jfYNR.html  
* 更新x264至r1169  
* 现在dshow输入时2pass模式可以正常工作了,需要1st pass crf + 2nd pass bitrate  
P.S. ffdshow tryouts svn-r3011起的版本加入了平滑时间戳功能,用其解码24fps DVD时不再需要加入--smoothts参数了。
2009-06-11
http://www.namipan.com/d/f08c6ab6dd...6cb509fa5fa0e00
* 去掉了多线程的slice type decision,该补丁目前极度不稳定
* 加强了音轨切换功能,CTAACEncoder和dshow2wav在使用Haali分离器或MPC MPEG Splitter时可以通过aid选择音轨。现在编码DVD和TS时如果需要编码非默认音轨不再需要先demux出来了。
2009-06-01
http://www.namipan.com/d/5ca9d0aa72...49d0784b2690f00
* x264升级至r1163
* 将x264中默认的keyint_min从25减少到6
* mp4输出将完全不使用initial delay,避免播放使用某些分离器(如MPC)时出现影音不同步
2009-05-22
http://www.namipan.com/d/6090e13a93...0e4e1a3dd6e0f00
* x264升级至r1153
* x264加入了实验性质的多线程b-adapt 2,默认关闭,可通过参数--lookahead x(x为线程数)开启。注意该功能有一定几率造成进程死锁,请谨慎使用
* x264加入了多字幕功能,可通过多个--sub subfile参数实现,最多16条
* x264通过dshow编码时会和avis输入一样在屏幕打出分辨率和fps
* 略微改善了dump.ax和phase的性能
2009-05-20
http://www.namipan.com/d/316c21de1a...3d142ef0c700f00
http://www.damipan.com/file/1JSRyK3.html
http://files.filefront.com/direct26...;/fileinfo.html
* x264中原先去除user data会造成QuickTime播放时绿屏现象,现已修复
* x264中给MSVC用的log2f函数写错,可能会造成AQ和predition结果有误,现已修复
* ivtc t/b模式下,deldup的淡入淡出判定有误,现已修复
* x264中--smoothts在不开启deldup时无法正常工作,现已修复
* 优化了x264中nal写入的速度(基于VFR Maniac的tc2mp4mod的代码)
2009-05-15
http://www.namipan.com/d/dshow2raw_...547fd2c5f6e0f00
* x264更新到r1148
* 修正了mp4输出时,dts/cts错误的问题,重写了dts/cts计算的代码。
* 加入参数--timescale,设定时间戳所用的分母。如果不设定的话会自动计算一个合适值,可避免cfr的视频使用mp4输出时生成vfr的timestamp,可以一定程度的减小mp4文件体积。(注意PSP支持的最高timescale为60000)。
* deldup中的mbmax参数默认值由80改成width/10
* 参数--no-versioninfo改为--versioninfo,默认情况下不写入版本信息和压制参数。
2009-05-08
http://www.namipan.com/d/d6d8e89cb1...088cda5fa6a0f00
* 更新GPAC至最新的CVS
* 修正了mp4输出的一些问题,bframe>=8时不再输出空mp4文件
2009-04-28 v2 (第一版存在未知原因的crash问题,请下载v2)
http://www.namipan.com/d/1444139917...c54603ee4680f00
http://files.filefront.com/direct26...;/fileinfo.html
* 修正了x264非dshow模式下pts输出错误以及码率显示错误的bug
* 修正了不开启ivtc时deldup无法正常工作的bug
* 修正了ivtc时30fps->24fps自动调整时间戳无法正常工作的bug
* 去除了deldup对分辨率w*h必须mod32的限制,稍稍优化了UV平面比较的速度
* 提升了默认的deldup参数,鉴于telecine片源噪点多是常态,ivtc时默认的deldup参数提升由4倍增加到16倍
* vsfilter,vtsreader,decssfilter同步到最新的MPC-HC
2009-04-20
http://www.namipan.com/d/fe9269b778...cf3ac61455e0f00
http://files.filefront.com/direct26...;/fileinfo.html
* x264更新到r1143
* x264可直接调用phase滤镜实现ivtc
* 修正了raw和y4m输入时pts输出错误的bug,thread-input在这两种输入模式下被禁用
* 修正了CTAACEncoder的多线程模式产生噪音的bug
2009-4-13
http://www.namipan.com/d/dshow2raw_...9bd26b4175b0f00
这次主要是修正一些bug,新功能还未通过自己的测试,所以暂时不加
* x264升级至r1139。
* dump.ax现在会自动去除图中的Overlay Mixer和AVI。Decompressor,避免出现errcode = 7的错误。
* vsfilter原先解决内存泄漏的方法有bug,可能导致某些特效被“吃掉”,已经修正,请不要使用1月到3月发布的vsfilter.dll;但同时发现修正后依然存在严重的隐式内存泄漏,只能以后再想办法找出来了,如有这方面的高手欢迎指教。
2009-3-20
http://www.namipan.com/d/dshow2raw_...b0b3f64c7440f00
* 更新x264至r1128
* 修复了某些情况下x264编码结束时死锁或程序崩溃的bug
* 增加的对SVCD的PAR的支持
* enc_aacplus.dll更新至2009-03-09版本
2009-03-11
http://www.namipan.com/d/fc9829719c...28bf307bc440f00
* 更新x264至1127
* 改善了deldup的算法,现在可以更加准确地检测到淡入淡出场景从而避免在这些画面中删帧。默认参数有所增加。
* x264使用dshow输入且不开启deldup和thread-input时,将直接使用dshow的帧缓冲而不再将帧拷贝至x264自己的输入缓冲,性能上有小幅的提升。
* 优化了x264_clz函数,使用aq时有一定的速度提升。
* 现在x264 --version会显示VC的版本号,而不是原来的using a non-gcc compiler。
* Dump 现在支持同一进程多个实例(为GUI实现多任务做准备)。
* 加入对几种sar的支持(20:11, 23:11, 80:33, 32:11),偶然发现某些DV拍出来的MPEG2是这样的。
* CTAACEncoder加入了多线程模式-mt,只在-d模式下有效。会使用单独的输入线程(类似x264的--thread-input)。解码端速度较慢(如FLAC,APE)且CPU为多核时推荐使用。
* 改善了CTAACEncoder的参数解析(原来只判断第一个字母),修正了输出信息里的语法错误。
* 重构了vsfilter中的tag解析代码,对于较大的ssa/ass字幕文件有5%左右的性能提升。
* 改善了phase滤镜的算法,有10%(AMD)~30%(Intel)的速度提升。
2009-02-21
http://www.namipan.com/d/dshow2raw_...cef95ce6f3f0f00
* 修正了deldup的无效或崩溃的bug(上版本中未修复)
* x264和vsfilter依然使用ansi文件名(UTF8在win32下基本没用),如果文件名含有当前代码页不支持的字符,请在cmd下用chcp转成相应的代码页然后再执行x264。
2009-02-18
http://www.namipan.com/d/e43990ddce...18c7b23b63d0f00
* x264更新到r1114
* 修正了VC版x264中deldup引起崩溃的bug(实际上没有修复,请无视...)
* dump.ax可以使用Unicode文件名,dshow2wav和CTAACEncoder已改成Unicode。x264仍然使用非unicode,但原先的接口使用UTF8代码页进行转码而不是原先的ANSI,一些文件名无法打开的情况应该可以解决了(未测试)。
* 用优化参数重新编译了dshow sdk中的BaseClasses,dump和vsfilter的性能有略微提升
* 修正了vsfilter中一部分内存泄漏问题,对于较复杂的特效可减少95%以上的内存泄漏。
2009-02-11
http://www.namipan.com/d/e0b080d4bd...1d2f04c765b0f00
* x264更新至r1109(不再提供gcc编译版本)
* 重新编译了vsfilter.dll,更新了版本号,使用/arch:SSE修正athlon-xp可能崩溃的问题
* 新加入了一个field matching滤镜Phase,可配合deldup实现ivtc。由于该滤镜现在只能在4:2:2下正常工作,所以暂未实现直接由x264调用,需要通过ffdshow的DScaler filter加载。详细使用方法见readme_phase.txt
2009-01-15
http://files.filefront.com/dshow+x2...;/fileinfo.html
http://www.namipan.com/d/519c3fd695...273a77c5ec21400
* x264升级至r1077
* MSVC版工程设置中将/arch: SSE2改为/arch: SSE,/fp: precise改为/fp: fast,也许可以修正不支持SSE2的CPU上crash的问题并稍稍提高速度
* x264增加了针对raw YUV输入的新参数--swapuv,无此参数时为I420(与官方版相同),有此参数为YV12。
* 修正了dump.ax无法处理某些DV-AVI文件的bug
源代码已经上传到Sourceforge,svn地址:
https://direct264.svn.sourceforge.net/svnroot/direct264
当前所有代码都需要vs2005sp1,dump还需要一些dxsdk的头文件和库,所有需要预编译的库文件(GPAC,pthread,baseclasses)均包含在代码中。
2008-12-26
http://files.filefront.com/dshow+x2...;/fileinfo.html
* x264更新到1061
* 修复了--progress显示码率为负数的bug
可直接在VS2005sp1上编译的源代码
http://files.filefront.com/x264work...;/fileinfo.html
包内已经包含了pthread和gpac相关的头文件和lib,只要选择release就可以直接build。




[ 此帖被roozhou在2011-12-04 18:55重新编辑 ]
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 1楼 发表于: 2008-09-22
比较想知道什么时候能native support posix system,不过估计路还有很远……

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 2楼 发表于: 2008-09-22
windows 不是posix system
avisynth和dshow只能在windows下使用

所以这是M$的事情了
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 3楼 发表于: 2008-09-22
不,我只是在想,既然可以把dshow做成source,那有没有办法把linux下的接口也做成source放x264里面呢?那样至少可以不用yuv了……

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 4楼 发表于: 2008-09-22
linux下有类似dshow或者COM的通用接口吗?还是用mencoder比较方便。
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 5楼 发表于: 2008-09-22
随便做了个benchmark的结果,无责任帖:

p4 2.4c + 512M + winxp

每个样本测一次。样本是fmp1ncop映像特典,分别是直接dshow(ffds)、avisource、dss(DMO)和dss(ffds)来跑。获取CPU时间、内存占用和虚拟内存占用计数。
时间和内存占用分别是:
  1. CPUTime mem(K) vmem(K)
  2. 0:02:33 40,200 40,800
  3. 0:02:31 73,800 77,000
  4. 0:02:33 82,000 82,200
  5. 0:02:35 86,800 86,800


命令行以及详细统计数据分别是:
  1. H:\app\x264d>x264 --qp 24 --bframes 3 --fps 2997/125 --progress --output "dshow.mp4" "フルメタル·パニック! MISSION:01 映像特典 ノンテロップOP (DVD VGA WMV9).avi"
  2. x264 [info]: using cpu capabilities: MMX2 SSE2 Cache64
  3. mp4 [info]: initial delay 125 (scale 2997)
  4. x264 [info]: slice I:14Avg QP:21.00 size: 13473 PSNR Mean Y:52.98 U:57.45 V:57.38 Avg:53.92 Global:50.11
  5. x264 [info]: slice P:1355 Avg QP:24.00 size: 4415 PSNR Mean Y:46.89 U:51.80 V:51.61 Avg:47.92 Global:47.13
  6. x264 [info]: slice B:792 Avg QP:26.00 size: 757 PSNR Mean Y:46.35 U:51.41 V:50.22 Avg:47.33 Global:46.61
  7. x264 [info]: consecutive B-frames: 44.2% 16.7% 9.5% 29.6%
  8. x264 [info]: mb I I16..4: 62.4% 0.0% 37.6%
  9. x264 [info]: mb P I16..4: 14.3% 0.0% 7.8% P16..4: 20.4% 6.2% 3.2% 0.0% 0.0%skip:48.1%
  10. x264 [info]: mb B I16..4: 1.0% 0.0% 0.0% B16..8: 11.2% 0.9% 0.5% direct: 2.5% skip:83.9% L0:38.0% L1:41.7% BI:20.3%
  11. x264 [info]: SSIM Mean Y:0.9929551
  12. x264 [info]: PSNR Mean Y:46.730 U:51.695 V:51.136 Avg:47.741 Global:46.946 kb/s:600.99
  13. encoded 2161 frames, 13.44 fps, 601.10 kb/s
  14. H:\app\x264d>x264 --qp 24 --bframes 3 --progress --output "avsavi.mp4" "1.avs"
  15. avis [info]: 640x480 @ 23.98 fps (2164 frames)
  16. x264 [info]: using cpu capabilities: MMX2 SSE2 Cache64
  17. mp4 [info]: initial delay 125 (scale 2997)
  18. x264 [info]: slice I:14Avg QP:21.00 size: 13710 PSNR Mean Y:52.96 U:57.40 V:57.32 Avg:53.90 Global:50.01
  19. x264 [info]: slice P:1364 Avg QP:24.00 size: 4344 PSNR Mean Y:46.99 U:51.89 V:51.72 Avg:48.02 Global:47.20
  20. x264 [info]: slice B:786 Avg QP:26.00 size: 736 PSNR Mean Y:46.69 U:51.70 V:50.48 Avg:47.66 Global:46.79
  21. x264 [info]: consecutive B-frames: 44.2% 18.4% 8.0% 29.4%
  22. x264 [info]: mb I I16..4: 62.3% 0.0% 37.7%
  23. x264 [info]: mb P I16..4: 14.3% 0.0% 7.8% P16..4: 19.9% 6.1% 3.2% 0.0% 0.0%skip:48.8%
  24. x264 [info]: mb B I16..4: 1.0% 0.0% 0.0% B16..8: 11.2% 0.9% 0.5% direct: 2.4% skip:84.1% L0:37.1% L1:42.4% BI:20.5%
  25. x264 [info]: SSIM Mean Y:0.9933250
  26. x264 [info]: PSNR Mean Y:46.918 U:51.857 V:51.303 Avg:47.924 Global:47.060 kb/s:593.49
  27. encoded 2164 frames, 13.80 fps, 593.60 kb/s
  28. H:\app\x264d>x264 --qp 24 --bframes 3 --progress --output "avsdss.mp4" "2.avs"
  29. avis [info]: 640x480 @ 23.98 fps (2164 frames)
  30. x264 [info]: using cpu capabilities: MMX2 SSE2 Cache64
  31. mp4 [info]: initial delay 417083 (scale 10000000)
  32. x264 [info]: slice I:14Avg QP:21.00 size: 13172 PSNR Mean Y:53.04 U:57.48 V:57.43 Avg:53.99 Global:50.20
  33. x264 [info]: slice P:1312 Avg QP:24.00 size: 4513 PSNR Mean Y:46.97 U:51.84 V:51.63 Avg:47.99 Global:47.21
  34. x264 [info]: slice B:838 Avg QP:26.00 size: 727 PSNR Mean Y:46.39 U:51.43 V:50.31 Avg:47.37 Global:46.64
  35. x264 [info]: consecutive B-frames: 40.6% 19.5% 8.7% 31.3%
  36. x264 [info]: mb I I16..4: 62.5% 0.0% 37.5%
  37. x264 [info]: mb P I16..4: 14.8% 0.0% 8.1% P16..4: 20.3% 6.3% 3.3% 0.0% 0.0%skip:47.1%
  38. x264 [info]: mb B I16..4: 1.0% 0.0% 0.0% B16..8: 11.0% 0.9% 0.5% direct: 2.4% skip:84.2% L0:37.1% L1:43.1% BI:19.8%
  39. x264 [info]: SSIM Mean Y:0.9931590
  40. x264 [info]: PSNR Mean Y:46.785 U:51.717 V:51.159 Avg:47.790 Global:46.990 kb/s:595.21
  41. encoded 2164 frames, 13.52 fps, 595.32 kb/s
  42. H:\app\x264d>x264 --qp 24 --bframes 3 --progress --output "avsdss2.mp4" "2.avs"
  43. avis [info]: 640x480 @ 23.98 fps (2164 frames)
  44. x264 [info]: using cpu capabilities: MMX2 SSE2 Cache64
  45. mp4 [info]: initial delay 125 (scale 2997)
  46. x264 [info]: slice I:14Avg QP:21.00 size: 13314 PSNR Mean Y:53.09 U:57.46 V:57.40 Avg:54.02 Global:50.21
  47. x264 [info]: slice P:1316 Avg QP:24.00 size: 4493 PSNR Mean Y:46.98 U:51.86 V:51.65 Avg:48.01 Global:47.22
  48. x264 [info]: slice B:834 Avg QP:26.00 size: 729 PSNR Mean Y:46.41 U:51.51 V:50.38 Avg:47.40 Global:46.67
  49. x264 [info]: consecutive B-frames: 40.8% 19.5% 8.4% 31.3%
  50. x264 [info]: mb I I16..4: 62.3% 0.0% 37.7%
  51. x264 [info]: mb P I16..4: 14.8% 0.0% 8.1% P16..4: 20.3% 6.3% 3.2% 0.0% 0.0%skip:47.3%
  52. x264 [info]: mb B I16..4: 1.0% 0.0% 0.0% B16..8: 11.0% 0.9% 0.5% direct: 2.4% skip:84.3% L0:37.7% L1:42.7% BI:19.6%
  53. x264 [info]: SSIM Mean Y:0.9932126
  54. x264 [info]: PSNR Mean Y:46.802 U:51.761 V:51.199 Avg:47.812 Global:47.012 kb/s:594.44
  55. encoded 2164 frames, 13.24 fps, 594.55 kb/s


可见速度基本差别不大,但是貌似directshow接口好像会漏掉那么几帧。

丢帧对比(任取同一关键帧,以ffdshow解码器OSD显示帧数为准):
dshow:1504
avsavi:1507
dss(DMO):1504
dss(ffds):1504
可知avisource前面多了3帧,dss是尾巴多了3帧。

另外,经过测试,解码wmv9的时候必须使用ffdshow而不能用wmvideo decoder DMO,否则会导致x264取不到画面。

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 6楼 发表于: 2008-09-22
DMO取不到图像的bug也有其他人报告了,我测试了一下其实所有无分离器的情况(就是文件出来直接连解码器的)都取不到图像,正在研究原因ing...
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 7楼 发表于: 2008-09-23
离目标非常近了
加上音频的话,大概就可以往各大rmvb产地丢了


顺便,因为x264的信息不走stdout,貌似stdout也没见它出现过什么,大概可以让音频走stdout,然后管道符导出来压制
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 8楼 发表于: 2008-09-23
首先我的x264 build不影响原先的功能,所以肯定不会用stdout。音频我考虑输出文件,根据指定文件名选择创建文件还是named pipe,这样就不再需要其他程序创建named pipe了。

P.S. 想代替ERP还早呢,需要单进程化,我的想法是自己调用winamp enc_aacplus.dll,编码后mux到mp4/mkv/avi格式中,并且支持vfr,还有不再需要额外的muxer。 另外一些常见的滤镜需要集成进去,特别是反交错和ivtc。
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 9楼 发表于: 2008-09-23
为什么会有avi……

ivtc和反交错应该没有太大必要,交错源几乎都来源于mpeg2,directshow的mpeg2解码器基本上都是设计来播放用,不会把交错的数据流送出来的。如果要高质量肯定自己ivtc,如果不要高质量就依靠解码器自带的吧
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 10楼 发表于: 2008-09-23
鎶婁竴浜涚紪鐮佸櫒浠g爜鎼炴垚鍔ㄦ搴撶劧鍚庡嚱鏁拌皟鐢ㄥ憿锛

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 11楼 发表于: 2008-09-23
Orz what happened with the mobile interface?

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 12楼 发表于: 2008-09-23
引用
最初由 雷鸣 发布
为什么会有avi……

ivtc和反交错应该没有太大必要,交错源几乎都来源于mpeg2,directshow的mpeg2解码器基本上都是设计来播放用,不会把交错的数据流送出来的。如果要高质量肯定自己ivtc,如果不要高质量就依靠解码器自带的吧


我上次不是问过了吗,dshow解码器里至今没见过能ivtc的。realproducer里可是自带了ivtc的,虽然效果不怎么样。

至于avi,既然支持h264和aac,当然可以加进去,只是把avc2avi移到x264内部而已。
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 13楼 发表于: 2008-09-23
引用
最初由 MeteorRain 发布
鎶婁竴浜涚紪鐮佸櫒浠g爜鎼炴垚鍔ㄦ佸簱鐒跺悗鍑芥暟璋冪敤鍛�紵

把一些编码器代码搞成动态库然后函数调用
引用
最初由 roozhou 发布


我上次不是问过了吗,dshow解码器里至今没见过能ivtc的。realproducer里可是自带了ivtc的,虽然效果不怎么样。

至于avi,既然支持h264和aac,当然可以加进去,只是把avc2avi移到x264内部而已。

到时候又是一堆人用avi……
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 14楼 发表于: 2008-09-23
有两个小问题希望达人解答一下

1)x264里的mkv输出是不是坏的,怎么出来的文件都放不了?
2)计算码率时,1 kpbs = 1000 bps 还是 1024 bps?
快速回复

限150 字节
上一个 下一个