版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
keroro123
帖子: 71
注册时间: 2011-01-11 23:58

请教,为什么压制的片会在最后两帧与先前画面出现重复?

很奇怪,片源已看过,最后两帧是没有重复的,压制的是红花坂上的海,H264 TS的,用的是DGAVCINDEX作的分离,一开始以为是压制的问题,重压了一遍,最后还是有重复两帧(本故事纯属虚构的那个画面)

后面觉得可能是DGAVCINDEX的问题,但挂DGA在AVS上看最后两帧也是黑的(即正常画面),所以就觉得奇怪,应该不会是参数问题吧?因为压别的都没这样重复的啊?

不知道所以想请问是什么造成这样的奇怪事情?
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

线性和跳的结果是有可能会不同。如果是录的片的话,比较大的可能是h.264流的问题或者是ts有损坏导致少了1-2帧
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
keroro123
帖子: 71
注册时间: 2011-01-11 23:58

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

但这个是BD来的,应该不会出现少两帧的情况吧?我比对了别的压制组的作品,同样帧数它们没在最后画面出现两帧重复,难道真的是DGAVCINDEX的问题?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

以前在TS上遇到过很多次,症状基本相同,使用的源滤镜是DGNV r2013,预览没问题压出来就RP了,avs内产生影响的操作都是线性的(为了去除trim的影响还出过几次无损半成品来测试),最后两帧出现的重复基本上都来自于之前1~2个GOP的起始帧,另外当时的显卡驱动本身不是很稳定,不知道能不能作为参考。

PS. DG系列比较早期的很多个版本对H.264流GOP的M/N判定都存在一些问题,尤其是影响IDR间距的N判定很少准确的,不知道是不是导致GOP定位问题的原因。

PS2.还有如果一个GOP跨了两个TS文件(在TS里是允许的,只要解码时这两个TS都导入DG的话,理论上应该先正确合并为一个GOP并准确解码,而不需要像Open-GOP那样每一帧都处于缺少关键帧而进行修复状态的解码)的情况DG系列也一直有问题,直到最近某个版本的DGNV才刚刚修复,DGDI和DGAVC这些不再更新的东西应该一直有这个bug。所以如果圆盘的m2ts本身是制作时由一个ts切开的话(一般这种情况mpls里是将多个m2ts合并为一个playlist来播放的),说不定也会触发DG系列这个bug,也就是因为最后一个GOP里最后两帧的参考帧是它们后面的m2ts里的帧(也就是将后面的B帧作为参考帧,我不太清楚BD标准是否允许这样,但是x264的bluray-compat里对b-pyramid的限制只是strict而不是none,所以猜测应该是允许出现这种情况的),而除非是最新版本的DGNV,否则即使同时导入了多个m2ts,最后几帧也因为GOP没正确合并而解码错误产生问题。如果再和前面的N判定错误一起出现的话说不定就会导致这种奇怪的定位现象。

PS3.反正全是猜测…

PS4.neuron2你快去写DGQS啊…
上次由 06_taro 在 2012-07-15 16:48,总共编辑 3 次。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
keroro123
帖子: 71
注册时间: 2011-01-11 23:58

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

06_taro 写了:以前在TS上遇到过很多次,症状基本相同,使用的源滤镜是DGNV r2013,预览没问题压出来就RP了,avs内产生影响的操作都是线性的(为了去除trim的影响还出过几次无损半成品来测试),最后两帧出现的重复基本上都来自于之前1~2个GOP的起始帧,另外当时的显卡驱动本身不是很稳定,不知道能不能作为参考。

PS. DG系列比较早期的很多个版本对H.264流GOP的M/N判定都存在一些问题,尤其是影响IDR间距的N判定很少准确的,不知道是不是导致GOP定位问题的原因。还有如果一个GOP跨了两个TS文件(在TS里是允许的,只要解码时这两个TS都导入DG的话,理论上应该先正确合并为一个GOP并准确解码,而不需要像Open-GOP那样每一帧都处于缺少关键帧而进行修复状态的解码)的情况DG系列也一直有问题,直到最近某个版本的DGNV才刚刚修复,DGDI和DGAVC这些不再更新的东西应该一直有这个bug。
请问大大,我是ATI显卡,没办法用DGINDEXNV,那要分析BD视频应该采取什么方式才行呢?DIRECTSHOWSOURCE实在不想使用这个方法,请问还有别的工具能分析TS然后丢给MEGUI处理吗,或者说其他的压制者是怎么处理BD的M2TS的?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

progressive的h.264的话,用ffms,demuxer限定lavf,seekmode限定0或者-1,这样出来的结果应该是精确的:
FFIndex("input.m2ts", demuxer="lavf")
FFVideoSource("input.m2ts", threads=1, seekmode=-1)
但是这样的话没法进行非线性seek,写脚本时需要注意。

如果一定要进行非线性seek的话,跨度不大时可以用FrameCache或者MP_Pipeline的prefetch,跨度大的话还是用libav/ffmpeg进行一次remux成mkv再用FFVideoSource("remux.mkv", threads=1)吧(这样也不需要lavf的demuxer)。ffms的官方文档里说用haali的dsmux也行,或者eac3to的(本质还是haali),不过我试出来haali的也容易RP,liti姐说libav/ffmpeg出来的没问题。

interlaced的h.264流貌似现阶段除了最新版DGNV+稳定的NV驱动之外几乎没有完全无RP的方法。我自己也是A卡,用的是DGDI,比较注意的话一般也问题不大…
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
keroro123
帖子: 71
注册时间: 2011-01-11 23:58

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

06_taro 写了:progressive的h.264的话,用ffms,demuxer限定lavf,seekmode限定0或者-1,这样出来的结果应该是精确的:
FFIndex("input.m2ts", demuxer="lavf")
FFVideoSource("input.m2ts", threads=1)
但是这样的话没法进行非线性seek,写脚本时需要注意。

如果一定要进行非线性seek的话,跨度不大时可以用FrameCache或者MP_Pipeline的prefetch,跨度大的话还是用libav/ffmpeg进行一次remux成mkv再用FFVideoSource("remux.mkv", threads=1)吧(这样也不需要lavf的demuxer)。ffms的官方文档里说用haali的mkv muxer也行,或者eac3to的(本质还是haali),不过我试出来haali的也容易RP,liti姐说libav/ffmpeg出来的没问题。

interlaced的h.264流貌似现阶段除了最新版DGNV+稳定的NV驱动之外几乎没有完全无RP的方法。我自己也是A卡,用的是DGDI,比较注意的话一般也问题不大…
大大说的太复杂了,请问线性和非线性是什么东西呢,是代表视频的i和p吗?SEEK和SEEKMODE是什么东西?还有THREADS=1是代表什么呢?1线程吗?

我是用MEGUI压制的,我知道FFMS是在TOOLS的FILE INDEXER里调用,但是大大后面说的那些LIBAV FFMPEG什么的到底是什么东西?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

这么说吧,拿到一个m2ts,先用
FFIndex("input.m2ts", demuxer="lavf")
FFVideoSource("input.m2ts", threads=1, seekmode=-1)
加载,如果需要上滤镜的话后面加上滤镜,然后拿去跑。如果没问题跑完了,就确实没问题了;如果跑到一半报错了,那通常就是非线性seek导致的(seekmode=-1时出现非线性seek会直接报错)

具体可以参见ffms的文档,MeGUI里的ffms文件夹下的doc里有。

libav和ffmpeg是工具,编码区有下载。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
keroro123
帖子: 71
注册时间: 2011-01-11 23:58

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

06_taro 写了:这么说吧,拿到一个m2ts,先用
FFIndex("input.m2ts", demuxer="lavf")
FFVideoSource("input.m2ts", threads=1, seekmode=-1)
加载,如果需要上滤镜的话后面加上滤镜,然后拿去跑。如果没问题跑完了,就确实没问题了;如果跑到一半报错了,那通常就是非线性seek导致的(seekmode=-1时出现非线性seek会直接报错)

具体可以参见ffms的文档,MeGUI里的ffms文件夹下的doc里有。

libav和ffmpeg是工具,编码区有下载。
请问大大libav和ffmpeg应该在哪个地方载入呢?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 请教,为什么压制的片会在最后两帧与先前画面出现重复?

如果你用上面的FFIndex+FFVideoSource,demuxer用lavf的话,就不需要libav/ffmpeg了。

否则的话,拿到一个m2ts,首先用
avconv/ffmpeg -i "input.m2ts" -c:v copy -an "remuxed.mkv"
来remux成mkv
如果是多个m2ts合并的话,可以用
avconv/ffmpeg -i concat:"input1.m2ts"^|"input2.m2ts" -c:v copy -an "remuxed.mkv"
(这里的'^'是Windows下的转义符号,如果是Linux的话应该用'\')
都是命令行工具,不是加在avs里的。

然後在avs里用FFVideoSource("remuxed.mkv", threads=1)来加载这个mkv
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。

回到 “AviSynth”