java吧 关注:1,238,325贴子:12,708,388
  • 14回复贴,共1

请教各位吧友

只看楼主收藏回复

需求
ununtu下,窗口投屏功能。
目前实现方案
1、直播
使用opencv录制窗口,基于rtmp推流到内网服务器,客户拉取视频流实时播放。内网测试5秒延迟,达不到要求的效果。放弃
2、截图
使用java awt截取窗口图片,转码通过socket发送到客户端,实时绘制。测试,能达到实时效果。但是awt截图一帧大概30-50ms,转码30-40ms。最后客户端绘制大概只有1秒15帧,肉眼可见的不流畅。
3、截图
使用javacv,利用ffmpeg截图,转码,通过websocket长连接传输,比awt快一点,18帧。还是达不到流畅投屏。
2 3方案中均使用多线程处理。
目前进度已经卡住了,请教各位吧友,有没有类似的解决方案。


IP属地:辽宁来自Android客户端1楼2022-05-26 18:22回复
    好奇。mark一下


    IP属地:上海来自iPhone客户端2楼2022-05-26 19:32
    回复
      有没有可能用c++完成这部分工作呢 封装dll让java调用之类的


      IP属地:河北来自Android客户端3楼2022-05-26 20:59
      收起回复
        我试过了,qt5 win10 16g i710代 gtx1650ti,单线程100张截屏jpg总耗时10s,10线程并发100张jpg总耗时2s,比java快得多。


        IP属地:河北来自Android客户端4楼2022-05-26 21:39
        回复
          换方案吧 大公司这种问题问领导就能解决 小公司做出来也没有 网络带不起来的


          IP属地:广东5楼2022-05-27 10:21
          收起回复
            qt+ffmpeg+opencv


            来自Android客户端6楼2022-05-27 12:33
            回复
              直播的话webrtc应该比rtmp快吧


              IP属地:广西来自Android客户端8楼2022-05-28 05:56
              回复
                Xface4这种的,或者相关思路


                IP属地:西藏来自Android客户端9楼2022-05-28 22:39
                回复