Может ли Ubuntu воспроизводить видео с помощью cron job?

2846
Sune Rasmussen

Я разрабатываю систему отображения для малярного цеха.
Я настроил компьютер с Ubuntu для запуска видео и показа его на телевизоре, используя скрипт PHP, который должен обновлять видео каждый час через Интернет.

Скрипт настроен на запуск через cron и выполняется один раз в час (@hourly). Почти весь сценарий работает идеально, но последняя строка, в которой он запускает VLC Media Player для отображения видео, молча терпит неудачу. Если скрипт запускается через командную строку ( php /path/to/cron.php), VLC Media Player запускается отлично. Но когда он запускается в cron, это не так.

Мне кажется, что задания, выполняемые через cron, просто не имеют возможности запускать приложения с видимым графическим интерфейсом, но я действительно надеюсь, что это не ответ.

Пожалуйста, помогите мне взломать этот!

7

2 ответа на вопрос

6
whitequark

Чтобы отобразить что-то на X-сервере, X-клиент (например vlc) требует установки переменной окружения, DISPLAYкоторая определяет сетевой адрес X-сервера. Почти во всех случаях (один локальный X-сервер) он должен быть назначен :0.

Вы можете установить эту переменную из своего скрипта или просто запустить ее bash -c "DISPLAY=:0 vlc $vlcopts"(конечно, заменив $vlcopts).

Это фантастика! Я никогда не думал о переменной DISPLAY. Ну, вы можете подумать, что это было не сложно, но вы точно решили мою проблему. Большое спасибо! Sune Rasmussen 14 лет назад 1
2
moolinux

Вы также можете использовать:

@hourly screen -d -m vlc-wrapper /path/to/file/foo.flv --novideo --volume 700 --repeat --rc-fake-tty

Чтобы заставить работать VLC. Здесь есть подробный процесс: http://michaelchrisco.com/wiki/index.php?title=Set_up_VLC_as_a_cron_job

Похожие вопросы