I need to download from an RTSP link the content recorded on an IP camera from a start and end date and time. It would also be valid to be able to download it from X seconds of start of the recording to seconds of end.
With this ffmpeg command I download the recording content from the RTSP link only from the beginning of the recording content, with the duration in seconds passed by the -t parameter:
ffmpeg -rtsp_transport tcp -i <RTSP_URL> -r 30 -t <SECONDS> -y -vf scale=800:-1 -c:v libx264 -crf 20 -preset fast -c:a aac -strict experimental -b:a 192k -ac 2 /path/to/video/filename.mp4
I tried to download with ffmpeg the content using temporary media fragment URIs (https://www.w3.org/2008/WebVideo/Fragments/wiki/UA_Server_RTSP_Communication#.281.29_Temporal_Media_Fragment_URIs) but it doesn't do it correctly:
ffmpeg -rtsp_transport tcp -i <RTSP_URL>#t=10,20 -r 30 -y -vf scale=800:-1 -c:v libx264 -crf 20 -preset fast -c:a aac -strict experimental -b:a 192k -ac 2 -ss 19:09:13 -t 5 /path/to/video/filename.mp4
I have also tried with ffmpeg to use the -ss parameter to try to extract the recording from a specific hour, minute and second (https://trac.ffmpeg.org/wiki/Seeking) but when running it gets stuck, it does not advance:
ffmpeg -rtsp_transport tcp -i <RTSP_URL> -r 30 -y -vf scale=800:-1 -c:v libx264 -crf 20 -preset fast -c:a aac -strict experimental -b:a 192k -ac 2 -ss 19:09:13 -t <SECONDS> /path/to/video/filename.mp4
In case it's helpful, to get the RTSP link, I'm using the ONVIF protocol with a NodeJS library (https://github.com/agsh/onvif). I have also reviewed the ONVIF documentation available but have not found a way to download recorded content between start and end dates and times.
Do you know how to download from an RTSP link the content recorded on an IP camera from a start date and time and end date, or download it from X seconds of recording start to seconds of end?
I am also open to use other tools or commands that can do this.