java使用ffmpeg截图rtmp直播流

1.首先安装ffmpeg工具,进入ffmpeg官网下载对应自己版本的工具并安装。
2.安装之后配置环境变量,我的是linux版本的,配置路径:/usr/local/bin/ffmpeg,安装教程可参考:https://blog.csdn.net/u014470361/article/details/90705336
3.运行命令(湖南卫视rtmp流):

ffmpeg -i "rtmp://58.200.131.2:1935/livetv/hunantv" -f image2 -ss 0 -vframes 1 -s 220*220 /tmp/a.jpg

-i “rtmp。。。” :后接地址

-y :覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了

-t 0.001 :设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持

-ss 1 :延迟1秒后开始

-f image2 :以图片格式保存

-r 1 :帧数,此处为截取一帧

在这里插入图片描述
最后生成a.jpg文件:
在这里插入图片描述
java代码调用如下:

public static void processBuilderCommand(String RtmpUrl,String FFmpegPath, String imageName, Integer x, Integer y, Integer w, Integer h) throws Exception {


        List<String> commands = new java.util.ArrayList<String>();
        commands.add(FFmpegPath);
        commands.add("-i");
        commands.add(RtmpUrl);
        commands.add("-vf");
        commands.add("crop=" + w + ":" + h + ":" + x + ":" + y);
        commands.add("-r");
        commands.add("1");
        commands.add("-q:v");
        commands.add("2");
        commands.add("-f");
        commands.add("image2");
        commands.add("-t");
        commands.add("1");
        commands.add(imageName);
        ProcessBuilder builder = new ProcessBuilder();
        builder.command(commands);
        builder.start();

        log.info(RtmpUrl + ", " + DateUtil.now() + " 截取成功...");
    }

注:FFmpegPath是工具的路径“/usr/local/bin/ffmpeg”,RtmpUrl是rtmp流的url,imageName是路径+文件名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值