У меня есть виртуальная машина с CentOS 5.5, которую я использую в качестве потокового сервера.
Если я открою 4 терминала и сделаю так:
Терминал 1:
# mkfifo pipe1.avi
# mkfifo pipe2.avi
# ffserver &
# ffmpeg -probesize 164000 -i pipe1.avi -async 1 -r 25 http://localhost:8090/feed1.ffm
терминал 2:
# ffmpeg -i pipe2.avi -async 1 -r 25 -vcodec flv -f flv somename.flv
терминал 3:
# mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe1.avi
терминал 4:
# mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe2.avi
Все отлично работает. Никаких проблем некуда.
Сейчас пытаюсь сделать скрипт и запустить его из cron. Это сценарий:
ffserver &
ffmpeg -probesize 164000 -i pipe1.avi -async 1 -r 25 http://localhost:8090/feed1.ffm &
ffmpeg -i pipe2.avi -async 1 -r 25 -vcodec flv -f flv somename.flv &
mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe1.avi &
mplayer -dumpstream rtp://someIp:somePort -dumpfile pipe2.avi &
exit 0
Строка crontab:
10 * * * * script.sh > /dev/null 1>&2
Проблема в том, что при запуске cron происходит сбой системы. На самом деле это не приводит к сбою потока, что я вижу с другого компьютера и работает отлично. Но я ничего не могу сделать на машине. Экран становится черным, и я ничего не могу сделать, кроме как перезапустить его. У меня есть скрипт, убивающий передние отростки. Если я использую его, поток останавливается, но я все еще не получаю доступ к системе (тот же черный экран, что бы я ни делал).