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接続を手動で作成するにはどうすればよいですか?
これらのエラーは本当に致命的ですか?つまり、必要な出力が得られますか?
$DISPLAY
エラーメッセージはおそらくスクリーンセーバーの抑制にのみ関係し、--no-disable-screensaver
couldを追加すると解決できます(それ以外の場合)あなたはおそらくそれを無視することができます、それは致命的ではありません)。 VLCはあなたがやろうとしていることのためにD-Bus接続を必要とすべきではありません。cvlc
を使用することもできますが、これは明らかにインターフェイスを使用していません(これは関連しているようです)。