我正在录制RTSP流从相机到.mp4文件使用ffmpeg,我想滚动成多个文件与10分钟长的每个视频。
目前我有一个解决方案:我正在设置一个时间长度'00:10:00',在它完成后,我将用新的进程重新启动下面的命令。示例:
ffmpeg -rtsp_transport tcp -i <rtsp_url> -acodec copy -vcodec copy -t 00:10:00 D:\video_test.mp4但是这个解决方案使得摄像头变得不稳定,RTSP流最终被破坏,并出现以下错误:
rtsp://10.96.41.14:9024/user=xxxx_password=xxx_channel=1_stream=0.sdp?real_stream: Operation not permitted我想找到更好的解决方案来保持与RTSP流的持续连接(而不是创建带有-t标志的新进程)。
有没有人有更好的主意来持续记录流媒体?谢谢
发布于 2019-06-03 17:20:46
FFmpeg有一个segment多路复用器,你可以使用它。
基本形式是
ffmpeg -rtsp_transport tcp -i <rtsp_url> -c copy -f segment -segment_time 600 stream_piece_%d.mp4请注意,分段复用器在关键帧处拆分,因此在获得的分段持续时间中可能会有较小的偏差。
发布于 2019-07-18 18:27:09
我想将@Gyan的答案扩展为我正在使用的解决方案。
在我的例子中,我想把流分割成普通的视频(可以回放),视频每小时0分钟开始。所以我使用了选项reset_timestamps和segment_atclocktime。
下面是我的完整ffmpeg命令:
ffmpeg -rtsp_transport tcp -i <rtsp_url> -f segment -strftime 1 \
-segment_time 00:10:00 -segment_atclocktime 1 -segment_clocktime_offset 30 \
-segment_format mp4 -an -vcodec copy -reset_timestamps 1 \
record_%Y-%m-%d-%H.%M.%S.mp4https://stackoverflow.com/questions/56423581
复制相似问题