0

Ruby とプログラミングの初心者で、経験は 1 年未満です。これは ruby​​ 1.9.3 であり、FFmpeg の Ubuntu 用の最新の ffmpeg です。私が使用しているファイルは、基本的な .avi、一部の v210 .mov、その他の quicktime/finalcutpro タイプのファイルです。

大量のメディア ファイルのテストと処理を開始するときに、手作業の負荷を軽減するのに役立つ自動プローブ ツールを作成しようとしています。基本的に、スクリプトはディレクトリを通過し、各ファイルをプローブして、必要な情報を抽出し、csv に書き出します。

現在、実行するたびに、コマンド ラインでの実際のキャプチャが失敗します。

def prober(file)
  @the_file = file
  stdout,stderr,status = Open3.capture3("ffprobe -v quiet -print_format json -      show_format -show_streams #{@the_file}")
  STDERR.puts stderr
  if status.success?
    out = stdout
  else
    STDERR.puts "There was a problem, please try again."
  end
  @raw_output = JSON.parse(out)
end

コマンドの実行方法に関係があるのか​​ (I/O ストリームを完全には理解していません)、ffprobe に関係があるのか​​どうかはわかりません。プローブを通過すると、@raw_output が nil として返されるため、JSON 解析が失敗するか、メタデータを分割および解析するための他の方法が nil で失敗します。

どんな助けでも素晴らしいでしょう、私はしばらくこれにこだわっています。ありがとう!明確にするために必要な場合は、さらにコードを提供できます。

4

1 に答える 1

0

休暇の後、私は新鮮に戻ってきて、問題を発見しました。ファイルパス文字列は、ffprobe の stdin にフィードするときに引用符で囲む必要がありますが、ファイルを集約すると引用符が取り除かれました。修正?文字列のファイルパスを引用符で囲みます。

これが誰かの助けになることを願っています.どうやら私はインターネット全体でこの問題を抱えている唯一の人です.

于 2013-01-03T19:07:10.790 に答える