无法从 PHP 执行 VLC

See*_*hur 5 php command-line bash vlc apache2

我在 8 个 CPU、8GB RAM 的 64 位 Intel Xeon 机器上运行 uBuntu 12.04.3、32 位操作系统。我也安装了所有的backports。

我有这个问题,过去 3 天一直在吃我的头。我使用以下代码创建了一个 play.sh 文件...

代码:

#! /bin/sh 

vlc -vvv sasural.ts
Run Code Online (Sandbox Code Playgroud)

其中 sasural.ts 是位于 home 下且与 Apache 处于同一级别的视频文件。我正在使用以下 PHP 代码调用 .sh 文件...

代码:

shell_exec('play.sh');

我还尝试了 exec() / system() 方法来调用 .sh 文件。

每当我这样做时,我都会收到以下消息...

VLC media player 2.2.0-git Weatherwax Command Line Interface initialized. Type `help' for help. > Shutting down.
Run Code Online (Sandbox Code Playgroud)

如果我从 PHP 代码之外的终端命令提示符执行它,play.sh 就可以工作。我想当我从 PHP 中调用它时我做错了什么。

我执行了以下任务...

  1. 给定 Apache Root 访问权限
  2. 将所有文件夹链接到 Apache

See*_*hur 1

先生们,

我已经能够通过使用以下步骤解决这个问题......

  • 安装vlc nox版本
  • 在 PHP 文件中: echo shell_exec("sh /var/www/play1.sh");

  • 在 play1.sh 文件中: #!/bin/sh vlc -Idummy /var/www/media.ts --sout '#standard{access=http,mux=ts,dst=:1935/}'

  • 通过浏览器调用 PHP 文件,VLC 将开始流式传输到端口 1935

要从客户端访问该文件...

1) 将 VLC 或任何媒体播放器指向 URL + 端口。前任。http://www.something.com:1935 2) 客户端播放器将开始接收文件并播放。

现在,下一步是按需启用该文件。我也会发布我是如何做到的,敬请期待!

感谢所有帮助我解决这个问题的人。我已经尽可能添加了+代表。