Так что я немного поиграл с этим, но в этот момент мне удалось пробить стену, чтобы обдумать следующий шаг.
У меня есть этот скрипт, который работает из туннеля ssh для отображения записи: 0.0
#!/bin/dash
# Sleep to try not to break everything YAY
sleep 30
# Export the main display
export DISPLAY=0.0
#Start an infinite loop
while true; do
# Set variable now to todays date and the time right now in Hours-Minutes-Seconds_Month-Day-Year
now=$(date +'%H-%M-%S_%m-%d-%Y')
# Start recording using ffmpeg at 5fps with a time limit of 300 seconds(Five Minutes) to file $now
ffmpeg -f x11grab -s 1024x768 -r 5 -t 300 -i :0.0 /home/swuser/Videos/$now.mp4
done
Я пробовал его с заданием upstart, но он зависнет при запуске, если я не переведу его в состояние сна , в котором он затем не записывает (я предполагаю, что он не может найти display: 0.0, даже если сон находится перед экспортом), и скрипт продолжает работать, ничего не делая, кроме завершения ffmpeg
снова и снова.
Для справки я бегу ffmpeg 0.10.12-7:0.10.12-1~precise1
любая помощь очень ценится!
Я закончил тем, что использовал .profile
файл и менял мой код к ним:
В .profile
:
if [ "$RECORDISRUNNING" != "1" ]; then
export RECORDISRUNNING=1
/home/swuser/sleep.sh &
fi
В sleep.sh
:
#!/bin/sh
# sleep for 30 seconds then call record.sh
sleep 30
/home/swuser/scripts/record.sh &
В record.sh
#!/bin/sh
# Check to see if there is a display, and if not, exit with error code of 1
if [ -z "$DISPLAY" ]; then
exit 1
fi
# Export the main display
export DISPLAY=0.0
# Set variable now to todays date and the time right now in Hours-Minutes-Seconds_Month-Day-Year
now=$(date +'%H-%M-%S_%m-%d-%Y')
# Start recording using ffmpeg at 5fps with a time limit of 300 seconds(Five Minutes) to file $now
ffmpeg -f x11grab -s 1024x768 -r 5 -t 300 -i :0.0 /home/swuser/Videos/$now.mp4
# Call the script again (to continually record in 300 second increments)
/home/swuser/scripts/record.sh &
И что об оборачивает его.