Portál AbcLinuxu, 10. května 2025 04:21
#!/bin/bash export FFREPORT=file=/dev/shm/ffmpeg-girova-$(date +%Y%m%d_%H%M%S).log export ffserverbin=/usr/bin/ffserver export ffmpegbin=/usr/bin/ffmpeg export cam1="-v verbose -report -stimeout 2000000 -max_delay 1000000 -rtsp_transport tcp -rtsp_flags prefer_tcp -rtbufsize 20M -max_error_rate 1.0 -r 20 -i rtsp://10.1.xxx.xx:554/live.sdp -an -vf fps=20 -threads 2 http://localhost:8090/feed2.ffm" if pgrep -x "$ffserverbin" > /dev/null 2>&1 then echo "FFSERVER jiz bezi" > /dev/null else sleep 2 eval $ffserverbin & fi done sleep 2 eval $ffmpegbin $cam1 & while : do if pgrep -x "$ffmpegbin $cam1" > /dev/null 2>&1 then echo "Kamera Girova bezi" > /dev/null else echo "Stream nebezi, restartuji proces" && eval $ffmpegbin $cam1 & fi sleep 10 donePrikaz
pgrep -x "$ffmpegbin $cam1"
se neprovede spravne, nevypise mi radek odpovidajici procesu a parametrum a tak cela while smycka nefunguje spravne a pokousi se tak spoustet porad dokola eval $ffmpegbin $cam1 &. Kde prosim delam chybu? Uz se s tim patlam nekolik dni, a i pres nalezene priklady na stackoverflow si s tim nevim moc rady.. Diky za odpovedi
. $ffmpegbin $cam1 &No a konecne nebude jednoduzsi si zjistit PID procesu na backgroudu?
. $ffmpegbin $cam1 & PID=$! echo $PID
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.