Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java进程在397秒后休眠_Java_Process_Ffmpeg_Jvm - Fatal编程技术网

Java进程在397秒后休眠

Java进程在397秒后休眠,java,process,ffmpeg,jvm,Java,Process,Ffmpeg,Jvm,在流终止后,此代码仅从实时流录制约397秒的视频。文件大小约20兆字节。Java和ffmpeg进程不会终止。Centos 6,Oracle JDK 8。如果没有java,则不会终止MPEG录制。可能有什么问题?JVM或操作系统可能有任何限制 public class FFMpegLauncher extends Thread { private Process pr; public static void main(String[] args) { FFMpegL

在流终止后,此代码仅从实时流录制约397秒的视频。文件大小约20兆字节。Java和ffmpeg进程不会终止。Centos 6,Oracle JDK 8。如果没有java,则不会终止MPEG录制。可能有什么问题?JVM或操作系统可能有任何限制

public class FFMpegLauncher extends Thread {
    private Process pr;
    public static void main(String[] args) {
        FFMpegLauncher launcher = new FFMpegLauncher();
        Runtime rt = Runtime.getRuntime();
        rt.addShutdownHook(launcher);
        try {
            if(args.length > 0) {
                String cameraUid = args[0];
                String rtspURL = "rtsp://otherhost/" + cameraUid;
                launcher.pr = rt.exec("/usr/local/bin/ffmpeg -i " + rtspURL + " -vcodec copy -r 15 -f flv out.mp4");
                launcher.pr.waitFor();
            } else {
                System.exit(-1);
            }

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
            System.exit(-1);
        }
    } 
}

当您从命令行以常规方式运行时,
ffmpeg
是否会产生标准输出/错误?因为这里你没有消耗输出。当缓冲区填满时,它将被阻塞。@MarkoTopolnik,如何使用输出?使用
ProcessBuilder
并调用
Inheritario()
。非常感谢您,Mark!:)