DirectShowSource和ffms2画质不一样
dwing吧
全部回复
仅看楼主
level 7
haierccc 楼主
我原来用DirectShowSource导入照相机拍摄的MJPEG的AVI视频,可是发现颜色不对头,普遍发暗,细节消失。后在本论坛经高人指点改用ffmpegsource2,颜色就正常了,截图如下:
第一张是直接播放MJPEG原始AVI,后一张是在AVS里用DirectShowSource导入视频,可见细节已经丢失了。
我的CPU是I5 5470,3.2G,4核心,8G内存。鉴于强大的硬件配置,于是用WIN7 64,压缩方面当然也可以沿用32bit软件,但是为了追求最大效率,所以在寻找全64bit的压缩方案。
最终找到了Vapoursynth,64位Vapoursynth+64位Python+64位ffms2插件+x264_64应该可以构建全64bit的压缩环境了。 可是关于Vapoursynth有太多不懂的地方了,相当于重头学一遍AVS脚本。
其实我基本都是裸压,不用任何的修剪和画面润色,所以刚刚学了一下x264命令行,代码如下:
x264 --crf 24 --tune film --preset medium --b-pyramid none -o 1.mkv 1.avi
此代码执行无误,可以输出1.MKV,但就是画面右边的情况,画面发暗,跟用DirectShowSource是一样的效果。
可是我看到的资料是x264已经加入了ffms,怎么还会是这样,难道内部还是DSS导入,抑或是ffms,而不是ffms2么?
为了避免此情况,只有用64bit的ffms2,可这又需要Avisynth,32bit的Avisynth我不想用,64bit的据说性能很不好,Avisynth已经老矣,不能发挥4核心的最高性能。
剩下的选择就是64位Vapoursynth+64位的ffms2+X264_64了,可是Vapoursynth的语法。。。。哎,纠结呀。
另外请教一下,我看到的资料,X264会自动判断输出文件的类型并自动封装,可为何不能输出MP4,如果输出文件改成1.MP4就会提示:
X264 [error]: not compiled with MP4 output support
最后一个问题,大家可否发现x264。nl已经被转向到videolan了,难道这个新站点将是x264的发布平台么?
谢谢!
2013年11月26日 11点11分 1
level 12
自己瞎用dss怪avs有问题? 呵呵
2013年11月26日 12点11分 2
请问该如何正确使用啊,这个的确让我摸不着头脑,我记得在最早的时候是无问题的,但是以后就变成这样了,难道跟某个软件有关系么
2013年11月26日 23点11分
level 11
人家双路E5都用着32位的AVS呢...i5就别自大了...
2013年11月26日 13点11分 3
i5 5470还是很牛逼的
2013年11月26日 16点11分
回复 xomyloveox :恩的确,毕竟目前市场上还没有这颗cpu...(
2013年11月27日 00点11分
回复 ▔∞▔ :[滑稽]~~~
2013年11月29日 04点11分
level 12
裸压的话直接用tmod的x264版本一般不会有什么问题的。
我写了一个GUI直接利用tmod的,裸压视频avi的ts的也没碰到啥问题,但是音频不要用这个x264处理, 所以要加--acodec none 参数,音频单独用ffmpeg命令行来处理。
2013年11月26日 13点11分 4
好的,我试试
2013年11月28日 03点11分
level 12
额,好吧,就算x264解码比较容易有问题,avs光做个解码也不是什么瓶颈嘛
2013年11月26日 14点11分 5
level 7
haierccc 楼主
原来的E6550压缩速度是个位数,i5 5470变成了52fps。
2013年11月27日 00点11分 6
i5 5470是下代CPU的工程版吗?我见别人的I5都是4开头的呀
2013年11月27日 00点11分
你确定是5470?[汗]
2013年11月27日 00点11分
回复 free077go :估计是写错了。。英特尔I系列才出到第四代。。
2013年11月27日 09点11分
是写错了,4570
2013年11月27日 11点11分
level 12
现在L-SMASH成为官方x264 MP4 muxer备选之一,且configure的优先级比GPAC高,videolan编译版还是不鸟。
2013年11月27日 09点11分 7
上面的都没看懂。。。现在x264的官方发布主页在哪里啊
2013年11月27日 11点11分
回复 haierccc :megui下载的就是官方版,官方版没有把l-smash或gpac编译进去所以不支持mp4输出,也没有把ffms编译进去,建议使用非官方版的x264
2013年11月27日 11点11分
回复 free077go :原来是这样的啊,多谢!
2013年11月28日 02点11分
level 7
haierccc 楼主
应该是YU12转RGB32的过程中损失了颜色。
原因已经找了,我用MPC-HC做实验,用WIN7系统解码器MJPEG解码器的时候就正常,用MPC-HC的LAV解码器就不正常了。现在MPC已经全面转向LAV,包括分离器和解码器(MPC叫做源滤镜和转换滤镜)。
另外回复一下8楼,我发现在本版有种不好的风气,就是骂人,我记得有个叫CCTV9的人写了一个X264命令行入门贴,结果被一顿骂,说其“班门弄斧”,论坛本身就是一个开放的讨论组,各种水平的人都有,不要因为自己有2把刷子就瞧不起别人。
我的CPU是i5 4570,错写成了5470。对于这样高端的系统,用WIN7-64,如果再加上合适的优化,包括64位的压缩工具和滤镜,充分发挥64位的优势,速度超过未经优化的i7/E5的32位系统是可能的。
而且就算超不过又如何,进入64位的世界,重新学习知识,把64位的潜力发展到极限,这就是对技术的追求。高端机器却不加任何优化的使用32位软件当然也可以压制,但是未达到机器的最高效率,这恰恰是需要改正的缺点。
2013年11月28日 03点11分 10
你这明显是range错了 和yv12转rgb有毛线关系 而且yv12必须转rgb才能显示
2013年11月28日 04点11分
回复 Feisty2 :个人网址:YUV <-> RGB 的转换是有损的。第一行应该是YU12转RGB24
2013年11月28日 05点11分
2013年11月28日 05点11分
回复 haierccc :呵呵 你先搞清楚概念再说吧 yu12是什么 小白表示闻所未闻
2013年11月28日 06点11分
level 7
haierccc 楼主
据我所知,YV12是YUV 4:2:0的另一个称呼,x264领域的YUV实际上就是YCrCb,也就是数字色差分量。
2013年11月28日 09点11分 11
呵呵 谁告诉你的 ycgco死了? yuv420 8bit还有yv12和nv12 不懂?
2013年11月28日 10点11分
level 9
ffmpeg系的解码器解MJPEG会直接输出YV12或YV16,MS系的一般都输出RGB。但是JPEG通常用full range,所以压制的时候要转limited range。不过YUV->RGB->YUV会损失质量,所以还是用ffmpeg系的好。
2013年11月29日 01点11分 12
你终于来了。 我在学习x264命令行,可是有太多的未知了。上面的full range和linited range不知何意,这跟YUV->RGB->YUV又有何关呢?
2013年11月29日 04点11分
回复 haierccc :8bit的取值范围是0~255,full range就是0~255,limited range时,Y的范围16~235,C的范围16~240。YUV->RGB->YUV的过程中,先把full range的YUV转成RGB,再转成limited range的YUV。
2013年11月29日 04点11分
回复 haierccc :我现在不清楚x264里是否直接有滤镜可以做这个操作。avs里貌似是colormatrix。这个操作本身比YUV->RGB->YUV要简单多了,比如对于Y,只需Y*(235-16)/255+16即可
2013年11月29日 04点11分
回复 roo_zhou :正在研究
2013年11月29日 14点11分
level 7
haierccc 楼主
乖乖,我的好久远的帖子,也被人找到了
2014年10月28日 22点10分 13
1