Всем привет. Собственно кратко в названии. Стримится потоковый адрес в ютуб. Стримит ffmpeg с VPS. Частенько сигнал подвисает . Варианта 2 , или просто висит , или изредка процесс просто исчезает. Нужно как то автоматизировать процесс , если сдохло или зависло - просто перезапустить.
Если кто в теме , задайте вопросы для уточнения.
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
-
- Сообщения: 10015
- Зарегистрирован: 27 авг 2016, 22:57
- Решено: 215
- Откуда: НН
- Благодарил (а): 815 раз
- Поблагодарили: 3011 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
С перезапуском умершего процесса все несложно, два стандартных варианта
1. скрипт по крону чтоб раз в минуту искал процессы ffpmeg (условно если
2. Обернуть в service-юнит systemd, вроде бы
А вот с зависшим чуть сложней, хрен его знает как понять что он молчит. Надо смотреть по статусу процесса меняется ли он, чтоб понять критерии для триггера перезапуска.
1. скрипт по крону чтоб раз в минуту искал процессы ffpmeg (условно если
ps ax | grep ffmpeg | grep -v grep
меньше единицы ) запускать новый.2. Обернуть в service-юнит systemd, вроде бы
simple
типом будет, и указать Restart=Always
или on-failure
А вот с зависшим чуть сложней, хрен его знает как понять что он молчит. Надо смотреть по статусу процесса меняется ли он, чтоб понять критерии для триггера перезапуска.
-
Автор темы - Сообщения: 371
- Зарегистрирован: 13 июн 2021, 14:08
- Решено: 2
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Не совсем так. Большую часть времени идёт одновременно 2 стрима.
Не то слово. Стрим запускается такой командой --
nohup ./ross1.sh > /dev/null &
Нагуглил мнение что можно как то притормозить сваливание лога в нуль , и там ловить ошибки или просто прекращение лога за определённый промежуток времени.
Есть ньюанс , в скриптах я как свинья в апельсинах Разжевать надо для понимания логики.
-
- Сообщения: 4511
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1995 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Проще так: pidof ffmpeg
Можно даже просто
pidof ffmpeg || чего_запускать
- сработает если не найдет pid от запущенного ffmpeg, т.е. нету ни одного такого процесса.На счет зависания - там надо смотреть как именно висит. Если в состоянии зомби или wait - это можно отследить. Третья колонка (STAT) вывода ps как раз про это.
Но вообще-то вы сами себе проблему создали вызовом скрипта через nohup. Именно он не дает нормально ошибки обрабатывать и может приводить к зависаниям молча.
-
Автор темы - Сообщения: 371
- Зарегистрирован: 13 июн 2021, 14:08
- Решено: 2
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
А как я должен его запускать на удалённом виртуальном сервере ? Не закрывать у себя терминал ?
-
Автор темы - Сообщения: 371
- Зарегистрирован: 13 июн 2021, 14:08
- Решено: 2
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Слышал , хотя и не использовал. Но это никак меня не приближает к основному вопросу. Только уберётся команда
nohup
.В скрипте просто одна команда
ffmpeg
с соответствующими параметрами и опциями. В гугле увидел опцию для утилиты такого вида ffmpeg
-loglevel warning 2>> ng1.err
, может приспособить это для вывода варнингов и ошибок , при появлении делать перезапуск со стиранием файла ошибок?Вся строка в скрипте выглядит так
ffmpeg -re -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 4
-i https://ххххххххх.ххххххх.хххх.m3u8 -ignore_loop 0 -i flag.gif -filter_complex "overlay=822:20"
-b:v 1000k -q:v 5 -s 854x480 -f flv rtmp://x.rtmp.youtube.com/live2/ключ_трансляции
-
- Сообщения: 4511
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1995 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Еще как приближает. Сможете увидеть - что именно и как висит, с какой ошибкой. И уже от этого можно будет отталкиваться.
-
Автор темы - Сообщения: 371
- Зарегистрирован: 13 июн 2021, 14:08
- Решено: 2
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Обошёлся и без этого. Вставил в команду дополнение -
-loglevel error 2> ewsol.err
, теперь при зависе создаётся файл и выдаёт кучу разнообразных ошибок. Файл под спойлером.
[tls @ 0x7f33580029c0] Error in the pull function.
[tls @ 0x55d357887400] Error in the pull function.
[tls @ 0x55d357b9d1c0] Error in the pull function.
[tls @ 0x7f3358338b00] Error in the pull function.
[tls @ 0x7f3358052640] Error in the pull function.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
Invalid UE golomb code
[h264 @ 0x55d357bd2f00] mb_type -1094995534 in P slice too large at 0 34
[h264 @ 0x55d357bd2f00] error while decoding MB 0 34
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 2.8 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] TYPE_FIL: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358338b00] Error in the pull function.
[tls @ 0x7f3358628680] Error in the pull function.
[tcp @ 0x7f3358688580] Connection to tcp://radio-live-mg.rtr-vesti.ru:443 failed: Connection timed out
[tls @ 0x7f3358411b80] Error in the pull function.
[tls @ 0x7f3358411b80] The specified session has been invalidated for some reason.
[aac @ 0x55d357bcf680] decode_band_types: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 0x55d357bd2f00] corrupted macroblock 41 26 (total_coeff=-1)
[h264 @ 0x55d357bd2f00] error while decoding MB 41 26
[tls @ 0x7f33580b16c0] Error in the pull function.
[tls @ 0x7f33588414c0] Error in the pull function.
[tls @ 0x7f3358843b80] Error in the pull function.
[tls @ 0x7f335853be80] Error in the pull function.
[tls @ 0x7f335853be80] The specified session has been invalidated for some reason.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
Invalid UE golomb code
[h264 @ 0x55d357bd2f00] cbp too large (3199971767) at 7 27
[h264 @ 0x55d357bd2f00] error while decoding MB 7 27
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] decode_band_types: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 3.13 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358023f40] Error in the pull function.
[tls @ 0x7f335859ea80] Error in the pull function.
[tls @ 0x7f33582e5200] Error in the pull function.
[tls @ 0x7f3358617780] Error in the pull function.
[tls @ 0x7f33585fd640] Error in the pull function.
[tls @ 0x7f33581d12c0] Error in the push function.
[tls @ 0x7f33585065c0] Error in the pull function.
[tls @ 0x7f335861cc80] Error in the pull function.
[tls @ 0x7f3358815680] Error in the pull function.
[tls @ 0x7f335861cc80] The specified session has been invalidated for some reason.
[aac @ 0x55d357bcf680] Number of bands (52) exceeds limit (41).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 3.10 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f33586c8d80] Error in the pull function.
[tls @ 0x7f3358816080] Error in the pull function.
[tls @ 0x7f33587c5880] Error in the pull function.
[tls @ 0x7f335842f3c0] Error in the pull function.
[tls @ 0x7f33587e9100] Error in the pull function.
[tls @ 0x7f335843a340] Error in the pull function.
[tls @ 0x7f335806ba40] Error in the pull function.
[tls @ 0x7f335809a440] Error in the pull function.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
[h264 @ 0x55d357bd2f00] corrupted macroblock 60 33 (total_coeff=-1)
[h264 @ 0x55d357bd2f00] error while decoding MB 60 33
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] invalid band type
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] Number of bands (16) exceeds limit (13).
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358309ec0] Error in the pull function.
[tls @ 0x7f33584f6d00] Error in the pull function.
[tls @ 0x7f33580f7780] Error in the pull function.
[tls @ 0x55d357887400] Error in the pull function.
[tls @ 0x55d357b9d1c0] Error in the pull function.
[tls @ 0x7f3358338b00] Error in the pull function.
[tls @ 0x7f3358052640] Error in the pull function.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
Invalid UE golomb code
[h264 @ 0x55d357bd2f00] mb_type -1094995534 in P slice too large at 0 34
[h264 @ 0x55d357bd2f00] error while decoding MB 0 34
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 2.8 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] TYPE_FIL: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358338b00] Error in the pull function.
[tls @ 0x7f3358628680] Error in the pull function.
[tcp @ 0x7f3358688580] Connection to tcp://radio-live-mg.rtr-vesti.ru:443 failed: Connection timed out
[tls @ 0x7f3358411b80] Error in the pull function.
[tls @ 0x7f3358411b80] The specified session has been invalidated for some reason.
[aac @ 0x55d357bcf680] decode_band_types: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 0x55d357bd2f00] corrupted macroblock 41 26 (total_coeff=-1)
[h264 @ 0x55d357bd2f00] error while decoding MB 41 26
[tls @ 0x7f33580b16c0] Error in the pull function.
[tls @ 0x7f33588414c0] Error in the pull function.
[tls @ 0x7f3358843b80] Error in the pull function.
[tls @ 0x7f335853be80] Error in the pull function.
[tls @ 0x7f335853be80] The specified session has been invalidated for some reason.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
Invalid UE golomb code
[h264 @ 0x55d357bd2f00] cbp too large (3199971767) at 7 27
[h264 @ 0x55d357bd2f00] error while decoding MB 7 27
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] decode_band_types: Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 3.13 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358023f40] Error in the pull function.
[tls @ 0x7f335859ea80] Error in the pull function.
[tls @ 0x7f33582e5200] Error in the pull function.
[tls @ 0x7f3358617780] Error in the pull function.
[tls @ 0x7f33585fd640] Error in the pull function.
[tls @ 0x7f33581d12c0] Error in the push function.
[tls @ 0x7f33585065c0] Error in the pull function.
[tls @ 0x7f335861cc80] Error in the pull function.
[tls @ 0x7f3358815680] Error in the pull function.
[tls @ 0x7f335861cc80] The specified session has been invalidated for some reason.
[aac @ 0x55d357bcf680] Number of bands (52) exceeds limit (41).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] channel element 3.10 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f33586c8d80] Error in the pull function.
[tls @ 0x7f3358816080] Error in the pull function.
[tls @ 0x7f33587c5880] Error in the pull function.
[tls @ 0x7f335842f3c0] Error in the pull function.
[tls @ 0x7f33587e9100] Error in the pull function.
[tls @ 0x7f335843a340] Error in the pull function.
[tls @ 0x7f335806ba40] Error in the pull function.
[tls @ 0x7f335809a440] Error in the pull function.
[NULL @ 0x55d357ba7280] reference overflow 59 > 15 or 0 > 15
[h264 @ 0x55d357bd2f00] corrupted macroblock 60 33 (total_coeff=-1)
[h264 @ 0x55d357bd2f00] error while decoding MB 60 33
[h264 @ 0x55d357bd2f00] no frame!
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55d357bcf680] invalid band type
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x55d357bcf680] Number of bands (16) exceeds limit (13).
Error while decoding stream #0:1: Invalid data found when processing input
[tls @ 0x7f3358309ec0] Error in the pull function.
[tls @ 0x7f33584f6d00] Error in the pull function.
[tls @ 0x7f33580f7780] Error in the pull function.
-
- Сообщения: 6884
- Зарегистрирован: 27 авг 2016, 20:03
- Решено: 30
- Откуда: Voskresensk
- Благодарил (а): 1313 раз
- Поблагодарили: 724 раза
- Контактная информация:
Нужен скрипт для перезапуска ffmpeg при зависании или самоубийстве
Не по теме
к названию
[Service]
Restart=on-failure
Restart=on-failure
Кто сейчас на конференции
Сейчас этот форум просматривают: Mail.ru[Bot] и 1 гость