commit: 85fce04d1b4353c3645c15967d222cdcdb488dfd
parent: 4fb95c91fbf808bafa581b8976d94ec36eee8619
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 5 Mar 2017 22:55:24 +0100
Detect videos with no sound, handle them like gifv
Diffstat:
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
@@ -80,7 +80,7 @@ class MediaAttachment < ApplicationRecord
if f.file_content_type == 'image/gif'
[:gif_transcoder]
elsif VIDEO_MIME_TYPES.include? f.file_content_type
- [:transcoder]
+ [:video_transcoder]
else
[:thumbnail]
end
diff --git a/config/application.rb b/config/application.rb
@@ -8,6 +8,7 @@ Bundler.require(*Rails.groups)
require_relative '../app/lib/exceptions'
require_relative '../lib/paperclip/gif_transcoder'
+require_relative '../lib/paperclip/video_transcoder'
Dotenv::Railtie.load
diff --git a/lib/paperclip/video_transcoder.rb b/lib/paperclip/video_transcoder.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module Paperclip
+ # This transcoder is only to be used for the MediaAttachment model
+ # to check when uploaded videos are actually gifv's
+ class VideoTranscoder < Paperclip::Processor
+ def make
+ meta = ::Av.cli.identify(@file.path)
+ attachment.instance.type = MediaAttachment.types[:gifv] unless meta[:audio_encode]
+
+ Paperclip::Transcoder.make(file, options, attachment)
+ end
+ end
+end