Swift脚本在执行命令时卡住(ffmpeg)

时间:2020-04-12 15:55:47

标签: swift ffmpeg

我正在编写一个使用bash命令ffmpeg的快捷脚本。我一直在关注this excellent guide。一切正常,除了我尝试运行ffmpeg转换视频时。通常,我只能执行ffmpeg -i input.mov output.mp4来转换视频,这在终端中效果很好。但是,当我将其放在脚本中时,就会遇到麻烦。

这是我的快速脚本:

#!/usr/bin/env swift
import Foundation

let ffmpeg = Process()
ffmpeg.executableURL = URL(fileURLWithPath: "/usr/local/bin/ffmpeg")
ffmpeg.arguments = ["-i", "input.mov", "output.mp4"]

let pipe = Pipe()
ffmpeg.standardOutput = pipe

do{
  try ffmpeg.run()
  let data = pipe.fileHandleForReading.readDataToEndOfFile()
  if let output = String(data: data, encoding: String.Encoding.utf8) {
    print(output)
  }
} catch {
  print("Error")
}

但是该过程仅在以下几点冻结,我必须按ctrl c退出:

ffmpeg version 4.2.2-with-options Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple clang version 11.0.3 (clang-1103.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_2 --enable-shared --cc=clang --host-cflags=-fno-stack-check --host-ldflags= --enable-gpl --enable-libaom --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --disable-libjack --disable-indev=jack --disable-htmlpages --extra-version=with-options --enable-opencl --enable-videotoolbox
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100

我的脚本在做什么错?

0 个答案:

没有答案
相关问题