Sha256: c9db647f17311ea7a3ae79e3e6ed919e72f9ee185fe81b206e2d6d216e4df5f2

Contents?: true

Size: 644 Bytes

Versions: 17

Compression:

Stored size: 644 Bytes

Contents

# frozen_string_literal: true

module ActiveStorage
  class Previewer::VideoPreviewer < Previewer
    def self.accept?(blob)
      blob.video?
    end

    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

    private
      def draw_relevant_frame_from(file, &block)
        draw ffmpeg_path, "-i", file.path, "-y", "-vframes", "1", "-f", "image2", "-", &block
      end

      def ffmpeg_path
        ActiveStorage.paths[:ffmpeg] || "ffmpeg"
      end
  end
end

Version data entries

17 entries across 17 versions & 4 rubygems

Version Path
activestorage-6.0.2.2 lib/active_storage/previewer/video_previewer.rb
argon-1.3.1 vendor/bundle/ruby/2.7.0/gems/activestorage-6.0.2.1/lib/active_storage/previewer/video_previewer.rb
symbolic_enum-1.1.5 vendor/bundle/ruby/2.7.0/gems/activestorage-6.0.2.1/lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.2.1 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.2 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.2.rc2 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.2.rc1 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.1 lib/active_storage/previewer/video_previewer.rb
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/activestorage-6.0.0/lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.1.rc1 lib/active_storage/previewer/video_previewer.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/activestorage-6.0.0/lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0.rc2 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0.rc1 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0.beta3 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0.beta2 lib/active_storage/previewer/video_previewer.rb
activestorage-6.0.0.beta1 lib/active_storage/previewer/video_previewer.rb