无法从 PHP 执行 VLC

无法从 PHP 执行 VLC

我在一台 8 CPU、8GB RAM 的 64 位 Intel Xeon 机器上运行 uBuntu 12.04.3,32 位操作系统。我还安装了所有反向移植。

这个问题困扰了我三天。我创建了一个 play.sh 文件,其中包含以下代码...

代码:

#! /bin/sh 

vlc -vvv sasural.ts

其中 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.

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

我已执行了以下任务...

  1. 授予 Apache 根访问权限
  2. 将所有文件夹链接到 Apache

答案1

完成了 :)

很有趣:D

先决条件: vlc 必须已经在运行 fifo 文件必须存在 下面将进行设置:

mkfifo /tmp/vlcfifo
chmod a+rw /tmp/vlcfifo
tail -f /tmp/vlcfifo | nohup vlc --intf rc &

在php文件中:

<?php
passthru('echo "add /path/to/video.avi" | tee /tmp/vlcfifo');
?>

尝试一下 :)

答案2

在您的脚本中,在启动 vlc 之前,请输入以下行:export DISPLAY=:0

假设 Web 服务器与你的 X 会话在同一个框中运行,这应该会在你的主 X 会话中启动它。

如果需要,您还需要对声音进行一些处理。例如远程 ALSA 或 Pulseaudio 服务器。

答案3

先生们,

我已经能够通过以下步骤解决此问题...

  • 安装 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)客户端播放器开始接收文件并播放。

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

感谢所有帮助我解决这个问题的人。我尽可能地添加了 +reps。

相关内容