我正在寻找一种在网络上复制桌面的方法. (可以在Web浏览器客户端上运行的东西会很棒.)
>我尝试使用vnc / x11vnc,但质量/帧率太低. (智能手机客户端的cpu太高了 – 我想.)
>我尝试使用ffmpeg将屏幕转换为流式视频,但我无法做到. (质量差,而不是真正的流媒体系统)
有没有办法做到这一点 ?也许通过使用X11转发和重复屏幕?
混合使用ssh -X和xrandr -d:0 – 输出HDMI-1 – 也许是自动? (HDMI-1上的此xrandr代码重复屏幕)
喜欢:xrandr -d:0 – 输出http://192.168.1.3:9001 –auto(我在做梦.)
编辑:也许xpra可以做我正在寻找的东西?但我现在不能让它发挥作用.
解决方法:
您可以使用ffmpeg:
在发送设备上,运行:
ffmpeg -f x11grab -s 1800x1000 -framerate 30 -i :0.0 -preset fast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://RECEIVERIP:9000
在接收设备上,打开防火墙端口9000 / UDP并运行:
ffplay udp://@:9000
您需要相应地设置RECEIVERIP,并通过修改-s 1800×1000来调整要传输的屏幕区域.当然,您可以选择任何您想要的免费端口而不是9000.
在性能方面,您可以调整-framerate和-preset(… | fast | ultrafast),直到您的传输机器可以处理,同时保持您所需的质量和延迟.
ffplay是一个非常小的客户端,可以满足您的需求.你也可以使用vlc.
要在浏览器上显示流,您可能还必须使用流服务器. vlc会有这种能力,但它可能很慢,我还没有找到足够的文档.
笔记:
优化的传输命令(用于较低延迟,但质量较低而不是特别是动态内容)可能如下所示:
ffmpeg -f x11grab -s 1800x1000 -framerate 15 -i :0.0 -preset ultrafast -vcodec libx264 -tune zerolatency -b 500k -f mpegts udp://RECEIVERIP:9000
为了进一步优化负载,您可以利用硬件加速,如documented.虽然这取决于平台,但如果支持,它可能会显着降低CPU负载.
标签:linux,ffmpeg,x11,xorg,xpra 来源: https://codeday.me/bug/20190813/1645847.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。