我是Mac世界的新手。我正在使用Swift,并尝试逐个运行外部进程。 只要调试过,一切都很好,我的意思是:在附有调试器的Xcode中运行。
我没有做任何更改,尝试从“Debug”文件夹中的位置在终端窗口中运行它。现在外部进程开始了,但卡住了。已经关闭了一些STDERR输出。并且外部任务需要进行磁盘IO。
let video : NSTask = NSTask()
video.launchPath = "./ffmpeg"
video.arguments = ["-i", "\(item)", "-c:v","copy", "-bsf:v", "h264_mp4toannexb", "-an", "-y", "-loglevel", "quiet", "\(path).h264"]
//also tried without the following two lines
video.standardError = NSFileHandle.fileHandleWithStandardError()
video.standardOutput = NSFileHandle.fileHandleWithStandardOutput()
video.launch()
video.waitUntilExit()
是的:我把所有内容复制到当前路径,这样就可以执行了。但是在终端运行时会停顿。
现在问题来了:为什么?我在这里做错了什么?简单的解决方案是始终在Xcode中运行它,但是你可能会想象到,对于一个命令行工具来说,这非常不方便。