web-dev-qa-db-ja.com

PHPからVLCを実行できません

8 CPU、8GB RAM 64ビットIntel XeonマシンでuBuntu 12.04.3、32ビットOSを実行しています。すべてのバックポートもインストールしました。

私はこの問題を抱えており、過去3日間私の頭を食べています。次のコードでplay.shファイルを作成しました...

コード:

#! /bin/sh 

vlc -vvv sasural.ts

Sasural.tsは、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にリンクしました
5
Seemant Mathur

紳士

次の手順を使用して、この問題を解決できました...

  • 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)クライアントプレーヤーはファイルの受信と再生を開始します。

次のステップは、このファイルをオンデマンドで有効にすることです。私もそれをやった方法を投稿しますので、お楽しみに!!

この問題の解決に私を助けてくれた皆さん、ありがとう。可能な限り+ repを追加しました。

1
Seemant Mathur

それをやった:)

楽しかった: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');
?>

それを試してみてください:)

4
Gregory Fenton

スクリプトで、vlcを起動する前に、export DISPLAY=:0という行を用意します。

これにより、WebサーバーがXセッションと同じボックスで実行されていると仮定して、プライマリXセッションで起動します。

必要に応じて、サウンドで何かをする必要もあります。リモートALSAまたはPulseaudioサーバーのような。

2
Trevor Dell