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

  

  

原文地址:https://www.cnblogs.com/zcyd/p/14700685.html