[英]How can I open VLC via browser with PHP (Mac OS X)
我正在尝试通过浏览器打开VLC,并使其立即在Mac OS X上播放给定的视频文件。
这在我的本地服务器上运行,并且只能在本地运行-因此,我已经使用用户名和“ staff”组(在httpd.conf中定义)运行了apache(MAMP)。
是的-我确实知道VLC具有http界面-但这不是我所需要的,因此不要建议...
通过终端运行我的当前系统时,没有任何问题:
php /var/www/Movies/index.php
->这会导致VLC打开,并且视频会像预期的那样开始全屏播放。
当我使用浏览器运行相同的PHP页面时,问题就开始了。 然后,VLC进程启动,但是没有GUI可用,视频文件将无法开始播放,并且VLC进程占用了近100%的CPU。
谁能给我有关如何使该功能正常工作的任何指示?
index.php
# $j is a file path to the videofile and is defined before
exec('/var/www/Movies/vlc.sh "' . $j . '" > /dev/null 2>&1 & echo $!;');
# If I do this in the given PHP-page it tells me that apache is running
# with my username and with the group "staff" like it should be...
exec('whoamI');
vlc.sh
#!/bin/bash
# Activate VLC in 5 seconds to make it the front-most window
(sleep 5; open -a VLC) &
# Open video file
/Applications/VLC.app/Contents/MacOS/VLC --quiet --fullscreen "$1"
为了解决这个问题,对我有用的最终解决方案是:
exec('echo "OS_X_ROOT_PASSWORD" | sudo -S launchctl bsexec LOGIN_WINDOW_PROCESS_ID osascript -e \'do shell script "PATH_TO_vlc.sh" & " \"MOVIE_FILE_PATH\" \"SUBTITLE_FILE_PATH\""\' > /dev/null 2>&1 & echo $!;');
vlc.sh的内容
#!/bin/bash
# Activate VLC in x seconds to make it the front-most window
(sleep 4; open -a VLC) &
# Open video file
su - YOUR_MAC_OS_USERNAME -c "/Applications/VLC.app/Contents/MacOS/VLC --quiet --volume=1024 --fullscreen --sub-file=\"$2\" \"$1\""
谢谢您的回复。 我没有让VLC与此兼容,但是我证明我可以使用浏览器来完成工作。
exec('osascript -e \'say "Hello"\'');
我得到了AppleScript通过浏览器的支持,这是一个巨大的胜利。 :D现在的问题是,显然VLC不能以root身份运行,并抱怨:“ VLC不应以root身份运行。对不起。如果您需要使用实时优先级和/或特权TCP端口,则可以使用/Applications/VLC.app/Contents/MacOS/VLC-wrapper(请确保它是Set-UID根目录,并且不能首先由不受信任的用户运行)。 :(
所以-任务仍在继续...仍需要帮助来克服这一限制...
这是我想让魔术发生的地方:
$PID = exec('ps aux | grep "loginwindow" | grep -v grep | awk \'{ print $2 }\'');
exec('sudo launchctl bsexec ' . $PID . ' /Applications/VLC.app/Contents/MacOS/VLC --quiet --fullscreen "' . $j . '" > /dev/null 2>&1 & echo $!;');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.