头像
Ryouma
帖子: 7
注册时间: 2016-04-24 21:12

X265.exe程序崩溃及其解决方案相关

2016-04-30 13:46

平时一直在用自己的机子压制,用avs4x265+X265(10bit 64位)压制HEVC视频,虽说较慢但也没出过什么问题
最近出于速度要求,开始借用朋友的工作站(双路E5 2620 V3,64位WIN10)。一开始也没问题,后来却突然出现了压制X265程序出错崩溃的情况(没有任何错误信息代码,只告诉你程序出错了)。出错以后,之前生成的文件用MKVToolNix封装后可以正常播放,但是最后一小段会无法拖动进度条。
重新压制后,原本出错的进度又可以正常压制直到结束,所以可以排除片源问题;更换了多种最新的built版本也会出现同样的问题,程序问题同样可以排除。因为用的是64位系统所以崩内存似乎也不太可能?(内存32G)

于是我在假定X265必定崩溃的基础上拟定了两个补救方案:
一、利用MKVToolNix的分割功能,将生成的文件去掉最后一小段(无法拖动进度条的部分),记录下帧数后利用AVS的截取参数从被分割的地方重新开始压制。最后再利用MKVToolNix合并起来。
二、在压缩之前就主动将源文件分割成多个AVS,最后再主动合并。一旦有哪个AVS出错了,重新压制即可。
总之两个方案都是利用到了MKVToolNix的合并功能。

我想请教的是:
1.不知道什么情况会导致这种程序崩溃的发生?
2.如果无法解决程序崩溃问题,这种补救方案除了损失一点压缩率以外,是否有什么特别致命的缺陷?


头像
Ryouma
帖子: 7
注册时间: 2016-04-24 21:12

Re: X265.exe程序崩溃及其解决方案相关

2016-05-03 19:26

mawen1250 写了:利用mkvmerge切割合并功能是这种断点续命哦不续压常用的方法之一。
至于崩溃的问题,你这给的条件太少了完全没法判断是哪里出的问题,avs?(源滤镜or某个滤镜?)x265?还是别的?
机器配置是双路E5 2630 V3 + 32G内存

崩溃的是X265
图片

X265参数:
avs4x265 --x265-binary "x265_10bit.exe" --input-depth 10 --preset slow --crf 20 --tu-intra-depth 3 --tu-inter-depth 3 --rdpenalty 2 --me 3 --subme 5 --merange 25 --b-intra --no-rect --no-amp --ref 5 --weightb --keyint 720 --min-keyint 1 --bframes 10 --aq-mode 1 --aq-strength 1.1 --rd 5 --psy-rd 0.8 --psy-rdoq 5.0 --rdoq-level 1 --no-sao --rc-lookahead 80 --scenecut 40 --max-merge 4 --qcomp 0.66 --no-strong-intra-smoothing --pmode "test.mkv" "test.avs"

AVS参数:
LWLibavVideoSource("test.mkv",stacked=false,format="YUV420P8")
mctd(settings="high")
f3kdb(Y=32,Cb=32,Cr=32,grainY=32,grainC=32,keep_tv_range=true,mt=true,dither_algo=3,input_depth=8,input_mode=0,output_depth=10,output_mode=2)


之前其实一开始是只用mctd的,压了一些都没见崩溃;后来加上了f3kdb就变得会崩溃了。
原本怀疑是不是爆了内存,在这两天尝试使用了这些方法:
1.换用不同版本的X265,无果
1.使用64位版的AVIsynth+,一样会崩溃
2.使用taro大神的MP_pipeline脚本让滤镜多线程运行。这个我不知道会不会崩溃,但是不管怎么设置,压制速度都会降低到正常的一半以下(X265本身和整体的CPU占用率都低得不像话)

不置可否指点一二?

fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: X265.exe程序崩溃及其解决方案相关

2016-05-03 21:56

Ryouma 写了:
mawen1250 写了:利用mkvmerge切割合并功能是这种断点续命哦不续压常用的方法之一。
至于崩溃的问题,你这给的条件太少了完全没法判断是哪里出的问题,avs?(源滤镜or某个滤镜?)x265?还是别的?
机器配置是双路E5 2630 V3 + 32G内存

崩溃的是X265
图片

X265参数:
avs4x265 --x265-binary "x265_10bit.exe" --input-depth 10 --preset slow --crf 20 --tu-intra-depth 3 --tu-inter-depth 3 --rdpenalty 2 --me 3 --subme 5 --merange 25 --b-intra --no-rect --no-amp --ref 5 --weightb --keyint 720 --min-keyint 1 --bframes 10 --aq-mode 1 --aq-strength 1.1 --rd 5 --psy-rd 0.8 --psy-rdoq 5.0 --rdoq-level 1 --no-sao --rc-lookahead 80 --scenecut 40 --max-merge 4 --qcomp 0.66 --no-strong-intra-smoothing --pmode "test.mkv" "test.avs"

AVS参数:
LWLibavVideoSource("test.mkv",stacked=false,format="YUV420P8")
mctd(settings="high")
f3kdb(Y=32,Cb=32,Cr=32,grainY=32,grainC=32,keep_tv_range=true,mt=true,dither_algo=3,input_depth=8,input_mode=0,output_depth=10,output_mode=2)


之前其实一开始是只用mctd的,压了一些都没见崩溃;后来加上了f3kdb就变得会崩溃了。
原本怀疑是不是爆了内存,在这两天尝试使用了这些方法:
1.换用不同版本的X265,无果
1.使用64位版的AVIsynth+,一样会崩溃
2.使用taro大神的MP_pipeline脚本让滤镜多线程运行。这个我不知道会不会崩溃,但是不管怎么设置,压制速度都会降低到正常的一半以下(X265本身和整体的CPU占用率都低得不像话)

不置可否指点一二?
MP_pipeline中
对mctd(settings="high")使用setMemoryMax(8192)等
以及AVIsynth+建议用r1825安装后+pinterf mod覆盖更新到r1849
https://github.com/pinterf/AviSynthPlus/releases

头像
Ryouma
帖子: 7
注册时间: 2016-04-24 21:12

Re: X265.exe程序崩溃及其解决方案相关

2016-05-04 23:01

fch1993 写了: MP_pipeline中
对mctd(settings="high")使用setMemoryMax(8192)等
以及AVIsynth+建议用r1825安装后+pinterf mod覆盖更新到r1849
https://github.com/pinterf/AviSynthPlus/releases
感谢,回头试试

ATWoOA
帖子: 21
注册时间: 2016-08-02 19:55

Re: X265.exe程序崩溃及其解决方案相关

2016-11-13 22:55

请问一下楼主你后来解决问题了吗?我这里x265也会随机性地出现这样的错误。。
我感觉和负载有关,单开cpu不能满载,双开满载就很有可能崩溃唉。

litfal
帖子: 32
注册时间: 2012-05-13 17:17

Re: X265.exe程序崩溃及其解决方案相关

2018-01-14 15:03

請教一下如果x265輸出是MP4檔案,有辦法像MKV一樣救前面已經壓好的部分嗎?

回到 “视频编码器 / Video encoder discussion”