2

resque を使用して、いくつかのエンコード ジョブをキューに入れています。これらの仕事を引き受けてトランスコーディングを行うワーカーがいます。問題は正常にsystem "mencoder .."動作しますが、system "ffmpeg .."スローが見つからず、system "qt-faststart .." を使用してメンコーダーをインストールした場合と同じsudo apt-get installです。ffmpeg と qt-faststart はソースからビルドされました。したがって、mencoder は /usr/bin にあり、他の 2 つは /usr/local/bin にありました。それで、次に試したのは、システムコマンドでフルパスを使用することでした。これも見つかりませんでした。次に、ffmpeg と qt-faststart を /usr/bin にコピーしました。それでも「Not Found」が表示される ワーカー コードはスタンドアロンで実行されますが、神が実行すると、ffmpeg と qt-fasstart の実行に失敗します。はい、resque を監視するように神を設定しました。さて、他に何を試すべきかわかりません!何か案は?

4

1 に答える 1

2

明白で最も簡単な方法は、システム メソッドのフル パスを指定するだけです。このような

system("/usr/local/bin/ffmpeg")

しかし、実際には、これはそもそも問題として存在するべきではありません。特に、あなたは対処が役に立たないと言っています。

resque perform メソッドから ENV['PATH'] を出力してみてください

何が問題なのかを理解するのに役立つかもしれません。もちろん、ffmpeg が /usr/local/bin/ にあることを確認してください。

which ffmpeg
于 2012-12-17T12:12:01.520 に答える