2014-02-12 62 views
1

我有同样的问题:我需要在同一屏幕(从UNIX命令行)中显示2个视频。使用“屏幕命令”LINUX屏幕命令 - 同一屏幕中的两个视频

网上我找到一个教程(http://t3chadd1ct.wordpress.com/2013/04/19/omxplayer/),是解决我的问题......在

[...]这很容易被利用的解决屏幕功能。下面的 例子说明如何创建一个2×2矩阵[...]

screen 
> -dmS camera1 sh -c 'omxplayer --win "0 0 960 540" rtsp://ip_address/live; exec bash' screen -dmS camera2 sh -c 
> 'omxplayer --win "960 0 1920 540" rtsp://ip_address/live; exec bash' 
> screen -dmS camera3 sh -c 'omxplayer --win "0 540 960 1080" 
> rtsp://ip_address/live; exec bash' screen -dmS camera4 sh -c 
> 'omxplayer --win "960 540 1920 1080" rtsp://ip_address/live; exec 
> bash' 

我已经按照这个教程,但不能正常工作:我的脚本执行只有视频(第一个“camera2”):

more tmp01.sh 
#!/bin/sh 

#1)this work: 
#nohup omxplayer --win "0 0 1440 800" ../Shared/NO_LOGO_1/01.avi & 
#nohup omxplayer --win "0 801 1440 900" ../Shared/NO_LOGO_1/02.avi & 

#2)doesn't work 
screen -dmS camera2 sh -c `omxplayer --win "0 0 200 200" /home/pi/Shared/NO_LOGO 
_1/02_a.avi; exec bash` 

screen -dmS camera1 sh -c `omxplayer --win "200 200 600 600" /home/pi/Shared/NO_ 
LOGO_1/01_a.avi; exec bash` 

我在哪里错了? 非常感谢!

回答

1

您使用了错误的引号。使用'而不是反引号(`)。您正在使用它的方式,screen命令将不会终止,直到omxplayer的输出完成(即直至终止。

screen -dmS camera2 sh -c 'omxplayer --win "0 0 200 200" /home/pi/Shared/NO_LOGO_1/02_a.avi; exec bash' 

,而不是

screen -dmS camera2 sh -c `omxplayer --win "0 0 200 200" /home/pi/Shared/NO_LOGO_1/02_a.avi; exec bash` 

看到区别?

+0

是的!它的功能非常好!我因为我的树莓里没有“屏幕功能”而丢失了几个小时,现在你的命令工作得很好!!!谢谢! – UserRaspberry

+0

并且可以创建一个.sh,如 tmp。 sh '#!/ bin/sh omxplayer --win“0 0 200 200”/ home/pi/Shared/NO_LOGO_1/02_a.avi' 以及某些事情如= screen -dmS camera2 sh tmp.sh screen -dmS camera1 sh -c'omxplayer --win“200 200 600 600”/ home/pi/Shared/NO_ LOGO_1/01_a.avi; exec bash' >>>一个带两个屏幕实例的脚本,其中一个使用sh脚本 – UserRaspberry

+0

如果您创建了这样的脚本,第一个命令('omxplayer')将被执行_并等待。下一个命令('screen')只会在'omxplayer'终止后启动。如果你用另一种方式(第一个“屏幕”,然后是“omxplayer”),它会工作,因为'screen'命令总是快速终止;它只是启动一个新的屏幕窗口,并且内部命令以分离的方式运行(由于选项“-d”)。 – Alfe