ffmpeg录屏及截图

"""录屏"""
# 先将rtsp流转为rtmp流 
ffmpeg -i "rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0" -acodec copy -vcodec copy -f flv "rtmp://192.168.3.208:1935/live/play"
# 利用rtmpdump录屏
rtmpdump -v -m 0 -r rtmp://192.168.3.208:1935/live/play -o /tmp/target.mp4
    -v:是说明视频流是一个直播流
    -m:是超时时间,0表示不超时
    -r:表示rtmp的url
    -o: 输出文件
        
"""截图"""
ffmpeg -re -stream_loop -1 -i "(rtsp)/(rtmp链接地址 live=1)" -y -f mjpeg -vframes 1 /tmp/da.jpg && echo succeeded||echo failed  # rtmp链接可能会中断正在中转的rtsp进程
    -i: rtsp地址
    -y: 强制覆盖文件(防止因为重名出错)
    -f: 图片格式
    -vframes: 指定抽取的帧数,如-vframes 120,指定抽取120张
    -s:格式大小,如-s 640x360
    -ss:起始时间,如-ss 01:30:14,从01:30:14开始
    -q:v 2:图片质量
    -r:每秒提取的帧数, -r 1就是每秒抽取1帧
    -t: 指定操作的持续时间("-t 0.01"相当于取原视频中的第10s~10.01秒), 一般用于截取视频使用, 而不是用在截图上
    -re:根据文件真实的帧率来读取文件,生成实时刷新的直播流,而不是一下子按照电脑的最大性能把文件一下子读进去。实时视频时需要用到
    -stream_loop -1:指定循环读取视频源的次数,-1为无限循环,在这里设置可以防止刷新浏览器导致推流结束还要重新输入命令推流
注意:要放在 -i 命令前
# live=1:此选项用于rtmp流区分是否为直播流
 rtmp的play包,有几个参数:
-2:猜这个流类型,先试live,然后vod。
-1:live类型,若这个流是点播,就失败。
0:vod类型,若这个流是直播,就失败。

你可能感兴趣的:(ffmpeg录屏及截图)