Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Save continuous RTSP stream to 5-10 minute long mp4 files

How can I keep the flow (protocol rtsp, codec h264) in file (container mp4)? That is, on inputting an endless stream (with CCTV camera), and the output files in mp4 format size of 5-10 minutes of recording time.

OS: debian, ubuntu Software: vlc, ffmpeg (avconv)

Currently this scheme is used:

cvlc rtsp://admin:[email protected]:554/ch1-s1 --sout=file/ts:stream.ts
ffmpeg -i stream.ts -vcodec copy -f mp4 stream.mp4

But it can not record video continuously (between restarts vlc loses about 10 seconds of live video).

like image 279
Ruslan Sharipov Avatar asked May 05 '12 06:05

Ruslan Sharipov


2 Answers

See this question and answer on Server Fault. In short, switch tools. avconv will do what you want. (ffmpeg has become avconv.)

The feature you are looking for is called segmentation. Your command line would look something like this:

avconv -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"

like image 80
Alexander Garden Avatar answered Oct 27 '22 21:10

Alexander Garden


Alexander Garden solution works for ffmpep using the version below. Replace avconv with ffmpeg.

./ffmpeg -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"

I'm including this header because of the FFmpeg confusion over versions, the ubuntu schism and rapid development.

ffmpeg version N-80023-gd55568d Copyright (c) 2000-2016 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1) configuration: --prefix=/home/rhinchley/q10/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/rhinchley/q10/ffmpeg_build/include --extra-ldflags=-L/home/rhinchley/q10/ffmpeg_build/lib --bindir=/home/rhinchley/q10/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 55. 24.100 / 55. 24.100 libavcodec 57. 42.100 / 57. 42.100 libavformat 57. 36.100 / 57. 36.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 45.100 / 6. 45.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100

like image 36
Ron Hinchley Avatar answered Oct 27 '22 23:10

Ron Hinchley