Class: ActiveStorage::Previewer::VideoPreviewer
- Inherits:
-
Previewer
- Object
- Previewer
- ActiveStorage::Previewer::VideoPreviewer
- Defined in:
- lib/active_storage/previewer/video_previewer.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.accept?(blob) ⇒ Boolean
8 9 10 |
# File 'lib/active_storage/previewer/video_previewer.rb', line 8 def accept?(blob) blob.video? && ffmpeg_exists? end |
.ffmpeg_exists? ⇒ Boolean
12 13 14 15 16 |
# File 'lib/active_storage/previewer/video_previewer.rb', line 12 def ffmpeg_exists? return @ffmpeg_exists unless @ffmpeg_exists.nil? @ffmpeg_exists = system(ffmpeg_path, "-version", out: File::NULL, err: File::NULL) end |
.ffmpeg_path ⇒ Object
18 19 20 |
# File 'lib/active_storage/previewer/video_previewer.rb', line 18 def ffmpeg_path ActiveStorage.paths[:ffmpeg] || "ffmpeg" end |
Instance Method Details
#preview(**options) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/active_storage/previewer/video_previewer.rb', line 23 def preview(**) download_blob_to_tempfile do |input| draw_relevant_frame_from input do |output| yield io: output, filename: "#{blob.filename.base}.jpg", content_type: "image/jpeg", ** end end end |