我有簡單的Ruby腳本:重定向外殼輸出Ruby腳本
#! /usr/bin/env ruby
require 'fileutils'
FileUtils.rm "output.mkv" if File.exists?("outp ut.mkv")
pid = Process.spawn("ffmpeg -i wrong_file.mp4 -c:v libx264 -preset veryslow -qp 0 output.mkv", STDOUT => "output.txt", STDERR => "error.txt")
puts "pid : #{pid}"
Process.wait(pid)
但是,stdout和stderr輸出到error.txt,爲什麼呢?
看起來,是ffmpeg的有另一個退出碼(在通常情況下0 stdout和1標準輸入)
注:我不想使用本機外殼重定向像「>輸出。 txt 2> error.txt',因爲我想獲得ffmpeg進程的pid,而不是shell進程並在將來殺死它。
? – lcguida
ruby 2.0.0p598(2014-11-13 revision 48408)[x86_64-darwin14.1.0] – rs41