2010-12-03 9 views
0

ビデオのアップロード中にビデオの長さを取得しようとしています。 SWFUploadを使用してファイルをアップロードしています。次にそれをS3に保管するためのペーパークリップ。現在のプロセスでは、ファイルをメモリにロードして解析しています。それは大きな映画で爆発する。後でS3からEC2インスタンスにファイルを再ダウンロードできることはわかっています。FFMPEGとPaperclipによるビデオの長さのキャプチャ

私は、Paperclipがそれを取る前にファイルを処理する方法があるのだろうかと思っていたので、FFMPEG検査を実行することができます。

答えて

2

s3に直接アップロードしていない場合は、before_saveを実行して一時ファイルを保存してから保存することができます。それはおそらく最も簡単な方法です。

FFMPEGを使ってファイル全体をロードする必要があるのでしょうか?必要なのはファイルのメタデータだけです。私は、同様のことをしたオーディオ用のアプリを書いた。あなたは、ファイルサイズをPaperclipから得ることができます.MPEGのビットレートを得ることができれば、ファイルサイズをビットレートで割ることでファイルの長さを簡単に計算できます。

before_save/before_createコールバックを使用して、ファイルからビットレートを取得し、それをデータベースのフィールドとして格納します。この値から動的に長さを生成します。

関連する問題