Skip to content

[BUG] 部分视频获取流失败,仅输出音频轨(未登录,Win11 25H2) #185

Description

@sadgea

问题描述

部分 B 站视频在播放时只有声音,没有画面。按 Tab 键查看输入信息,完全没有任何视频条目,只有音频。

可以正常播放的视频示例:BV1aMEj62EdA
无法播放的视频示例:BV1f34y1r7y8

环境信息

  • 插件版本:最新
  • PotPlayer 版本:260630
  • 操作系统:Windows 11 25H2
  • B 站账号状态:未登录

复现步骤

  1. 打开 BV1aMEj62EdA,画面声音正常,Tab 信息显示有视频轨。
  2. 打开 BV1f34y1r7y8,插件界面依次闪过 480P HEVC → 480P AVC → ... → 360P流畅AV1,最后只剩 AAC 纯音频流,无画面,Tab 信息中无视频条目。

关键对比分析(AI分析)

两份完整日志见下方折叠块。

1. 最终获取到的流地址

  • 正常视频(BV1aMEj62EdA)
    url: https://xy58x49x253x148xy.mcdn.bilivideo.cn:8082/v1/resource/.../38979504395-1-100022.m4s
    同时 PotPlayer 实际能播放画面,说明该 url 被正确识别为视频轨并传递给了播放器。

  • 异常视频(BV1f34y1r7y8)
    url: https://cn-hnzz-cm-01-02.bilivideo.com/upgcxcode/.../517058166-1-100022.m4s
    日志中同样只输出了一条 url,格式与正常视频类似(-1-100022.m4s 通常为 DASH 视频轨),但插件最终没有将任何视频流交给 PotPlayer(Tab 信息无视频条目)。

推测:异常视频的这条视频轨地址可能因为 CDN、签名或返回的数据结构差异,在插件内部被判定为无效或被过滤,导致播放列表里只有音频轨。

2. CDN 与参数差异

项目 正常视频 (BV1aMEj62EdA) 异常视频 (BV1f34y1r7y8)
CDN 域名 mcdn.bilivideo.cn cn-hnzz-cm-01-02.bilivideo.com
og 参数 og=ali og=hw
mcdnid 50056342 无此参数
其他参数 traceid, sign 等 无 traceid

异常视频分配到了不同的 CDN 节点,且返回的链接缺少部分参数,这可能导致插件在解析时认为该视频流不可用。

3. 插件行为

两份日志都只输出了一个 url,没有同时输出独立的音频轨地址,且正常视频的日志也未输出音频轨。这表明插件的日志打印逻辑可能只输出了第一个匹配到的流,而实际传递给 PotPlayer 的流列表是内部生成的。异常视频的情况极有可能是插件在生成播放列表时,决定丢弃了这条视频流,只保留了音频流。

完整日志对比(请点击展开)

异常视频 BV1f34y1r7y8 日志 --------PotPlayer's AngelScript console-------- MediaPlayParse - YouTube.as (400, 1) : INFO : Compiling void AppendQualityList(dictionary[]&inout, QualityListItem&inout, string) MediaPlayParse - YouTube.as (469, 21) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (783, 1) : INFO : Compiling string SignatureDecode(string, string, string, string, string, youtubeFuncType[]&inout, int[]&inout) MediaPlayParse - YouTube.as (854, 15) : WARN : Variable 'funcName' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (868, 24) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1159, 1) : INFO : Compiling string PlayitemParse(const string&in, dictionary&inout, dictionary[]&inout) MediaPlayParse - YouTube.as (1203, 12) : WARN : Variable 'JSData' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1589, 21) : WARN : Variable 'i' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1589, 28) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1662, 22) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1864, 18) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1865, 17) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1941, 31) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1957, 44) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (1958, 48) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (1983, 17) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1984, 16) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2127, 17) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2128, 16) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2203, 1) : INFO : Compiling dictionary[] PlayerYouTubePlaylistByAPI(string) MediaPlayParse - YouTube.as (2258, 23) : WARN : Variable 'item' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2280, 24) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2290, 25) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2318, 35) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2341, 1) : INFO : Compiling bool IsArrayExist(dictionary[]&inout, string) MediaPlayParse - YouTube.as (2343, 20) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2545, 1) : INFO : Compiling dictionary[] PlaylistParse(const string&in) MediaPlayParse - YouTube.as (2592, 22) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2680, 15) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2707, 22) : WARN : Variable 'url' hides another variable of same name in outer scope Playlist path: https://www.bilibili.com/video/BV1f34y1r7y8 request: https://api.bilibili.com/x/web-interface/view?bvid=BV1f34y1r7y8 SubtitleSearch - OpenSubtitle.as (54, 1) : INFO : Compiling dictionary[] OldSubtitleSearch(string, dictionary) SubtitleSearch - OpenSubtitle.as (98, 23) : WARN : Variable 'len' hides another variable of same name in outer scope SubtitleSearch - podnapisi.as (202, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - podnapisi.as (260, 14) : WARN : Variable 'title' hides another variable of same name in outer scope SubtitleSearch - podnapisi.as (269, 15) : WARN : Variable 'year' hides another variable of same name in outer scope request: https://api.bilibili.com/x/web-interface/archive/related?bvid=BV1f34y1r7y8 SubtitleSearch - SubDL.as (169, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - SubDL.as (190, 16) : WARN : Variable 'url' hides another variable of same name in outer scope SubtitleSearch - titlovi.as (112, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - titlovi.as (148, 13) : WARN : Variable 'title' hides another variable of same name in outer scope SubtitleSearch - titlovi.as (176, 14) : WARN : Variable 'year' hides another variable of same name in outer scope SubtitleSearch - ysubs.as (110, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - ysubs.as (163, 28) : WARN : Variable 'len' hides another variable of same name in outer scope SubtitleTranslate - bing.as (193, 1) : INFO : Compiling string Translate(string, string&in, string&in) SubtitleTranslate - bing.as (229, 17) : WARN : Variable 'i' hides another variable of same name in outer scope SubtitleTranslate - bing.as (229, 24) : WARN : Variable 'len' hides another variable of same name in outer scope SubtitleTranslate - google.as (21, 1) : INFO : Compiling string JsonParseOld(string) SubtitleTranslate - google.as (35, 21) : WARN : Variable 'len' hides another variable of same name in outer scope Playitem path: https://www.bilibili.com/video/BV1f34y1r7y8?p=1 -------------------------------------------------- request: https://api.bilibili.com/x/web-interface/view?bvid=BV1f34y1r7y8 request: https://api.bilibili.com/x/player/wbi/v2?bvid=BV1f34y1r7y8&cid=517058166 request: https://api.bilibili.com/x/player/playurl?avid=809315572&cid=517058166&qn=127&fnval=4048&fourk=1 title: Jesus Phone Call ringtone - DJ remix (2) aid: 809315572 bvid: BV1f34y1r7y8 cid: 517058166 url: https://cn-hnzz-cm-01-02.bilivideo.com/upgcxcode/66/81/517058166/517058166-1-100022.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&og=hw&deadline=1783195341&nbs=1&uipk=5&trid=0000417a78a9db5146238bcf60548a88484u&oi=3746193455&gen=playurlv3&os=bcache&mid=0&platform=pc&upsig=53161ca5dac61ec1d216f1e56b5f0347&uparams=e,og,deadline,nbs,uipk,trid,oi,gen,os,mid,platform&cdnid=5366&bvc=vod&nettype=0&bw=86011&lrs=17&f=u_0_0&qn_dyeid=ad2c98ec0d2b2a1200a019856a494aad&agrr=1&buvid=&build=0&dl=0&orderid=0,3
正常视频 BV1aMEj62EdA 日志 --------PotPlayer's AngelScript console-------- MediaPlayParse - YouTube.as (400, 1) : INFO : Compiling void AppendQualityList(dictionary[]&inout, QualityListItem&inout, string) MediaPlayParse - YouTube.as (469, 21) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (783, 1) : INFO : Compiling string SignatureDecode(string, string, string, string, string, youtubeFuncType[]&inout, int[]&inout) MediaPlayParse - YouTube.as (854, 15) : WARN : Variable 'funcName' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (868, 24) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1159, 1) : INFO : Compiling string PlayitemParse(const string&in, dictionary&inout, dictionary[]&inout) MediaPlayParse - YouTube.as (1203, 12) : WARN : Variable 'JSData' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1589, 21) : WARN : Variable 'i' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1589, 28) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1662, 22) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1864, 18) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1865, 17) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1941, 31) : WARN : Variable 'len' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1957, 44) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (1958, 48) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (1983, 17) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (1984, 16) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2127, 17) : WARN : Variable 'reader' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2128, 16) : WARN : Variable 'root' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2203, 1) : INFO : Compiling dictionary[] PlayerYouTubePlaylistByAPI(string) MediaPlayParse - YouTube.as (2258, 23) : WARN : Variable 'item' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2280, 24) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2290, 25) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2318, 35) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2341, 1) : INFO : Compiling bool IsArrayExist(dictionary[]&inout, string) MediaPlayParse - YouTube.as (2343, 20) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2545, 1) : INFO : Compiling dictionary[] PlaylistParse(const string&in) MediaPlayParse - YouTube.as (2592, 22) : WARN : Signed/Unsigned mismatch MediaPlayParse - YouTube.as (2680, 15) : WARN : Variable 'url' hides another variable of same name in outer scope MediaPlayParse - YouTube.as (2707, 22) : WARN : Variable 'url' hides another variable of same name in outer scope Playlist path: https://www.bilibili.com/video/BV1f34y1r7y8 request: https://api.bilibili.com/x/web-interface/view?bvid=BV1f34y1r7y8 SubtitleSearch - OpenSubtitle.as (54, 1) : INFO : Compiling dictionary[] OldSubtitleSearch(string, dictionary) SubtitleSearch - OpenSubtitle.as (98, 23) : WARN : Variable 'len' hides another variable of same name in outer scope SubtitleSearch - podnapisi.as (202, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - podnapisi.as (260, 14) : WARN : Variable 'title' hides another variable of same name in outer scope SubtitleSearch - podnapisi.as (269, 15) : WARN : Variable 'year' hides another variable of same name in outer scope SubtitleSearch - SubDL.as (169, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - SubDL.as (190, 16) : WARN : Variable 'url' hides another variable of same name in outer scope SubtitleSearch - titlovi.as (112, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - titlovi.as (148, 13) : WARN : Variable 'title' hides another variable of same name in outer scope SubtitleSearch - titlovi.as (176, 14) : WARN : Variable 'year' hides another variable of same name in outer scope SubtitleSearch - ysubs.as (110, 1) : INFO : Compiling dictionary[] SubtitleSearch(string, dictionary) SubtitleSearch - ysubs.as (163, 28) : WARN : Variable 'len' hides another variable of same name in outer scope SubtitleTranslate - bing.as (193, 1) : INFO : Compiling string Translate(string, string&in, string&in) SubtitleTranslate - bing.as (229, 17) : WARN : Variable 'i' hides another variable of same name in outer scope SubtitleTranslate - bing.as (229, 24) : WARN : Variable 'len' hides another variable of same name in outer scope request: https://api.bilibili.com/x/web-interface/archive/related?bvid=BV1f34y1r7y8 SubtitleTranslate - google.as (21, 1) : INFO : Compiling string JsonParseOld(string) SubtitleTranslate - google.as (35, 21) : WARN : Variable 'len' hides another variable of same name in outer scope Playlist path: https://www.bilibili.com/video/BV1aMEj62EdA/?vd_source=3e6818490386ddea6f47f9022c0cd1b1 request: https://api.bilibili.com/x/web-interface/view?bvid=BV1aMEj62EdA Playitem path: https://www.bilibili.com/video/BV1aMEj62EdA?p=1 -------------------------------------------------- request: https://api.bilibili.com/x/web-interface/view?bvid=BV1aMEj62EdA request: https://api.bilibili.com/x/player/wbi/v2?bvid=BV1aMEj62EdA&cid=38979504395 request: https://api.bilibili.com/x/player/playurl?avid=116718873614328&cid=38979504395&qn=127&fnval=4048&fourk=1 title: 🐱躲在超市后门哈气的二人🐱 aid: 116718873614328 bvid: BV1aMEj62EdA cid: 38979504395 url: https://xy58x49x253x148xy.mcdn.bilivideo.cn:8082/v1/resource/upgcxcode/95/43/38979504395/38979504395-1-100022.m4s?agrr=1&build=0&buvid=&bvc=vod&bw=85478&deadline=1783195990&dl=0&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv3&lrs=35&mcdnid=50056342&mid=0&nbs=1&nettype=0&og=ali&oi=3746193455&orderid=0%2C3&os=mcdn&platform=pc&prs=2&qn_dyeid=adc7dd51f571f16100367fd26a494d36&sign=206f41&traceid=tryEhiQVReJLzb_0_e_N&uipk=5&uparams=e%2Cmid%2Cdeadline%2Ctrid%2Cuipk%2Cos%2Cnbs%2Cplatform%2Coi%2Cgen%2Cog&upsig=084cca253f6eb020351801cf27c38721 libpng warning: Interlace handling should be turned on when using png_read_image

截图

Image Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions