如何停止运行java进程的ffmpeg

时间:2013-06-15 11:26:34

标签: java process ffmpeg runtime

我在Java中运行ffmpeg。使用p = Runtime.getRuntime().exec(command);它用于通过red5服务器传输视频。

我的问题是ffmpeg需要按“q”才能停止。我怎样才能做到这一点?如何将q字符发送到正在运行的进程,以便它将执行p.destroy();或类似的东西?目前它一直运行直到我在任务管理器中终止进程。我使用的是Windows7。

2 个答案:

答案 0 :(得分:0)

要将“q”键注入正在运行的进程,您可以执行以下操作:

OutputStream ostream = p.getOutputStream(); //Get the output stream of the process, which translates to what would be user input for the commandline
ostream.write("q\n".getBytes());       //write out the character Q, followed by a newline or carriage return so it registers that Q has been 'typed' and 'entered'.
ostream.flush();                          //Write out the buffer.

这应该成功“退出”正在运行的ffmpeg进程。

答案 1 :(得分:0)

您可以通过将 -nostdin 作为 FFMpeg 的参数之一来避免这种情况。这会禁用用户输入。