tools/ipcam_capture: spaces to tabs and support other extensions
This commit is contained in:
parent
2a761a7261
commit
cbd8824e61
@ -8,14 +8,15 @@ DEBUG=0
|
||||
CHANNEL=1
|
||||
FORCE_UDP=0
|
||||
FORCE_TCP=0
|
||||
EXTENSION="mp4"
|
||||
|
||||
die() {
|
||||
echo >&2 "error: $@"
|
||||
exit 1
|
||||
echo >&2 "error: $@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
cat <<EOF
|
||||
usage: $PROGNAME [OPTIONS] COMMAND
|
||||
|
||||
Options:
|
||||
@ -29,54 +30,62 @@ Options:
|
||||
--channel 1|2
|
||||
|
||||
EOF
|
||||
exit
|
||||
exit
|
||||
}
|
||||
|
||||
validate_channel() {
|
||||
local c="$1"
|
||||
case "$c" in
|
||||
1|2)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
die "Invalid channel"
|
||||
;;
|
||||
esac
|
||||
local c="$1"
|
||||
case "$c" in
|
||||
1 | 2)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
die "Invalid channel"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
[ -z "$1" ] && usage
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--ip|--port|--creds|--outdir)
|
||||
_var=${1:2}
|
||||
_var=${_var^^}
|
||||
printf -v "$_var" '%s' "$2"
|
||||
shift
|
||||
;;
|
||||
case "$1" in
|
||||
--ip | --port | --creds | --outdir)
|
||||
_var=${1:2}
|
||||
_var=${_var^^}
|
||||
printf -v "$_var" '%s' "$2"
|
||||
shift
|
||||
;;
|
||||
|
||||
--debug)
|
||||
DEBUG=1
|
||||
;;
|
||||
--debug)
|
||||
DEBUG=1
|
||||
;;
|
||||
|
||||
--force-tcp)
|
||||
FORCE_TCP=1
|
||||
;;
|
||||
--force-tcp)
|
||||
FORCE_TCP=1
|
||||
;;
|
||||
|
||||
--force-udp)
|
||||
FORCE_UDP=1
|
||||
;;
|
||||
--force-udp)
|
||||
FORCE_UDP=1
|
||||
;;
|
||||
|
||||
--channel)
|
||||
CHANNEL="$2"
|
||||
shift
|
||||
;;
|
||||
--channel)
|
||||
CHANNEL="$2"
|
||||
shift
|
||||
;;
|
||||
|
||||
*)
|
||||
die "Unrecognized argument: $1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
--mov)
|
||||
EXTENSION="mov"
|
||||
;;
|
||||
|
||||
--mpv)
|
||||
EXTENSION="mpv"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "Unrecognized argument: $1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -z "$OUTDIR" ] && die "You must specify output directory (--outdir)."
|
||||
@ -86,25 +95,25 @@ done
|
||||
validate_channel "$CHANNEL"
|
||||
|
||||
if [ ! -d "${OUTDIR}" ]; then
|
||||
mkdir "${OUTDIR}" || die "Failed to create ${OUTDIR}/${NAME}!"
|
||||
echo "Created $OUTDIR."
|
||||
mkdir "${OUTDIR}" || die "Failed to create ${OUTDIR}/${NAME}!"
|
||||
echo "Created $OUTDIR."
|
||||
fi
|
||||
|
||||
args=
|
||||
if [ "$DEBUG" = "1" ]; then
|
||||
args="$args -v info"
|
||||
args="$args -v info"
|
||||
else
|
||||
args="$args -nostats -loglevel warning"
|
||||
args="$args -nostats -loglevel warning"
|
||||
fi
|
||||
|
||||
if [ "$FORCE_TCP" = "1" ]; then
|
||||
args="$args -rtsp_transport tcp"
|
||||
args="$args -rtsp_transport tcp"
|
||||
elif [ "$FORCE_UDP" = "1" ]; then
|
||||
args="$args -rtsp_transport udp"
|
||||
args="$args -rtsp_transport udp"
|
||||
fi
|
||||
|
||||
[ ! -z "$CREDS" ] && CREDS="${CREDS}@"
|
||||
|
||||
ffmpeg $args -i rtsp://${CREDS}${IP}:${PORT}/Streaming/Channels/${CHANNEL} \
|
||||
-c copy -f segment -strftime 1 -segment_time 00:10:00 -segment_atclocktime 1 \
|
||||
"$OUTDIR/record_%Y-%m-%d-%H.%M.%S.mp4"
|
||||
-c copy -f segment -strftime 1 -segment_time 00:10:00 -segment_atclocktime 1 \
|
||||
"$OUTDIR/record_%Y%m-%d-%H.%M.%S.${EXTENSION}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user