Jan 08 21:22:25 orangepi3-lts ffplay_x2.sh[627856]: [rtsp @ 0xaaaad9003890] max delay reached. need to consume packet
Jan 08 21:22:25 orangepi3-lts ffplay_x2.sh[627856]: [rtsp @ 0xaaaad9003890] RTP: missed 835 packets
Jan 08 21:22:25 orangepi3-lts ffplay_x2.sh[627856]: frame= 5698 fps=6.0 q=25.0 size= 27791kB time=00:14:51.30 bitrate= 255.4kbits/s dup=0 drop=2891 speed=0.935x
Jan 08 21:22:25 orangepi3-lts ffplay_x2.sh[627856]: [rtsp @ 0xaaaad8fab940] max delay reached. need to consume packet
Jan 08 21:22:25 orangepi3-lts ffplay_x2.sh[627856]: [rtsp @ 0xaaaad8fab940] RTP: missed 849 packets
Jan 08 21:22:26 orangepi3-lts ffplay_x2.sh[627856]: frame= 5705 fps=6.0 q=25.0 size= 27809kB time=00:14:52.00 bitrate= 255.4kbits/s dup=0 drop=2894 speed=0.935x
void callback(char* topic, byte* payload, int new_pwm, unsigned int length) {
Serial.println();
Serial.print(topic); // выводим в сериал порт название топика
Serial.print(" => ");
static int delta = +1;
static const int pwm_step = 2; // шаг изменения ШИМ
static const int pwm_step_time = 100; // время одного шага изменения ШИМ
static int stled;
int pwm = stled;
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
} // выводим в сериал порт значение полученных данных
String strTopic = String(topic); //получаем название топика
if (strTopic == "home/kinozal/led") //проверяем из нужного ли топика пришли данные
{
payload[length] = 0; //чистим от мусора, длинна строки
String strPayload = String((char*)payload); //считываем значение топика
int val = strPayload.toInt(); //конвертируем для шим
int stled = map(val, 0, 100, 0, 255); //приводим значение 0-100 в значение 255-0
while (pwm != new_pwm) {
int next_pwm = pwm + (pwm < new_pwm ? pwm_step : -pwm_step);
if ((pwm < new_pwm && next_pwm > new_pwm) ||
(pwm > new_pwm && next_pwm < new_pwm))
pwm = new_pwm;
else
pwm = next_pwm;
analogWrite(LEDPIN, pwm);
delay(pwm_step_time);
}
stled = new_pwm;
Serial.print(" => ");
Serial.print(pwm); // для отладки
}
}
например если из камеры выдернуть кабель секунд на 10 и вставить, то видио возобновится, но уже с задержкой 15-20 секунд и так и будет показывать до перезагрузки сервиса.
Как Вы считаете если я sleep увеличу до 60 и подсчитав среднее за минуту, буду сравнивать с эталонным количеством байт и делать restart, поможет? настолько длинный sleep в cron не вызовет каких то проблем в системе?
может лучшим решением будет по крону писать байты в какой-то файл и вторым кроном запускать уже скрипт и там считать?