web-dev-qa-db-ja.com

Ubuntuはcronジョブを介してビデオを再生できますか?

ペイントショップのディスプレイシステムを開発しています。
Ubuntuを搭載したコンピューターをセットアップして、ビデオを実行してテレビに表示し、インターネット経由で1時間ごとにビデオを更新するPHPスクリプトを実行します。

スクリプトはcron経由で実行されるように設定されており、1時間に1回(@hourly)実行されます。スクリプトのほぼ全体が完全に実行されますが、VLC MediaPlayerを実行してビデオを表示する最後の行はサイレントに失敗します。スクリプトがコマンドラインから実行される場合(php /path/to/cron.php)、VLC MediaPlayerは完全に起動します。ただし、cronで実行すると、実行されません。

私が得た考えは、cronを介して実行されているジョブには、表示されているGUIを使用してアプリケーションを実行する機能がないということですが、それが答えではないことを願っています。

これを割るのを手伝ってください!

7
Sune Rasmussen

Xサーバーに何かを表示するには、Xクライアント(vlcなど)で、Xサーバーのネットワークアドレスを定義する環境変数DISPLAYを設定する必要があります。ほとんどすべての場合(1つのローカルXサーバー)、:0に割り当てる必要があります。

スクリプトからその変数を設定するか、代わりにbash -c "DISPLAY=:0 vlc $vlcopts"を実行することができます(もちろん、$vlcoptsを置き換えます)。

6
whitequark

次のものも使用できます。

@hourly screen -d -m vlc-wrapper /path/to/file/foo.flv --novideo --volume 700 --repeat --rc-fake-tty

Vlcを機能させるため。ここに詳細なプロセスがあります: http://michaelchrisco.com/wiki/index.php?title=Set_up_VLC_as_a_cron_job

2
moolinux