我不确定这里是否是发布此文的正确地方,但我还是想发布一下。
我使用 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
EDIT2:不幸的是,这有时仍会使文件变大。仍在尝试寻找解决方法。
答案1
您可以尝试以下解决方法:
#!/bin/sh
while [ 1 ] ; do
ffmpeg ... (only record for one hour)
done
每个文件的长度仅为一小时。在命令之后,您可以选择输入此代码以在当前迭代完成ffmpeg
后停止录制:ffmpeg
if [ -e "abort" ] ; then
rm "abort"
break
fi