2

ビデオファイルの長さを取得しようとするためにffmpegコマンドを実行しています。コマンドは次のとおりです...

system('ffmpeg -i C:\Users\example\Desktop\video9.mp4 -f ffmetadata')

その行を実行すると、期間を含む多くの情報が Rails コンソールに出力されます。しかし、その情報を分割して必要なデータを取得するにはどうすればよいでしょうか? (私はこれをRailsコントローラー内で行っています)

このようなものを実行すると...

metadata = system('ffmpeg -i C:\Users\example\Desktop\video9.mp4 -f ffmetadata')
puts metadata

返されるのはすべて false です。

4

3 に答える 3

2

使用する:

output = `ffmpeg -i C:\\Users\\example\\Desktop\\video9.mp4 -f ffmetadata`

問題は、system実行中のコマンドの出力をキャプチャしないことです。代わりに、%x[...]サブシェルの STDOUT をキャプチャするバックティックを使用して、または同等のものを使用します。

さらに制御が必要な場合は、 を参照してOpen3.capture3ください。

于 2013-01-08T19:03:23.027 に答える
0

それを見つけた...

  inspect_command = "ffmpeg -i " + file_location + " 2>&1 "
  metadata = `#{inspect_command}`
于 2013-01-08T19:32:43.450 に答える