2

Я не уверен, является ли здесь правильным местом, чтобы отправить это, но здесь идет.

Я использую ffmpeg (ubuntu v3.2.7) для записи потокового вещания с камеры rstp с помощью этой команды.

ffmpeg -stimeout 600 -rtsp_transport udp -i rtsp://192.168.2.183/unicast -c copy -map 0 -f segment -segment_time 3600 -segment_wrap 100 -segment_format mov -reset_timestamps 1 -strftime 1 "/mnt/CCTV/XiaoFang/Bedroom/Capture-%Y-m-%d_%H-%M.mp4"

Все отлично работает, пока не будет времени, он будет непрерывно записывать один и тот же файл, как этот ошибка

Есть идеи, почему это происходит? Или обходной путь для этого?

Если я попытаюсь воспроизвести это видео, оно будет воспроизводиться только в первые несколько часов и последние несколько часов.


РЕДАКТИРОВАТЬ:

#!/bin/sh
while [ 1 ] ; do

ffmpeg -stimeout 600 -rtsp_transport udp -i rtsp://192.168.2.183/unicast -c copy -map 0 -f segment -segment_time 5 -segment_wrap 100 -segment_format mov -reset_timestamps 1 -strftime 1 "/mnt/CCTV/XiaoFang/Bedroom/Capture-%Y-m-%d_%H-%M-%S.mp4"

if [ -e "abort" ] ; then

    rm "abort"

    break

fi

done

РЕДАКТИРОВАТЬ 2: К сожалению, это все еще иногда делает его большим файлом. Все еще пытаюсь найти обходной путь.

1 ответ1

1

Вы можете попробовать что-то вроде этого в качестве обходного пути:

#!/bin/sh

while [ 1 ] ; do
    ffmpeg ... (only record for one hour)
done

Каждый файл будет длиться всего час. После команды ffmpeg вы можете дополнительно вставить этот код, чтобы остановить запись после завершения текущей итерации ffmpeg :

if [ -e "abort" ] ; then
    rm "abort"
    break
fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .