Xorg
從 cronjob 執行 VLC:如何獲得 DBUS 連接?
我正在嘗試從 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 連接?
這些錯誤真的是致命的嗎,即你仍然得到你想要的輸出嗎?
- 該
$DISPLAY
錯誤消息可能僅涉及螢幕保護程序抑制,添加--no-disable-screensaver
可以解決它(否則您可能會忽略它,它不是致命的)。VLC 不應該需要 D-Bus 連接來完成您嘗試做的事情。- 您也可以嘗試使用
cvlc
,它顯然不使用任何介面(這聽起來像是相關的)。