RTSP录像的几种方式
这里介绍几种保存RTSP视频流的几种方式,欢迎补充。首先介绍下环境:操作系统是64位的CentOS 6.2 ,服务器采用的是Darwin Streaming Server 6.0.3 ,摄像头数据源用FFMPEG 0.6进行采集。
下面我以H.264编码为例进行介绍,其他编码格式读者参考相关文档进行扩展。
一、服务端数据采集
用ffmpeg编码H.264数据流:
ffmpeg -f video4linux2 -r 30 -i /dev/video0 -vcodec libx264 -subq 5 -g 250 -qmin 10 -qmax 51 -i_qfactor 0.71 -f rtp rtp://172.16.1.100:20000 > 1.sdp
用DSS进行直播:将这里的1.sdp文件复制到 /usr/local/movies 目录,删除第一行(否则DSS无法识别,如果用ffplay播放的话一定要用第一行的声明)。
rtsp访问地址 : rtsp://172.16.1.100/1.sdp
二、RTSP录像
1、ffmpeg 录像
这里要注意的是参数和编码端的要一致,否则无法进行,录像命令如下:
ffmpeg -loglevel debug -i "rtsp://172.16.1.100/1.sdp" -vcodec libx264 -subq 5 -g 250 -qmin 10 -qmax 51 -i_qfactor 0.71 out.mp4
这里的录像文件为out.mp4,可以用vlc,电影播放机等进行播放。
2、openRTSP录像
openRTSP -t rtsp://172.16.1.100/1.sdp
或者设定时间(比如60秒):
openRTSP -t -d 60 rtsp://172.16.1.100/1.sdp
默认输出文件为video-H264-1,录像文件可以用电影播放机等工具播放。我这里只是做个demo,用到的朋友可以参考相关文档进行订制。
3、VLC录像
这里以windows下vlc2.0.3为例,边播放边录像的命令如下:
vlc -vv rtsp://172.16.1.100/1.sdp :sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=C:\\\\Users\\\\admin\\\\Desktop\\\\4.mp4}} :sout-keep
录像文件可以用VLC进行播放。
当然也可以借助图像界面进行操作,这个就不介绍了。