這裡介紹幾種儲存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進行播放。
當然也可以藉助映像介面進行操作,這個就不介紹了。