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内から呼び出すときに何か間違ったことをしていると思います。
次のタスクを実行しました...
紳士
次の手順を使用して、この問題を解決できました...
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を追加しました。
それをやった:)
楽しかった: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');
?>
それを試してみてください:)
スクリプトで、vlcを起動する前に、export DISPLAY=:0
という行を用意します。
これにより、WebサーバーがXセッションと同じボックスで実行されていると仮定して、プライマリXセッションで起動します。
必要に応じて、サウンドで何かをする必要もあります。リモートALSAまたはPulseaudioサーバーのような。