我有一个覆盆子pi,我正试图通过网络应用程序上的控件制作显示视频。我按照here描述的方式使用omxplayer。我的PHP问题文件只包含此行(已修改用于测试):
exec("/home/pi/master/playmovie.sh test.mp4");
引用文件/home/pi/master/playmovie.sh:
omxplayer -o hdmi /home/pi/Videos/$1 < /home/pi/master/cmd > /dev/null &
echo . > /home/pi/master/cmd
当我通过putty在本地执行这个php文件或命令本身时,一切正常,但当我尝试通过网络执行它时,它会锁定并且电影永远不会启动。
重要的:
omxplayer -h
,ls -l /home/pi/Videos/test.mp4
,echo -n p > /home/pi/master/cmd
所以它肯定会认出那些都是有效的。我觉得自己很疯狂,这是我在这个项目上需要做的最后一件事,让它变得有用,请帮助!!
答案 0 :(得分:0)
我的猜测是因为你的实际exec命令不能处理stdout,stderr和stdin。从命令行调用时,PHP没有输出缓冲区,但是从浏览器开始。
听起来它正在获得一些输出,然后等待脚本完成执行并最终超时,因此它似乎什么都不做。
如果你使用nohup会怎样?
exec("nohup /home/pi/master/playmovie.sh test.mp4 &");