分页: 1 / 3

Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-13 22:54
litfal
Fraps lossless的影片用madVR的Pin info看,是RGB24的color space。
我想這就是為什麼直接用x264轉換,總是會有一些顏色很明顯的變得不一樣,因為會經過8bit YUV轉換?

利用google爬文,不小心找到了這個寶庫,興致忡忡的利用了RGB与YCbCr相互转换的测试的AVS腳本做了測試。
使用的AVS CODE如下

代码: 全选

avisource("M:\Test\Wow 2012-05-04 23-55-12-86.avi")
#以下為轉換用
Dither_convert_rgb_to_yuv(matrix="709",tv_range=true,lsb=true,mode=-1,ampn=0,output="YV24")
Dither_lut16("x 64 / 6 <<",Y=3,U=3,V=3)
Dither_convert_yuv_to_rgb(matrix="709",tv_range=true,lsb_in=true,mode=-1,ampn=0,output="rgb32")
#以下為截圖比較用
trim(10,10) 
ImageWriter("N:\MovTest\",0,0,"bmp") 
#ConvertToYV12(matrix="PC.709")
(tv_range去掉結果相同,目前還沒到x264的部分)

但發現還是會有一樣的顏色損失,鮮紅會變成暗紅,亮黃會變成鵝黃,如圖:
原始:
图片
轉換後:
图片

我是有什麼地方搞錯了呢? 還是有其他方法?

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-13 23:57
mawen1250
最近我就在做游戏视频,用Fraps录制8bit RGB无损,用dither工具转换为16bit 444 PC Range YUV,然后降为10bit输出给x264用10bit 444编码。

2013.05.13 edit:
对于RGB源我更推荐转换为10bit 444 YCgCo,这个转换过程是不产生小数点后的数据所以是完全无损的。
► 显示剧情透露 转换为PC Range 10bit 444 YCgCo
► 显示剧情透露 转换为PC Range 10bit 444 BT709
这里需要用到的AVS脚本和插件:
dither工具:http://forum.doom9.org/showthread.php?p ... ost1386559
O16mod:http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&t=1017
f3kdb:http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&t=239
SmoothAdjust:http://forum.doom9.org/showthread.php?t=154971
► 显示剧情透露 2013.05.13更新,为了避免误导人所以把原先的回复编辑掉

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 1:09
06_taro
需要dither 1.17.0或以上版本,需要AviSynth 2.6

[syntax lang="avisynth" lines="f"]__ANY_SOURCE_FILTER_FOR_RGB_INPUT__
Dither_Convert_RGB_TO_YUV(lsb=true, matrix="YCgCo", output="YV24", tv_range=false)
Down10(dither=-1, stack=false)[/syntax]
理論上完全無損,同時保持YUV colorspace的高壓縮效率
然後x264部分:

[syntax lang="winbatch" lines="f"]x264_10bit.exe [any other options] --output-csp "i444" --input-range "pc" --range "pc" --input-depth 10 --colormatrix "YCgCo" --output "output.mkv" "input.avs"[/syntax]

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 9:29
btcdtc
游戏视频主要还是靠在线网站传播的吧...你们弄成10bit和444让楼主传哪里是好==

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 9:30
mawen1250
咦,1.17.0昨天发布的么?今天试试看YCgCo。不过x264里chroma-qp-offset该怎么设?YCgCo下每个平面的重要性如何确定?

回LS,按照LZ的要求,420肯定是不行的了。至于在线,更主要的问题是怎么防止被二压……

今天照LZ那个脚本用AvsPmod预览并ImageWriter,得出的处理前后的图片并没有任何区别,不知道LZ是用什么方式读取AVS变成这样。

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 9:49
xiao7
防止二压可以用sin@ 的BUG,问题是FLASH 的解码能良好地支持10bit么(LZ貌似没要求在线看啊

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 14:51
litfal
謝謝各位的回覆:
目前我的部分僅於AVS測試,也就是把avs檔案直接餵給mpc-hc,播放預覽結果先。
我在樓頂用的腳本也是為了輸出bmp比較用的(拿mawen1250的用法現學現賣)
輸出的結果就如同我貼的圖片一樣,看mpc裡面的篩選器,看起來是Avisynth vedio出給madVR。

至於上傳的需求是有的,不過上傳前應該會再壓過一次。反正傳上去10bit是個問題,還會被再壓過...
這個主題問的需求是用較高的碼率和較好的顏色保存用,fraps lossless檔案的大小實在是...
一個晚上就把300GB的錄影區佔滿了= = 1080P@30fps,48秒就要4GB啦

昨天測試了二樓mawen1250提供的腳本:
如果直接把avs拉給mpc撥放,會被解析成Video: YV12 3840x1080 30fps,然後顏色畫面都變得很奇怪
用x264_32_tMod-10bit-all去壓的話,看起來會記憶體不足(x86限制吧)。 (malloc of size 4571392 failed)
改用x264_64_tMod-10bit-all,則是load avs就失敗了(failed to load avisynth,要用x64版的avsynth?)
若是用avs4x264mod傳過去,可以壓,但壓出來的結果不正確。(avs4x264mod.exe --x264-binary "x264_64_tMod-10bit-all")

三樓06_taro提供的方法還沒測試,等等來試試看。

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 15:14
btcdtc
到时候还要再压就直接出成8bit就好了
一句转换到fullrange的YV12就够了
我不记得我当年压8bit 3024*540的战地3空战有遇到RGB转YV12有严重的(可视的)颜色损失


吐槽mode on!
3840x1080这种级别的视频不是只能传youtube吗!
3840x11080的分辨率真的可以玩游戏吗!画面正中间是黑缝的说!=-=玩超宽屏至少也要3个屏幕吧

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 15:19
06_taro
叫你輸入10bit還不加--input-depth 10…

Re: Fraps無損要使用什麼AVS腳本 壓成x264 10bit才不會有顏色上的損失

发表于 : 2012-05-14 15:24
btcdtc
顺便强烈抗议mawen的x264参数太长太累赘了纯属吓唬小白,直接preset veryslow就不用写那么多了...