【发布时间】:2014-09-13 23:12:36
【问题描述】:
我在 Scala 中有一个对 ffmpeg 进行系统调用的应用程序。有时ffmpeg永远挂起。 我在 Mac OS X Eclipse 中运行这个应用程序。当我在 ffmpeg 命令运行时终止 java 应用程序时,ffmpeg 进程不会被终止。为什么?
import scala.sys.process.ProcessLogger
import scala.sys.process.stringSeqToProcess
import scala.sys.process.stringToProcess
object BugStreaming {
def callFfmpeg(): (Int, String, String) = {
val err = new StringBuilder
val out = new StringBuilder
val commandOutputs = ProcessLogger(
(o: String) => out.append(o + "\n"),
(e: String) => err.append(e + "\n"))
println(s"ffmpeg saving...")
val status = Seq("ffmpeg", "-i", "rtmp://200.136.27.12/live/tv", "-t", "5", "-y", "/tmp/x.wav") ! commandOutputs
(status, out.toString, err.toString)
}
def main(args: Array[String]) {
val (s, out, err) = callFfmpeg()
}
}
【问题讨论】:
标签: java scala jvm system-calls