Xorg

從 cronjob 執行 VLC:如何獲得 DBUS 連接?

  • March 7, 2012

我正在嘗試從 cron 作業中無頭執行 VLC。這個想法是每兩分鐘從 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 連接?

這些錯誤真的是致命的嗎,即你仍然得到你想要的輸出嗎?

  1. $DISPLAY錯誤消息可能僅涉及螢幕保護程序抑制,添加--no-disable-screensaver 可以解決它(否則您可能會忽略它,它不是致命的)。VLC 不應該需要 D-Bus 連接來完成您嘗試做的事情。
  2. 您也可以嘗試使用cvlc,它顯然不使用任何介面(這聽起來像是相關的)。

引用自:https://unix.stackexchange.com/questions/33656