42 lines
935 B
Bash
42 lines
935 B
Bash
#! /bin/bash
|
|
|
|
echo to start: ${@:-83}
|
|
|
|
for i in "${@:-83}"; do
|
|
echo starting $i...
|
|
ffmpeg \
|
|
-threads 0 \
|
|
-nostdin \
|
|
-nostats \
|
|
-loglevel error \
|
|
-i rtsp://192.168.0.$i:8554/unicast \
|
|
-an \
|
|
-map 0 \
|
|
-force_key_frames "expr:gte(t,n_forced*9)" \
|
|
-f segment \
|
|
-segment_time ${SEG:-10} \
|
|
-segment_format mp4 \
|
|
-strftime 1 \
|
|
-minrate .05k \
|
|
-vcodec copy \
|
|
"/tmp/ffmpeg_cap/ffmpeg_capture-$i-%Y%m%d_%H%M%S.mp4" \
|
|
-vf "select=gt(scene\,0.003),setpts=N/(15*TB)" \
|
|
2>&1 \
|
|
< /dev/null \
|
|
| grep -vE 'RTP: missed|max delay reached. need to consume packet|decode_slice_header|no.frame|non.existing.PPS|Last.message.repeated' \
|
|
>> ./ffmpegs.log &
|
|
done
|
|
|
|
clean() {
|
|
kill -9 $(jobs -p)
|
|
}
|
|
trap clean EXIT ERR
|
|
|
|
for i in "${@:-83}"; do
|
|
if ! wait -n 1; then
|
|
echo "Something died" >&2
|
|
exit 1
|
|
fi
|
|
exit 0
|
|
done
|