从 cronjob 运行 VLC:如何获得 DBUS 连接?

从 cronjob 运行 VLC:如何获得 DBUS 连接?

我正在尝试从 cron 作业运行 VLC headless。这个想法是每两分钟从 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

这些错误真的是致命的吗?即你还能得到你想要的输出吗?

  1. 错误$DISPLAY消息可能只涉及屏幕保护程序抑制,添加--no-disable-screensaver 可以解决它(否则你可能可以忽略它,它是非致命的)。 VLC 不需要 D-Bus 连接来完成您想要做的事情。
  2. 您也可以尝试使用cvlc,它显然不使用任何接口(这听起来像是相关的)。

相关内容