ffmpeg RTSP 레코딩 스크립트

#!/bin/bash
############################################################
#
# ffmpeg RTSP 스트리밍 레코딩 스크립트
#
# crontab -e
# */10 0-5 * * * /home/armbian/scripts/ffmpeg_rtsp_record.sh
#
############################################################
RECORD_DIR="/st4000dm004/cctv/rtsp"
CAMERA_MODEL="es200k"

# RTSP 주소 정보
RTSP_ID="admin"
RTSP_PW='<mypasswd>'
RTSP_URL="rtsp://${RTSP_ID}:${RTSP_PW}@192.168.1.51:554/11"

# mp4 파일당 몇초의 녹화시간을 기록할 것인가
SEGMENT_SEC=1800

mkdir -p ${RECORD_DIR} > /dev/null

if ! pgrep -x "ffmpeg" > /dev/null
then
  ffmpeg -i ${RTSP_URL} -vcodec copy -c:a aac -f segment -segment_time ${SEGMENT_SEC} -reset_timestamps 1 -strftime 1 -map 0 "${RECORD_DIR}/%Y%m%d-%H%M%S_${CAMERA_MODEL}.mp4"
fi

#!/bin/bash
############################################################
#
# openRTSP를 죽인다.
#
# crontab -e
# */30 6-23 * * * /home/armbian/scripts/ffmpeg_rtsp_kill.sh
#
############################################################
RECORD_DIR="/st4000dm004/cctv/rtsp"

# 2일이 지난 자료는 삭제
OLDDATA_EXP_MIN=+2880

if pgrep -x "ffmpeg" > /dev/null
then
  killall -SIGINT ffmpeg
  sleep 2

  # $OLDDATA_EXP_MIN 보다 오래된 동영상 파일은 삭제
  find ${RECORD_DIR} -mmin ${OLDDATA_EXP_MIN} -name "*.mp4" -type f -exec rm -f {} \;

  # 6Mb보다 작은 동영상 파일은 삭제
  find ${RECORD_DIR} -size -6M -name "*.mp4" -type f -exec rm -f {} \;
fi

sync
위로 스크롤