• FFMPEG 截取RTMP直播流图片命令


    CentOS 6.5  yum安装FFMPEG步骤

    1. 手动添加yum源配置

    vi /etc/yum.repos.d/dag.repo

     
    [dag]
    name=Dag RPM Repository for Red Hat Enterprise Linux
    baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
    gpgcheck=0
    enabled=1

    2.安装

    yum -y install ffmpeg


    ffmpeg截图

    ffmpeg -i "rtmp://10.1.1.31/live/test live=1" -f image2 -ss 0 -vframes 1 -s 220*220 /tmp/a.jpg


    3.Java调用命令行执行截图操作


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    public class Main {
    
        public static void main(String[] args) {
    
            for (String arg : args) {
                System.out.println(arg);
            }
    
            ProcessBuilder builder = new ProcessBuilder();
            builder.command("ffmpeg", "-i", "rtmp://10.1.1.31/live/test live=1", "-f", "image2", "-ss",
                "0", "-vframes", "1", "-s", args[0], "/tmp/fish/a.jpg");
    
            builder.redirectErrorStream(false);
            try {
                Process process = builder.start();
                InputStream in = process.getInputStream();
                System.out.println("正在进行截图,请稍候=======================");
                convertStreamToString(in);
                System.out.println("");
                InputStream errorStream = process.getErrorStream();
                if (errorStream != null && errorStream.read() > 0) {
                    System.out.println("错误:");
                    convertStreamToString(errorStream);
                }
                in.close();
            } catch (IOException e) {
                System.out.println("错误:");
                e.printStackTrace();
            }
        }
    
        public static String convertStreamToString(InputStream is) {
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    
            StringBuilder sb = new StringBuilder();
    
            String line = null;
    
            try {
                while ((line = reader.readLine()) != null) {
                    System.out.println(line);
                    sb.append(line + "/n");
                }
            } catch (IOException e) {
    
                e.printStackTrace();
    
            } finally {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return sb.toString();
    
        }
    
    }
    


  • 相关阅读:
    Android Service组件在新进程绑定(bindService)过程
    第二章:创建框架和窗体
    ZOJ 2859 二维RMQ(模板)
    POJ 2828 Buy Tickets
    管理案例:怎样提高项目周例会的效率和效果?
    hdu4416 Good Article Good sentence (后缀数组)
    购买DigtalOcean VPS 安装Wordpress 攻略
    Asteroids!-裸的BFS
    hdu3015 Disharmony Trees
    iOS开发-自己定义后台显示图片(iOS7-Background Fetch的应用)
  • 原文地址:https://www.cnblogs.com/uwannerme/p/5692830.html
Copyright © 2020-2023  润新知