transcode-video
命令的 Swift 封装。
.package(url: "https://github.com/Ponyboy47/TranscodeVideo.git", from: "0.3.1")
注意: 由于支持所有各种命令行选项的复杂性,此库的每个版本都将锁定到 transcode-video 实用程序的某个版本。 版本 0.3.1 锁定到 transcode-video 的 0.25.x 版本
import TranscodeVideo
import TrailBlazer
let videoFile = FilePath("/path/to/file.avi")!
let transcoder = Transcoder(for: videoFile)
// Begin transcoding asynchronously
transcoder.start()
// Check progress
let progress: Double = transcoder.progress
// Get ETA
let eta: (hours: Int, minutes: Int, seconds: Int) = transcoder.eta
// Forcefully stop transcoding
transcoder.stop()
// Gracefully stop transcoding
transcoder.interrupt()
// Pause transcoding
let succeeded = transcoder.suspend()
// Resume a paused transcoding
let succeeded = transcoder.resume()
// Block until transcoding completes
transcoder.wait()
// Also block until a transcoding completes, but includes exit code and termination reason
let finish: (exitcode: Int, reason: Process.TerminationReason) = transcoder.finish()
// Get transcoder output
let output: (stdout: ReadableStream, stderr: ReadableStream) = transcoder.output()
print(output.stdout.read())
MIT