通过HTML / JS或PHP在VLC中打开文件

时间:2014-02-12 14:40:27

标签: php windows browser local vlc

我正在尝试设置一个纯粹用于教育目的的本地媒体服务器 并希望通过浏览器(最好是Chrome)在VLC媒体播放器中打开本地视频文件

到目前为止,我已经尝试了以下但没有运气:

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

如果通过命令行(php my_file.php)运行,但不通过浏览器运行,则此方法有效:     

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


通过PHP运行.bat文件,然后调用VLC命令行也不起作用

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

我认为这是一个用户权限问题,因为apache服务是使用系统运行的 权限,但我似乎无法为此找到解决方法。我读到了关于运行apache的内容 具有管理员权限的服务,但我无法找到如何实际解决这个问题..

非常感谢任何输入!

==编辑==

我试图通过psexec运行VLC命令,但没有运气......命令运行如下:

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

同样,这可以通过命令行很好用,但不能通过浏览器...

==编辑2 ==

仍然在摆弄这个因为必须有一种方法可以在webbrowser中打开指定程序中的媒体文件。

Apache现在具有管理员权限,但仍然没有运气让这个工作!

==编辑3 ==

我在Chrome和Firefox中摆弄了locallinks扩展程序,这让我更进一步。 只需单击它即可打开<a href="file:///path">link</a>链接在Chrome中运行,但导致Chrome始终下载文件的问题(即使它们是本地文件),而不是仅仅在指定程序中打开它们。

对于Firefox,扩展程序有效,但需要右键单击 - &gt; locallinks - &gt;打开,这似乎没问题,但我真的在寻找一键解决方案。

在VLC中直接打开文件(例如.mkv文件)可以通过本地.html文件在Firefox中完美地运行,但是当通过http://提供时。我将Firefox的security.fileuri.strict_origin_policy设置更改为about:config为false,这允许我甚至通过HTTP打开本地文件:/// URL,但由于某种原因,它从文件URI的末尾删除文件名,这意味着它指向文件所在的目录而不是文件本身..至少可以说是令人沮丧

2 个答案:

答案 0 :(得分:1)

最后,我以一种可以点击文件URL的方式使用它(仅在firefox上),并在指定程序中在firefox外部打开文件。

原来,将security.fileuri.strict_origin_policy设置为false,将capability.policy.default.checkloaduri.enabled设置为allAccess并禁用firefox的vlc插件就是它的全部内容!

我还没有找到一个crossbrowser解决方案,甚至没有在管理员级别通过PHP执行的命令,但我有点放弃了希望!

答案 1 :(得分:0)

我不了解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调用,没有太大的区别。