如何使用swift从Xcode coco app运行像FFMPEG这样的终端程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用swift从Xcode coco app运行像FFMPEG这样的终端程序?相关的知识,希望对你有一定的参考价值。

我正在使用swift制作一个Xcode应用程序。我试图在有人点击按钮时运行FFMPEG。在终端,它看起来像

ffmpeg -i input.mp4 output.mp4

但在搜索到处后,我似乎无法找到如何运行命令,就好像你在终端输入命令一样。

所以我的问题是,你如何运行命令(可能来自文本字段)就像你在终端输入一样?

到目前为止,这是我的代码:

import Foundation
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var inURL: NSTextField!
@IBOutlet weak var inText: NSTextField!

override func viewDidLoad() {
    super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    override var representedObject: Any? {
        didSet {
            // Update the view, if already loaded.
        }
    }
    @IBAction func clickURL(_ sender: Any) {
        var musicURL = inURL.stringValue
        if musicURL.isEmpty {
            musicURL = "No URL entered!"
        }
        let textReplace = "Downloading music from: (musicURL)..."
        inText.stringValue = textReplace
        Process.launchedProcess(launchPath: "/usr/local/Cellar/ffmpeg/4.0.2/bin/ffmpeg", arguments: ["-i","input.mp4","output.mp4"])
    }
}

我也将使用来自GitHub的youtube-dl,如果我能让FFMPEG工作的话。

答案
var p = Process.launchedProcess(launchPath: "/a/path/to/ffmpeg", arguments: ["-i", "input.mp4", "output.mp4"])

以上是关于如何使用swift从Xcode coco app运行像FFMPEG这样的终端程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中,从 App Extension 目标运行时如何忽略部分代码?

swift 和 didFinishLaunchingWithOptions 的 cocos2d CCAppDelegate 问题

Xcode 6 的新增特性

为你的MacOS App添加开机自启动(Swift)

如何在 Xcode 中将 Swift 版本从 5 更改为 4?

Xcode:使用View Controller边距对齐对象