на сервере Linux, у меня установлен FFmpeg, который передает видео с китайской недорогой IP-камеры на сервер Twitch или Youtube.Через несколько часов видео не видно, но на стороне сервера FFmpeg все еще работает, а IP-камера отвечает на команду «ping».
Вот скрипт, который я использую:
#
# Camera IP
#
AQUARIUM_CAM_IP="192.168.123.102"
#
# Aquarium data file
#
AQUARIUM_DATA_FILE="/run/aquarium-cam/data.txt"
#
# FFmpeg parameters
#
FFMPEG_LOG_LEVEL=fatal
# Bitrate (1000k = 1Mbit/s) and encoding speed (affects CPU) and number of CPU cores to use
FFMPEG_VBR="1000k"
FFMPEG_QUAL="ultrafast"
FFMPEG_THREADS="1"
# Streaming source
FFMPEG_CAM_RTSP_SRC="rtsp://${AQUARIUM_CAM_IP}:554/user=admin&password=&channel=1&stream=0.sdp" # Camera source
# Streaming destination
FFMPEG_TWITCH_STREAM_URL_DST="rtmp://live-ber.twitch.tv/app" # RTMP stream URL
FFMPEG_TWITCH_KEY="<twitch_key>"
# Data overlay setup
FFMPEG_TEXT_OVERLAY_FONT_PATH="OpenSans-Regular.ttf"
FFMPEG_TEXT_OVERLAY_FONT_SIZE=25
FFMPEG_TEXT_OVERLAY_OFFSET_X=5
FFMPEG_TEXT_OVERLAY_OFFSET_Y=60
FFMPEG_TEXT_OVERLAY_RELOAD=1
FFMPEG_TEXT_OVERLAY_BOX="1"
FFMPEG_TEXT_OVERLAY_BOX_BORDER_WIDTH="5"
FFMPEG_TEXT_OVERLAY_BOX_COLOR="blue@0.5"
скрипт FFmpeg:
ffmpeg \
-loglevel ${FFMPEG_LOG_LEVEL} -f lavfi -i anullsrc \
-rtsp_transport tcp \
-i "${FFMPEG_CAM_RTSP_SRC}" \
-vcodec libx264 -pix_fmt yuv420p -preset ${FFMPEG_QUAL} -g 75 -b:v ${FFMPEG_VBR} \
-vf "\
drawtext=fontfile=${FFMPEG_TEXT_OVERLAY_FONT_PATH}:textfile=${AQUARIUM_DATA_FILE}:\
x=${FFMPEG_TEXT_OVERLAY_OFFSET_X}:y=${FFMPEG_TEXT_OVERLAY_OFFSET_X}:\
reload=${FFMPEG_TEXT_OVERLAY_RELOAD}: \
fontcolor=white:fontsize=${FFMPEG_TEXT_OVERLAY_FONT_SIZE}:\
box=${FFMPEG_TEXT_OVERLAY_BOX}:boxborderw=${FFMPEG_TEXT_OVERLAY_BOX_BORDER_WIDTH}:\
boxcolor=${FFMPEG_TEXT_OVERLAY_BOX_COLOR}"\
-threads ${FFMPEG_THREADS} -bufsize 512k \
-f flv "${FFMPEG_TWITCH_STREAM_URL_DST}/${FFMPEG_TWITCH_KEY}"
Другая странная вещь заключается в том, что при запуске FFmpeg и потокеначало Загрузка ЦП составляет около 30% в случае, когда нет потока, но FFmpeg все еще активен Загрузка ЦП ниже 20% или меньше.
Есть идеи, как решить проблему такого рода?Имеет ли FFmpeg какой-либо параметр для завершения, если нет «потока» или если он потерял соединение с камерой?