ffmpeg截图(关键帧截图)

1.rtsp流截图

ffmpeg --stimeout 1000000 -rtsp_transport tcp -i rtsp://xxx -vf select='eq(pict_type,PICT_TYPE_I)' -vsync vfr -ss 00:00:00.000 -vframes 1 -s 640x480 -y output.jpg -hide_banner

        参数解释

        ● -stimeout 1000000:设置socket超时时间为1000000微秒(us),即1秒(s)。

        ● -rtsp_transport tcp:指定RTSP传输协议为TCP。(降低截图花屏概率)

        ● -i rtsp://xxx:输入RTSP流的URL地址。

        ● -vf select='eq(pict_type,PICT_TYPE_I)':使用视频滤镜选择关键帧(I帧)。

        ● -vsync vfr:以可变帧率同步视频流。

        ● -ss 00:00:00.000:从视频开始处开始处理。

        ● -vframes 1:只输出一帧图像。

        ● -s 640x480:设置输出图像的分辨率为640x480。

        ● -y output.jpg:输出文件名为output.jpg,如果已存在同名文件则覆盖。

        ● -hide_banner:隐藏FFmpeg的版本信息和版权信息。

2.h264或h265文件截图

#如果h265文件下面test.h264可以替换对应h265文件例如test.h265
ffmpeg -i test.h264 -vf select='eq(n,0)' -vframes 1 -s 640x480 -y output.jpg -hide_banner

        参数解释

        ● -i test.h264: 指定输入文件为 test.h264。这个文件可能是一个H.264编码的视频文件。

        ● -vf select='eq(n,0)': 使用视频滤镜(video filter)来选择帧。select 滤镜的 eq(n,0) 表达式表示只选择序号(n)为0的帧,也就是视频的第一帧。

        ● -vframes 1: 限制输出的帧数为1,结合 select 滤镜,这通常用于提取视频的第一帧作为静态图像。

        ● -s 640x480: 设置输出图像的大小为 640x480 像素。

        ● -y output.jpg: 指定输出文件名为 output.jpg。如果该文件已存在,-y 选项会覆盖它,而不是询问用户是否要覆盖。

        ● -hide_banner: 隐藏FFmpeg的启动横幅和版权信息,这样在运行FFmpeg时不会显示这些信息。

        总结来说,这个命令的作用是从一个H.264编码的视频文件 test.h264 中提取第一帧,将其大小调整为 640x480 像素,并保存为JPEG格式的图片 output.jpg。

  • 63
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值