java - 如何停止通过java进程运行的ffmpeg

标签 java process ffmpeg runtime

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

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

最佳答案

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

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 进程。

关于java - 如何停止通过java进程运行的ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123118/

相关文章:

c# - 在当前终端执行命令,无需打开新终端。

image - 检测视频中的图像/帧

ffmpeg - 使用 ffmpeg 对多个网络输入进行视频叠加

java - Spring Prototype 作用域和 CDI 依赖作用域有什么区别?

java - Android数字时钟textview时间选择器使用按钮

java - 当我打开模块时它崩溃

ruby - 如何确定我的流程是否正在交互式运行?

linux - 为什么用(ps -f&)显示进程信息,然后显示1的PPID而不是主shell(-bash)的PID?

ffmpeg : How can I send a H. 265 编码流到 wowza?

Java JNI : Specify path to dependent shared library