web-dev-qa-db-ja.com

cronジョブからVLCを実行する:DBUS接続を取得する方法は?

CronジョブからVLCヘッドレスを実行しようとしています。アイデアは、2分ごとにRTSPストリームから単一の画像を取得し、(後で、別のスクリプトで)それらを離れたマシンにftpで転送することです。私が使用するコマンドラインは次のとおりです(わかりやすくするために改行を追加):

vlc -I dummy rtsp://somesourceaddress/
--rate=1 --vout=dummy
--video-filter=scene --start-time=0 --stop-time=1 --scene-format=png --scene-prefix=img1 --scene-path=/tmp/ --scene-replace 
vlc://quit

ただし、これはXセッション内のターミナルウィンドウからは美しく機能しますが、cronから実行すると、次のエラーメッセージが表示されます。

[0x81d1154] inhibit interface error: Failed to connect to the D-Bus 
session daemon: Unable to autolaunch a dbus-daemon 
without a $DISPLAY for X11
[0x81d1154] main interface error: no suitable interface module
[0x81d15fc] main interface error: no suitable interface module
[0x80503fc] main libvlc error: interface "globalhotkeys,none" 
initialization failed
[0x81d15fc] dummy interface: using the dummy interface module...

では、$ DISPLAYがない場合、どこで適切な値を取得できますか?または、DBUS接続を手動で作成するにはどうすればよいですか?

3
jstarek

これらのエラーは本当に致命的ですか?つまり、必要な出力が得られますか?

  1. $DISPLAYエラーメッセージはおそらくスクリーンセーバーの抑制にのみ関係し、--no-disable-screensavercouldを追加すると解決できます(それ以外の場合)あなたはおそらくそれを無視することができます、それは致命的ではありません)。 VLCはあなたがやろうとしていることのためにD-Bus接続を必要とすべきではありません。
  2. cvlcを使用することもできますが、これは明らかにインターフェイスを使用していません(これは関連しているようです)。
3
sr_