Detect videos with no sound, handle them like gifv
This commit is contained in:
		
							parent
							
								
									4fb95c91fb
								
							
						
					
					
						commit
						85fce04d1b
					
				
					 3 changed files with 16 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								lib/paperclip/video_transcoder.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								lib/paperclip/video_transcoder.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue