[FFmpeg-user] Fill gaps among captured RTSP streams

Wu-bin Zhen vvubin at gmail.com
Tue Apr 12 20:06:26 CEST 2016


I have an IP encoder with a built-in RTSP server, and the command "ffmpeg
-rtsp_transport tcp -i rtsp://<ip_address>/live.sdp -c copy
captured_file.mkv" works perfectly without any issues.

The problem is that the IP encoder could be rebooted anytime, which
interrupts the ffmpeg capturing. I used a shell script to restart the
ffmpeg capturing infinitely so nothing will be lost.

The only issue is to fill the gap between two partial video files. I
recorded the ffmpeg start timestamp every time it restarts, use it to
generate an empty video block with the duration (2nd ffmpeg timestamp - 1st
ffmpeg timestamp + 1st RTSP video duration), and use concat to merge 1st
partial video + generated_gap + 2nd partial video.

This method works, but it's not accurate because of the several seconds of
initializing and buffering. Is there a way to get and store the timestamp
when the first frame is being written? I googled some people saying to use
pts/dts from RTCP, but couldn't find an exact way to archive it with ffmpeg.

Please advise how to fill the gaps among partial RTSP streams precisely
with ffmpeg.

Thanks,
-w


More information about the ffmpeg-user mailing list