使用 VLC,我希望流式传输桌面的一部分并将其发送到局域网上的另一台主机。
捕获似乎有效,我看到桌面的正确部分进入了 VLC 服务器,但是没有任何内容发送到网络,因为 Wireshark 的过滤器是空的ip.src==192.168.1.31 && udp.port==2416
:
服务器端脚本
vlc -vvv screen:// :screen-fps=15 ^
:screen-top=12 :screen-left=4 :screen-width=320 :screen-height=200 ^
:sout=#transcode{acodec=none}:duplicate{dst=std{access=udp{ttl=1},dst=192.168.1.7:2416},dst=display} ^
:sout-keep
客户端脚本
vlc udp://:2416
vlcServer.bat
和中的选项vlcClient.bat
缺失或错误,你知道如何纠正它们吗?
答案1
最后,经过大量测试,我发现我需要一个屏幕源编码器:
进程管理器
@start /MIN "" "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" ^
-vvv screen:// :screen-fps=25 :screen-top=545 :screen-left=232 :screen-width=250 :screen-height=120 ^
--sout=#transcode{vcodec=h264,acodec=none,fps=25}:rtp{dst=192.168.1.31,port=5004,mux=ts,ttl=1} :sout-keep
客户端程序
@start /MIN "" "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" rtp://:5004
如您所见,视频使用的编码器是 H264,音频则不使用。
现在,我遇到了性能问题……因为观察到的帧速率非常非常低
编辑
我刚刚添加了fps=25
。帧速率现在正确了,但延迟大约为 3 秒。这对我来说是不可接受的,因为流式传输的图像是模拟飞机驾驶舱(X-Plane)的人工地平线。
编辑2
我刚刚发现了一个很棒的 X-Plane 插件,它完全满足我的需要:新恒生指数由于传输的信息不是视频帧而是用于在目标主机上绘制图像的逻辑信息,因此可以提供性能。