尝试找出一种方法,从命令行启动 VLC 实例,以在 Win7 框上传输 3 个显示器。我们可以分别启动每个实例,并连接到每个实例(虽然不是同时启动,因此需要 1 个实例;我们假设这将解决问题)。
迄今为止的限制和进展:
- 带有身份验证的 HTTP 流/连接方法 =独立工作
- 同一IP和港口(分别为 192.168.xx 和 8181)=独立工作
- 不同的路径 (/screen1, /screen2, /screen3) =独立工作
- 使用多个 IP 和/或 NIC 运行单独的实例 =可作为替代解决方案;不适合作为最终解决方案
具有本地显示选项的主显示器的示例 cmd 字符串(没什么特别的):
vlc screen:// :screen-fps=20.000000 :live-caching=300 :sout=#transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen1},dst=display} :sout-keep
具有本地显示选项的第二台显示器的示例命令字符串:
vlc screen:// :screen-fps=20.000000 :screen-width=1600 :screen-height=900 :screen-top=-900 :screen-left=-1280 :live-caching=300 :sout=#transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen2},dst=display} :sout-keep
再次,有没有办法将它们合并到同一个 cmd 字符串中,从而在上述实例中产生 2 个以上的流(每个监视器/显示器 1 个)?开始研究 VLM 和 MOSAIC,但似乎有点过头了?暂时卡住了。
答案1
VLM 是实现多种流的方法。
这里这是 VLC 文档中有关如何进行多流传输的指南。我创建了两个流,输入screen://
和输出均为:
#transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen1},dst=display}
显然,不同的流具有不同的 URL 路径。
要在第二和第三屏幕上添加屏幕选项,请使用setup option
命令。
以下是我在我的机器上执行的所有命令:
new Screen1 broadcast enabled
setup Screen1 input screen://
setup Screen1 output #transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen1},dst=display}
new Screen2 broadcast enabled
setup Screen2 input screen://
setup Screen2 output #transcode{vcodec=MJPG,vb=800,fps=20,scale=0.5,acodec=none,user=admin,pwd=admin}:duplicate{dst=http{mux=mpjpeg,dst=:8181/screen2},dst=display}
setup Screen2 option screen-width=1920
setup Screen2 option screen-height=1080
setup Screen2 option screen-top=0
setup Screen2 option screen-left=-1920
control Screen1 play
control Screen2 play
答案2
我遇到了类似的问题;我想要一个 3 宽的 1080p 显示器阵列。我的解决方案是为主机发明一个自定义分辨率,在本例中为 5760x1080。然后我安装了屏幕分割软件;我认为它是 SplitView。使用如此大的显示器与 VLC 一起使用的一个烦人的事情是帧速率下降,我放弃了它。