有没有人注意到串流类远程桌面的画面声音不同步问题? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX    问与答

有没有人注意到串流类远程桌面的画面声音不同步问题?

  •  
  •   abcbuzhiming 2024-01-18 19:02:20 +08:00 1034 次点击
    这是一个创建于 631 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近折腾了串流,主要是想云游戏,也试用了不少云游戏平台,这类串流软件都是基于差不多的原理,在被控端实时采集视频然后编码,传输到主控端解码。然后我发现了一个现象:
    随着被控端上传的带宽(码率)和帧数的提升,控制端的电脑会因为无法及时的解码,而画面开始延迟(画面声音不同步,画面比声音慢的多,可以达到几秒甚至十几秒),主控端的输入要半天才能反应。但是很有趣的是,它不卡顿,一点都不卡,就是影音不同步。


    这个现象我仔细研究过,目前的结论是,是由不同的硬件配置导致的,一开始我还以为是网络,后来一个偶然的契机,我在同一网络条件下使用了不同硬件配置的电脑来做主控端,控制端是相同的电脑,结果发现它们在同一网络下,性能表现不一样。
    简单的说就是,硬件性能越高的的电脑,就能承受更高的带宽(码率)和展示更高的帧数。配置越低,你就不能开高帧数,否则很快就画面声音不同步了。


    我对这个问题刚开始很不理解,因为有另外一个现象,出现影音不同步的时候,不管主控端这边的解码,是通过 CPU 的软解,还是通过 GPU 的硬解,CPU 占用率或 GPU 硬编码器的占用率,都没有满载,甚至只有最多 20%不到。这让我产生了一个怀疑,就是视频解码这个工作,是否存在一个内定的上限,它并不是如同其它计算工作一样,会吃掉所有计算资源来完成计算,而是达到一定上限后就不再提升,就像游戏中的限制最大帧率一样。比如它就限死了,解码每秒只能 60 帧,可被控端那边源源不断的输送着每秒 144 帧的数据过来,那可不就画面越来越慢于声音了。

    有这个怀疑是因为视频这个东西长期都是用在电视和电影领域的,而这些领域长期以来都有自身的行业标准,比如 30 帧,60 帧之类的。那么仅仅是把这些软件化的东西,会不会也带有这个限制?

    我自己去搜了一下相关的东西,可能我不是视频领域的专业人员,找 ffmpeg 没有找到可能相关的资料。然后我就又转头去找各家显卡的硬解码资料,但是各家显卡,都只写了它们对各种编码,在某个分辨率下的支持,但是并没有资料证明它们对解码这些视频数据的时候存在,或不存在限制最大帧数的东西?

    我不知道这个推论对不对,所以求教一下更专业的人。谢谢
    1 条回复    2024-01-18 23:56:09 +08:00
    journalist
        1
    journalist  
       2024-01-18 23:56:09 +08:00
    https://jchuynh.medium.com/how-fast-can-you-decode-videos-into-frames-with-ffmpeg-part-1-d12a267f9b13 很明显没有,起码不可能限制到 60 帧。你用的软件如果有缓冲区大小的设置可以尝试调节一下。性能不够只能丢包和增加延迟二选一,另外画面和声音不同步可以选择给音频额外增加延迟。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     889 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:37 PVG 04:37 LAX 13:37 JFK 16:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86