cczzhh 发表于 2017-11-15 15:20:37

pot+LAV+madvr 长时间播放后逐渐音画不同步??

不知道有没有人遇到过类似的问题?具体症状是,如果是看30分钟内的番剧,是发觉不了这点漂移的,但连续播放电影,比如2小时后,就能明显感觉到视频比音频慢了几帧,即使刚开始播放的时候是完美同步的。

这个问题其实早就发现过,当时归咎于MPC-BE每次暂停都会引入一点点的不同步(投影仪切换刷新率比较慢,所以每次打开都是要先暂停一下的),也没太在意,少暂停就是了。后来忍无可忍把MPC-BE换成了potplayer,这样测试过反复暂停也不会引入偏差了,但视频/音频同步漂移问题依旧。这时我就试图在LAV和madvr上寻找原因,但无论怎么想如此成熟的播放体系,应该不会有这问题呀。况且我都是用的最新版,LAV 0.70.2 release和 0.70.2-80 git nightly都试过了。

我先猜想是否可能是audio decoder的问题,lav audio decoder的auto a-v sync correction这个选项看着我也很慌。于是先试了下把音频解码器换成potplayer自带的。问题仍然会出现。。但不知是否是错觉,感觉同样播放2小时,这样子偏差略微小一些?作为参考,我用来测试的影片音轨为DTS,pot调用了ffdshow audio decoder来解码。同样,我之前播放VCB压制的视频的时候也有过这感受,放到后半各种短促的声音和画面对不上(印象中有乐园追放和希骑剧场版),所以应该不是视频文件的问题。

另外为了确认不是硬件的问题,我用mpv播放器试过。。2小时后依然完美同步,真是好气。

硬件:intel i7-4790K, DDR3 1866 2x8G,GTX 970,视频由HDMI输出到投影仪,音频由USB输出到外置USB解码器再输出到音箱。

截一些配置的图吧,

说明下,resample到96khz是最近才启用的,之前都是原样输出,mpc-be的wasapi和potplayer的wasapi都试了。应该不是这个的问题。
图中视频截图图省事就直接在8bit显示器上截了。实际测试的时候在10bit投影仪上,帧率切换到23.976的(madVR报帧丢失/重复率只有每3小时一次),全屏独占和窗口化播放都试过,都一样的表现。

写得有点长。。如果可以的话想到什么就回复点啥吧,可能会有线索{:4_687:}。先谢过各位了。

laichiaheng 发表于 2017-11-16 00:24:53

虽然我无法解决您 potplayer 的问题,但您不觉得这是个换到 mpv 的好时机吗?光是能够正常运作就赢了

cylx 发表于 2017-11-16 00:38:36

本帖最后由 cylx 于 2017-11-16 00:44 编辑

排除法吧,先试下不连外部设备时MPC-HC和MPC-BE的全默认设置。

cczzhh 发表于 2017-11-16 01:00:20

laichiaheng 发表于 2017-11-16 00:24
虽然我无法解决您 potplayer 的问题,但您不觉得这是个换到 mpv 的好时机吗?光是能够正常运作就赢了 ...

确实用过一阵mpv(当时玩SVP的时候),但目前还是有两项因素阻碍我从madvr体系迁移到mpv...
1是有点舍不得madvr的NGU,mpv的话用user shaders chroma也只有nnedi3,luma只有自带的Jinc,再加user shaders AR...
2是色彩管理。之前买了校色仪,生成了一些icc profile和3dlut,displaycal的profile loader能自动识别出madvr在运行然后禁用掉自己,但mpv不被识别,所以开关校色比较麻烦。(而且在一个帖子里看到似乎mpv的gamma有点不对?)

cczzhh 发表于 2017-11-16 01:04:31

cylx 发表于 2017-11-16 00:38
排除法吧,先试下不连外部设备时MPC-HC和MPC-BE的全默认设置。

有道理,今晚回去试试。

题外话,虽然之前一直在用BE,但我现在觉得MPC-HC/BE似乎有点问题,这问题不知道是不是也是我这边的特例。。
HC内嵌音频渲染器破音,然后BE每次暂停都会引入音画不同步(对着一段视频狂按空格,过一会就能发现视频比音频慢好多)

boday 发表于 2017-11-16 02:03:48

cczzhh 发表于 2017-11-16 01:00
确实用过一阵mpv(当时玩SVP的时候),但目前还是有两项因素阻碍我从madvr体系迁移到mpv...
1是有点舍不 ...

mpv 的 3dlut 是每次启动时读取 icc 在线生成的(除非你配置指定了 --icc-cache-dir,不过自从挺长时间以前某次改进之后 3dlut 体积大大缩小,每次重新生成也不会比从硬盘读取更慢,所以一般没什么必要)。

和 madvr 不同的是,理论上说 mpv 并不需要 loader 停止工作,因为 mpv 不会改变当前的 vcgt。displaycal 给 madvr 生成 3dlut 的默认设置则是包含了 vcgt 进去,所以 madvr 需要先把 vcgt 重置为 linear。参考:https://bbs.saraba1st.com/2b/thread-1157782-1-1.html madvr 和 q&a 部分,以及 https://hub.displaycal.net/issue/9216/

但是,displaycal 的 loader 在某些机器上可能会干扰 mpv 的 display-sync 模式,造成每次重载校正曲线时卡顿画面。参考:https://hub.displaycal.net/issue/6341/

所以,你可以在 displaycal 的 loader 设置里添加一个 mpv.exe 例外,loader 检测到例外进程会自动暂停,就达到和 madvr 一样的效果了。如果嫌每次启动 mpv 时弹出一个通知说 loader 已暂停很烦的话,下个版本的 displaycal 会增加选项关掉那个提示。参考:https://hub.displaycal.net/issue/9214/

cczzhh 发表于 2017-11-16 08:00:15

boday 发表于 2017-11-16 02:03
mpv 的 3dlut 是每次启动时读取 icc 在线生成的(除非你配置指定了 --icc-cache-dir,不过自从挺长时间以 ...

感谢!这方面了解还太少,多谢提供资料。
我目前给mpv加载的icc文件是displaycal在madvr专用模式下生成3dlut时顺带留下的icc文件,不知这点有没有问题,还是应该就在video选项下校准?

{:7_589:}所以原问题的解答是。。。。换用mpv+1?

boday 发表于 2017-11-16 10:29:57

cczzhh 发表于 2017-11-16 08:00
感谢!这方面了解还太少,多谢提供资料。
我目前给mpv加载的icc文件是displaycal在madvr专用模式下生成3d ...
>我目前给mpv加载的icc文件是displaycal在madvr专用模式下生成3dlut时顺带留下的icc文件,不知这点有没有问题,还是应该就在video选项下校准?

如果你 profile loader 加载的也是同一个 icc 文件就没有问题。归根到底就是说,你 mpv 用来做色域转换的 profile 应该和你已加载的校正曲线(vcgt)是配套的。详细解释请看上面我写的那帖里的某些楼层。
不过,即使 mpv 颜色输出没有问题,displaycal 给 madvr 的预设校正白点是 as measured,即显示器原生,不是标准的 d65,profile 形式是 xyz lut + swapped matrix,不支持 lut profile 的应用就没法用了。同时满足最大兼容性和日常使用的话,按上面链接里我写的那帖里来做。

>所以原问题的解答是。。。。换用mpv+1?

没这个意思,只是想指出你第二条原因其实是可以解决的。

領銜の配角 发表于 2017-11-16 11:03:36

cczzhh 发表于 2017-11-16 01:04
有道理,今晚回去试试。

题外话,虽然之前一直在用BE,但我现在觉得MPC-HC/BE似乎有点问题,这问题不知 ...

我靠 你不说我还没发现,mpc-be一直按暂停真的会音画不同步,用的是MPC-BE 1.5.1搭配lav软解,evr(cp)渲染。

airinsky 发表于 2017-11-16 12:15:19

我现在遇到的比较恼人的情况是madvr跟win10 1709貌似不兼容,运行后报错,提示os exception……有点想弃potplayer+lav+madvr这一套了
页: [1] 2
查看完整版本: pot+LAV+madvr 长时间播放后逐渐音画不同步??