ビデオアタッチメントを使用してRailsクラスを作成しましたが、アプリケーションにアップロードされるビデオの長さを取得する方法を知りたいです。どうすればそれを達成できますか?
2911 次
3 に答える
6
私は Rvideo を完全に動作させることができませんでした。gem は 4 年間更新されていません。ただし、これは機能します。
before_post_process :get_video_duration
def get_video_duration
result = `ffmpeg -i #{self.video.to_file.path} 2>&1`
r = result.match("Duration: ([0-9]+):([0-9]+):([0-9]+).([0-9]+)")
if r
self.duration = r[1].to_i*3600+r[2].to_i*60+r[3].to_i
end
end
于 2012-04-14T09:02:40.697 に答える
2
ffmpeg
とRVideo
、それを囲む薄い Ruby ラッパーである gemを使用します。RVideo
このプロジェクトには多くのフォークがあります。個人的にはhttp://github.com/greatseth/rvideo
、ビデオからのフレームのキャプチャと画像としての保存をサポートしているため、私が使用しています。すべての設定が完了したら、次の操作を実行できます。
# For Paperclip 2
video_attributes = RVideo::Inspector.new(:file => self.upload.to_file.path, :ffmpeg_binary => "/usr/local/bin/ffmpeg" )
video_attributes.duration # duration in milliseconds
# For Paperclip 3
video_attributes = RVideo::Inspector.new(:file => self.upload.queued_for_write[:original].path)
video_attributes.duration # duration in milliseconds
于 2009-12-08T04:23:43.640 に答える