通过HTML / JS或PHP在VLC打开文件(Open file in VLC via HTML/

2019-11-02 22:20发布

我试图建立一个本地媒体服务器,纯粹是为了教育的目的,并希望通过浏览器打开VLC媒体播放器的本地视频文件(最好是Chrome浏览器)

到目前为止,我已经试过,没有任何运气如下:

本地的“file:///”网址:能够在Windows资源管理器中打开本地目录,但没有运气(使用IE11)开在他们指定的程序的媒体文件。

这工作如果通过浏览器通过命令行(PHP my_file.php)上运行,而不是:

 $file = 'pathToFile'; system("pathtovlc/vlc {$file}"); 


通过运行PHP .bat文件,反过来调用VLC命令行也不管用

最后,通过CLI直接通过命令行打开文件,或者使用PHP,就像一个魅力,但我还没有找到一种方法,成功地打开一个文件通过浏览器。

我假定这是一个用户权限问题作为Apache服务使用系统权限运行,但我似乎无法找到一种解决方法。 我读到有关运行具有管理员权限的Apache服务,但我无法找到如何把这事办成..

任何输入,非常感谢!

== ==编辑

我试图通过PSEXEC运行VLC命令,但没有luck..the命令运行,如:

exec('path_to\psexec -u myUsername -p myPassword -c ^path_to\vlc.exe 
path_to\media_file');

这再次通过命令行的伟大工程,但不是通过浏览器..

== EDIT 2 ==

因为有必然是从一个网页浏览器内的指定程序打开媒体文件的方式仍然摆弄周围与此有关。

阿帕奇目前拥有管理员权限,但仍然没有运气得到这个工作!

==编辑3 ==

我在Chrome和Firefox的扩展locallinks摆弄周围,这让我有点进一步。 打开<a href="file:///path">link</a>在Chrome中,只需点击它的链接没有工作,但导致Chrome始终会下载文件(即使它们是本地)的问题,而不是刚刚开场他们在指定的程序。

对于Firefox,扩展工作,但它需要一个右键 - > locallinks - >打开,这似乎是确定,但我真的找了一个点击的解决方案。

直接打开一个文件(比如一个文件的.mkv)的VLC通过本地.html文件在Firefox完全正常,但是当通过HTTP://。 我改变了对Firefox的security.fileuri.strict_origin_policy设置:配置为false,这让我打开本地文件:///的URL甚至可以通过HTTP,但出于某种原因,它去掉从文件URI的结束,这意味着它的文件名指向目录中的文件中,而不是文件本身..令人沮丧的,至少可以说

Answer 1:

最后,我得到它的方式,我可以点击一个文件URL工作(仅在Firefox),并在指定的程序文件被打开火狐之外。

原来,security.fileuri.strict_origin_policy设置设置为false,capability.policy.default.checkloaduri.enabled到allAccess和禁用Firefox的插件VLC是所有有它!

我还没有找到一个跨浏览器的解决方案,甚至没有通过PHP的管理员级别执行的命令,但我有种放弃希望!



Answer 2:

我不知道JS(敢肯定你不能出于安全原因,这样做本身),但因为你指定的,你是在本地运行它,你能做到这一点在PHP中:

$vlc = "C:\Program Files (x86)\VideoLan\VLC\vlc.exe"; // or whatever the path to vlc is;
$path_file = "C:\your\path\file.mp4"; // you can also retrieve that with a relative path like using realpath(relative_path);

// launch vlc
pclose(popen("start \"$vlc\" \"$path_file\"", "r"));

如果你愿意,你可以做一个文件夹中打开所有文件:

pclose(popen("start "VLCFlux" \"$vlc\" \"$path_folder\"", "r"));

耦合到一个AJAX调用执行这个脚本,没有太大的区别。



文章来源: Open file in VLC via HTML/JS or PHP