ffmpeg命令行获取RTSP流并每秒截取一张解码存储为jpg
由于项目的需求是要从IP摄像头的视频流每隔1秒截取帧数据并解码存为jpg供分析用,第一时间就想到了ffmpeg去实现。
准备工作
ubuntu16.04的系统
一台IP摄像头
安装FFMEPG
sudo apt-get install ffmpeg
每隔1秒截取一张图片并覆盖在同一张图片上
ffmpeg -i "rtsp://admin:123456@192.168.8.148:554/cam/realmonitor?channel=1&subtype=0" -y -f image2 -r 1/1 -updatefirst 1 img.jp
每隔1秒截取一张图片并都按一定的规则命名来生成图片
ffmpeg -i "rtsp://admin:123456@192.168.8.148:554/cam/realmonitor?channel=1&subtype=0" -y -f image2 -r 1/1 img%03d.jpg
每隔1秒截取一张指定分辨率的图片并覆盖在同一张图片上
ffmpeg -i "rtsp://admin:123456@192.168.8.148:554/cam/realmonitor?channel=1&subtype=0" -y -f image2 -r 1/1 -updatefirst 1 -s 640x480 img.jpg
这里顺便列一下目前用到的摄像头的RTSP地址格式,这里要注意大华的rtsp地址因为带有&
符号,在shell直接执行的时候如果没有将rtsp地址用""
包起来 则需要用\
转义
#海康主流 rtsp://admin:123456@192.168.1.160:554/h264/ch1/main/av_stream #海康子流 rtsp://admin:123456@192.168.1.160:554/h264/ch1/sub/av_stream #大华主流 rtsp://admin:pheicloud408@192.168.8.148:554/cam/realmonitor?channel=1&subtype=0 #大华子流 rtsp://admin:pheicloud408@192.168.8.148:554/cam/realmonitor?channel=1&subtype=1