我在转换HBO录制的节目时遇到了问题,大多数Plex客户端都拒绝播放这些内容。我翻遍了日志也没找到什么线索,也许只是我没看出来。通常我会直接选择“MP4未处理”,但想着转换一下可能有用,就改成了“MP4高质量”,希望转码能把问题解决。
我注意到“未处理”版本有个奇怪的地方:MediaInfo显示平均帧率是28.893fps(还行),但最小/最大帧率却是9.99/90,000?平均码率8.324kbps,但峰值码率却飙到80.0Mbps?难怪Plex会崩溃。而“MP4高质量”版本的参数很正常(固定29.97fps,平均9,652kbps,峰值16,000Mbps),可播放时依旧不给力。
MP4-High_Last Week Tonight With John Oliver_HBOHD_2024_05_12_22_55_00.wtv-No-Commercial Convert-2024-05-13T16-45-31.zip (449.4 KB)
MP4-Unprocessed_Last Week Tonight With John Oliver_HBOHD_2024_05_12_22_55_00.wtv-No-Commercial Convert-2024-05-13T01-16-33.zip (54.5 KB)
Goose
(Goose)
2
我在來源影片中看到大量錯誤,這可能就是即使轉檔後 Plex 仍可能無法正常處理該檔案的原因。我猜播放時會出現卡頓與跳格。
2024-05-13T16:46:26 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] end mismatch left=25 35 at 0 68
2024-05-13T16:46:26 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] Warning MVs not available
2024-05-13T16:46:26 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] concealing 120 DC, 120 AC, 120 MV errors in B frame
2024-05-13T16:46:26 MCEBuddy.AppWrapper.FFmpegMediaInfo → [vist#0:2/mpeg2video @ 0000026c3801ca00] corrupt decoded frame
2024-05-13T16:46:26 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] end mismatch left=23 7C at 0 68
…
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] concealing 120 DC, 120 AC, 120 MV errors in P frame
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] end mismatch left=28 4 at 0 68
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] Warning MVs not available
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg2video @ 0000026c384d02c0] concealing 120 DC, 120 AC, 120 MV errors in I frame
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → [vist#0:2/mpeg2video @ 0000026c3801ca00] corrupt decoded frame
2024-05-13T16:46:27 MCEBuddy.AppWrapper.FFmpegMediaInfo → Last message repeated 1 times
這通常是由於 OTA 訊號不良或錄影卡驅動程式問題所導致。
我注意到你正在使用 WTV,如果來源 WTV 在 WMC 裡播放正常,你可以試試這個選項:在你使用的 profile(profiles.conf 檔案)中加入以下設定,看看是否有幫助。這會使用原生 WTV DirectShow 濾鏡來解碼檔案,若有可能修復錯誤:
ForceWTVStreamsRemuxing=true
如果這沒有幫助,你也可以在 profile 中嘗試另一個選項來解碼 WTV 檔案:
UseWTVRemuxsupp=true
Plex 的播放效果……不太好。最好的情况也是严重卡顿(播放约 0.5 秒,暂停 2 秒,然后循环)。奇怪的是,在我的 iPhone 上播放却没问题——但这可能是 Apple 客户端特有的某种处理方式。我确认过在录制的 HTPC 上播放是正常的,这算是个好消息。
我觉得信号应该不是问题,调谐器(HDHR Prime)上没有任何报错,其他频道也正常。不过,这也不是第一次我的有线电视运营商把 HBO 流搞砸了——几年前用 Media Center Extender 播放时,就因为帧率问题崩溃过。我怀疑这不是恶意行为,纯粹是他们业务能力太差。也不太可能是我这边的问题——所有内容都录在一台 Win8.1 HTPC 上,它显然已经不再接收更新了。
总之,我在“不转码”配置文件里加了 ForceWTVStreamsRemuxing=true,起初播放似乎没问题,但很快就又崩了。UseWTVRemuxsupp=true 也一样。
我试着在 MP4 High 配置里启用 ForceWTVStreamsRemuxing=true,看起来还行!我得检查一下智能电视的表现,但似乎问题解决了。
等转码的时候,我顺手搜了搜,想起了这个老帖子:
既然 HTPC 已经开着(也确认过原片没问题),我就顺手开了调试,果然帧率在两个值之间疯狂跳动(速度太快我看不清)。所以肯定是“母舰”送来的信号有问题。直接在 HTPC 上看没问题(虽然不太方便),或者串流也行。我只是好奇,这么多年都好好的,怎么突然就这样了。
日志附上,有兴趣可以看看……明显是“垃圾进垃圾出”。我猜受影响的用户没几个,但谁知道呢。
Force-Passthrough_Last Week Tonight With John Oliver_HBOHD_2024_05_12_22_55_00.wtv-HBO-No Convert-2024-05-14T23-05-58.zip (46.9 KB)
Force-MP4-High_Last Week Tonight With John Oliver_HBOHD_2024_05_12_22_55_00.wtv-HBO-No Convert-2024-05-14T23-28-15.zip (439.7 KB)
Use-Passthrough_Last Week Tonight With John Oliver_HBOHD_2024_05_12_22_55_00.wtv-HBO-No Convert-2024-05-14T23-20-47.zip (45.4 KB)
Goose
(Goose)
4
查看你的日志,看起来你正在使用Nvidia硬件编码。我怀疑该显卡无法处理帧率/时间戳问题。尝试关闭硬件加速,看看是否有助于解决问题。
Goose
(Goose)
6
GPU 編碼器通常對影片中的錯誤非常敏感,且不擅長補償這些錯誤。它們基本上只被設計來做一件事,而且做得很快。軟體編碼器(CPU)則靈活且寬容得多,但代價是速度。