From db445d16eae2db2293ae17bfa3125ac3725eee1f Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 21:43:22 -0500 Subject: [PATCH 01/20] Add dependency on miniexiftool and incorporate exif data into metadata so we can handle iphone video properly --- lib/paperclip/paperclip_processors/transcoder.rb | 3 +++ paperclip-av-transcoder.gemspec | 1 + 2 files changed, 4 insertions(+) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index d191ce6..88a48cb 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -30,6 +30,9 @@ def initialize file, options = {}, attachment = nil @shrink_only = @keep_aspect && modifier == '>' end + @exif_data = MiniExiftool.new(@file.path) + @meta[:rotate] = @exif_data.rotation + @time = options[:time].nil? ? 3 : options[:time] @auto_rotate = options[:auto_rotate].nil? ? false : options[:auto_rotate] @pad_color = options[:pad_color].nil? ? "black" : options[:pad_color] diff --git a/paperclip-av-transcoder.gemspec b/paperclip-av-transcoder.gemspec index c62aa5c..ecb401a 100644 --- a/paperclip-av-transcoder.gemspec +++ b/paperclip-av-transcoder.gemspec @@ -27,4 +27,5 @@ Gem::Specification.new do |spec| spec.add_dependency "paperclip", ">=2.5.2" spec.add_dependency "av", "~> 0.9.0" + spec.add_dependency "mini_exiftool", ">=2.5.1" end From 59b64cc8950bc49c57ccac14fa575c2d261268e5 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 21:50:29 -0500 Subject: [PATCH 02/20] Go back to av filtering --- lib/paperclip/paperclip_processors/transcoder.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 88a48cb..a241528 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -62,14 +62,7 @@ def make if @auto_rotate && !@meta[:rotate].nil? log "Adding rotation #{@meta[:rotate]}" - case @meta[:rotate] - when 90 - @convert_options[:output][:vf] = "'transpose=1'" - when 180 - @convert_options[:output][:vf] = "'vflip, hflip'" - when 270 - @convert_options[:output][:vf] = "'transpose=2'" - end + @cli.filter_rotate @meta[:rotate] end end From 848664b9e50ff38723a6758430041af79a08de4a Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 21:51:23 -0500 Subject: [PATCH 03/20] Testing --- lib/paperclip/paperclip_processors/transcoder.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index a241528..6a88c4e 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -61,7 +61,7 @@ def make @cli.filter_seek @time if @auto_rotate && !@meta[:rotate].nil? - log "Adding rotation #{@meta[:rotate]}" + log "** Adding rotation #{@meta[:rotate]}" @cli.filter_rotate @meta[:rotate] end end From 3e2f4416a037d85f8c9d9cb011ade9a9eacf328b Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 21:56:35 -0500 Subject: [PATCH 04/20] grr --- lib/paperclip/paperclip_processors/transcoder.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 6a88c4e..88a48cb 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -61,8 +61,15 @@ def make @cli.filter_seek @time if @auto_rotate && !@meta[:rotate].nil? - log "** Adding rotation #{@meta[:rotate]}" - @cli.filter_rotate @meta[:rotate] + log "Adding rotation #{@meta[:rotate]}" + case @meta[:rotate] + when 90 + @convert_options[:output][:vf] = "'transpose=1'" + when 180 + @convert_options[:output][:vf] = "'vflip, hflip'" + when 270 + @convert_options[:output][:vf] = "'transpose=2'" + end end end From 18fc5ead09862b94295b5d5f96de03a8f8e785a1 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 22:01:11 -0500 Subject: [PATCH 05/20] hrm --- lib/paperclip/paperclip_processors/transcoder.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 88a48cb..ef7c0f5 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -62,14 +62,14 @@ def make if @auto_rotate && !@meta[:rotate].nil? log "Adding rotation #{@meta[:rotate]}" - case @meta[:rotate] - when 90 - @convert_options[:output][:vf] = "'transpose=1'" - when 180 - @convert_options[:output][:vf] = "'vflip, hflip'" - when 270 - @convert_options[:output][:vf] = "'transpose=2'" - end + arg = case @meta[:rotate] + when 90 then 'transpose=1' + when 180 then 'vflip, hflip' + when 270 then 'transpose=2' + end + @convert_options[:output][:vf] ||= '' + @convert_options[:output][:vf] += " #{arg}" + @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" end end From 2bf22b5399b3336c476704167f3e9e0aa6a9fea6 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 22:03:53 -0500 Subject: [PATCH 06/20] hrm --- lib/paperclip/paperclip_processors/transcoder.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index ef7c0f5..f541afd 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -67,8 +67,10 @@ def make when 180 then 'vflip, hflip' when 270 then 'transpose=2' end - @convert_options[:output][:vf] ||= '' - @convert_options[:output][:vf] += " #{arg}" + if @convert_options[:output][:vf] + @convert_options[:output][:vf] += ", #{arg}" + else + @convert_options[:output][:vf] = "#{arg}" @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" end end From d9890e167ec0a13b130b1d881a993efe10187fef Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sat, 19 Dec 2015 22:05:19 -0500 Subject: [PATCH 07/20] hrm --- lib/paperclip/paperclip_processors/transcoder.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index f541afd..a6611a1 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -71,6 +71,7 @@ def make @convert_options[:output][:vf] += ", #{arg}" else @convert_options[:output][:vf] = "#{arg}" + end @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" end end From 3389f4289f5566c0384a791cd4e522bbb68ae307 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 08:55:08 -0500 Subject: [PATCH 08/20] This should actually work --- .../paperclip_processors/transcoder.rb | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index a6611a1..3acec99 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -32,6 +32,7 @@ def initialize file, options = {}, attachment = nil @exif_data = MiniExiftool.new(@file.path) @meta[:rotate] = @exif_data.rotation + log "Rotation data: #{@meta[:rotate]}" @time = options[:time].nil? ? 3 : options[:time] @auto_rotate = options[:auto_rotate].nil? ? false : options[:auto_rotate] @@ -59,21 +60,21 @@ def make if output_is_image? @time = @time.call(@meta, @options) if @time.respond_to?(:call) @cli.filter_seek @time + end - if @auto_rotate && !@meta[:rotate].nil? - log "Adding rotation #{@meta[:rotate]}" - arg = case @meta[:rotate] - when 90 then 'transpose=1' - when 180 then 'vflip, hflip' - when 270 then 'transpose=2' - end - if @convert_options[:output][:vf] - @convert_options[:output][:vf] += ", #{arg}" - else - @convert_options[:output][:vf] = "#{arg}" - end - @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" + if @auto_rotate && !@meta[:rotate].nil? + log "Adding rotation #{@meta[:rotate]}" + arg = case @meta[:rotate] + when 90 then 'transpose=1' + when 180 then 'vflip, hflip' + when 270 then 'transpose=2' + end + if @convert_options[:output][:vf] + @convert_options[:output][:vf] += ", #{arg}" + else + @convert_options[:output][:vf] = "#{arg}" end + @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" end if @convert_options.present? From e615720d774809e89f9e85aed0567c257714bc6e Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:01:58 -0500 Subject: [PATCH 09/20] Depend on json; write metadata as JSON --- lib/paperclip/paperclip_processors/transcoder.rb | 4 ++-- paperclip-av-transcoder.gemspec | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 3acec99..518c2e7 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -40,7 +40,7 @@ def initialize file, options = {}, attachment = nil @convert_options[:output][:s] = format_geometry(@geometry) if @geometry.present? - attachment.instance_write(:meta, @meta) if attachment + attachment.instance_write(:meta, JSON.dump(@meta)) if attachment end # Performs the transcoding of the +file+ into a thumbnail/video. Returns the Tempfile @@ -127,7 +127,7 @@ def output_is_image? class Attachment def meta - instance_read(:meta) + JSON.load(instance_read(:meta)) end end end diff --git a/paperclip-av-transcoder.gemspec b/paperclip-av-transcoder.gemspec index ecb401a..b1500ed 100644 --- a/paperclip-av-transcoder.gemspec +++ b/paperclip-av-transcoder.gemspec @@ -27,5 +27,6 @@ Gem::Specification.new do |spec| spec.add_dependency "paperclip", ">=2.5.2" spec.add_dependency "av", "~> 0.9.0" + spec.add_dependency "json", "~> 1.8.3" spec.add_dependency "mini_exiftool", ">=2.5.1" end From 48292ba932965bd0bc440acfa83b1e4a4dce734f Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:05:43 -0500 Subject: [PATCH 10/20] log json metadata --- lib/paperclip/paperclip_processors/transcoder.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 518c2e7..111cf24 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -40,7 +40,9 @@ def initialize file, options = {}, attachment = nil @convert_options[:output][:s] = format_geometry(@geometry) if @geometry.present? - attachment.instance_write(:meta, JSON.dump(@meta)) if attachment + json_meta = JSON.dump(@meta) + log "JSON metadata: #{json_meta}" + attachment.instance_write(:meta, json_meta) if attachment end # Performs the transcoding of the +file+ into a thumbnail/video. Returns the Tempfile From 2f39ee99230c58ce3a2dee6301a5a664640f68a3 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:11:51 -0500 Subject: [PATCH 11/20] Log options --- lib/paperclip/paperclip_processors/transcoder.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 111cf24..8dad788 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -8,6 +8,8 @@ class Transcoder < Processor # +whiny+ is true (which it is, by default. If +convert_options+ is # set, the options will be appended to the convert command upon video transcoding. def initialize file, options = {}, attachment = nil + log "Options: #{options.to_s}" + @file = file @current_format = File.extname(@file.path) @basename = File.basename(@file.path, @current_format) @@ -129,7 +131,8 @@ def output_is_image? class Attachment def meta - JSON.load(instance_read(:meta)) + data = instance_read(:meta) + data ? JSON.load(instance_read(:meta)).symbolize_keys : nil end end end From ca73e6623147fa606b006ed65efea87e64fa8ac6 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:13:52 -0500 Subject: [PATCH 12/20] try logging exif data of converted file --- lib/paperclip/paperclip_processors/transcoder.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 8dad788..1437774 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -97,6 +97,9 @@ def make begin @cli.run log "Successfully transcoded #{@basename} to #{dst}" + + exif_data = MiniExiftool.new(dst.path) + log "Exif data: #{exif_data.to_s}" rescue Cocaine::ExitStatusError => e raise Paperclip::Error, "error while transcoding #{@basename}: #{e}" if @whiny end From 4351e6cb524a68aac91c36b78ef4bee7aef47c10 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:16:33 -0500 Subject: [PATCH 13/20] inspect exif data --- lib/paperclip/paperclip_processors/transcoder.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 1437774..815897c 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -99,7 +99,7 @@ def make log "Successfully transcoded #{@basename} to #{dst}" exif_data = MiniExiftool.new(dst.path) - log "Exif data: #{exif_data.to_s}" + log "Exif data: #{exif_data.inspect}" rescue Cocaine::ExitStatusError => e raise Paperclip::Error, "error while transcoding #{@basename}: #{e}" if @whiny end From a4a82893d1df5cf8fac26ef840274a6beffef90f Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:23:21 -0500 Subject: [PATCH 14/20] try writing metadata per-style --- .../paperclip_processors/transcoder.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 815897c..3e851e0 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -9,11 +9,13 @@ class Transcoder < Processor # set, the options will be appended to the convert command upon video transcoding. def initialize file, options = {}, attachment = nil log "Options: #{options.to_s}" + log "Attachment: #{attachment.inspect}" @file = file @current_format = File.extname(@file.path) @basename = File.basename(@file.path, @current_format) @cli = ::Av.cli + @style = options[:style] || 'default' @meta = ::Av.cli.identify(@file.path) @whiny = options[:whiny].nil? ? true : options[:whiny] @@ -42,9 +44,15 @@ def initialize file, options = {}, attachment = nil @convert_options[:output][:s] = format_geometry(@geometry) if @geometry.present? - json_meta = JSON.dump(@meta) - log "JSON metadata: #{json_meta}" - attachment.instance_write(:meta, json_meta) if attachment + # todo: maybe clean this up? attachment model can handle the read/write + # of metadata. + if attachment + attachment_meta = attachment.meta || {} + attachment_meta[@style.to_sym] = @meta + json_meta = JSON.dump(attachment_meta) + log "JSON metadata: #{json_meta}" + attachment.instance_write(:meta, json_meta) + end end # Performs the transcoding of the +file+ into a thumbnail/video. Returns the Tempfile @@ -100,6 +108,9 @@ def make exif_data = MiniExiftool.new(dst.path) log "Exif data: #{exif_data.inspect}" + @meta[:output] ||= {} + @meta[:output][:width] = exif_data.width + @meta[:output][:height] = exif_data.height rescue Cocaine::ExitStatusError => e raise Paperclip::Error, "error while transcoding #{@basename}: #{e}" if @whiny end From ef70dcd9259e5d16d01ff68a2b7a3f6c59c7a19c Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:30:45 -0500 Subject: [PATCH 15/20] store metadata after make --- .../paperclip_processors/transcoder.rb | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 3e851e0..546918b 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -44,15 +44,7 @@ def initialize file, options = {}, attachment = nil @convert_options[:output][:s] = format_geometry(@geometry) if @geometry.present? - # todo: maybe clean this up? attachment model can handle the read/write - # of metadata. - if attachment - attachment_meta = attachment.meta || {} - attachment_meta[@style.to_sym] = @meta - json_meta = JSON.dump(attachment_meta) - log "JSON metadata: #{json_meta}" - attachment.instance_write(:meta, json_meta) - end + @attachment = attachment end # Performs the transcoding of the +file+ into a thumbnail/video. Returns the Tempfile @@ -120,6 +112,17 @@ def make dst << @file.read dst.close end + + # todo: maybe clean this up? attachment model can handle the read/write + # of metadata. + if @attachment + @attachment_meta = @attachment.meta || {} + @attachment_meta[@style.to_sym] = @meta + json_meta = JSON.dump(@attachment_meta) + log "JSON metadata: #{json_meta}" + @attachment.instance_write(:meta, json_meta) + end + dst end From bb7f67f45815412a07b81f0120282ed90c9d09e8 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:36:46 -0500 Subject: [PATCH 16/20] dont symbolize keys --- lib/paperclip/paperclip_processors/transcoder.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 546918b..4f58caf 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -149,7 +149,7 @@ def output_is_image? class Attachment def meta data = instance_read(:meta) - data ? JSON.load(instance_read(:meta)).symbolize_keys : nil + data ? JSON.load(instance_read(:meta)) : nil end end end From ed0d25c9d13fdffd648f137a08a045cc016a0100 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:42:55 -0500 Subject: [PATCH 17/20] use correct keys for width/height --- lib/paperclip/paperclip_processors/transcoder.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 4f58caf..7dba75c 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -101,8 +101,8 @@ def make exif_data = MiniExiftool.new(dst.path) log "Exif data: #{exif_data.inspect}" @meta[:output] ||= {} - @meta[:output][:width] = exif_data.width - @meta[:output][:height] = exif_data.height + @meta[:output][:width] = exif_data.imagewidth + @meta[:output][:height] = exif_data.imageheight rescue Cocaine::ExitStatusError => e raise Paperclip::Error, "error while transcoding #{@basename}: #{e}" if @whiny end From c6fcdf648371f4d0840fd2a57e0a855df74f3068 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 10:57:03 -0500 Subject: [PATCH 18/20] try to store rotated image properly --- lib/paperclip/paperclip_processors/transcoder.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 7dba75c..c34313a 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -101,8 +101,15 @@ def make exif_data = MiniExiftool.new(dst.path) log "Exif data: #{exif_data.inspect}" @meta[:output] ||= {} - @meta[:output][:width] = exif_data.imagewidth - @meta[:output][:height] = exif_data.imageheight + # set metadata correctly if image is rotated + if exif_data.rotatation == 90 || exif_data.rotation == 270 + @meta[:output][:width] = exif_data.imageheight + @meta[:output][:height] = exif_data.imagewidth + else + @meta[:output][:width] = exif_data.imagewidth + @meta[:output][:height] = exif_data.imageheight + end + rescue Cocaine::ExitStatusError => e raise Paperclip::Error, "error while transcoding #{@basename}: #{e}" if @whiny end From 1f2071a07423643804db543a4305bc68d56ce5c3 Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 11:10:42 -0500 Subject: [PATCH 19/20] handle non-rotated video? --- lib/paperclip/paperclip_processors/transcoder.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index c34313a..565174f 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -73,10 +73,12 @@ def make when 180 then 'vflip, hflip' when 270 then 'transpose=2' end - if @convert_options[:output][:vf] - @convert_options[:output][:vf] += ", #{arg}" - else - @convert_options[:output][:vf] = "#{arg}" + if arg + if @convert_options[:output][:vf] + @convert_options[:output][:vf] += ", #{arg}" + else + @convert_options[:output][:vf] = "#{arg}" + end end @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" end From 553d8190aeb6542b8a4342c034b130ef743f65ec Mon Sep 17 00:00:00 2001 From: Dave Zohrob Date: Sun, 20 Dec 2015 11:33:15 -0500 Subject: [PATCH 20/20] new version of ffmpeg auto-rotates. boom --- .../paperclip_processors/transcoder.rb | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index 565174f..27d492f 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -66,22 +66,22 @@ def make @cli.filter_seek @time end - if @auto_rotate && !@meta[:rotate].nil? - log "Adding rotation #{@meta[:rotate]}" - arg = case @meta[:rotate] - when 90 then 'transpose=1' - when 180 then 'vflip, hflip' - when 270 then 'transpose=2' - end - if arg - if @convert_options[:output][:vf] - @convert_options[:output][:vf] += ", #{arg}" - else - @convert_options[:output][:vf] = "#{arg}" - end - end - @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" - end + # if @auto_rotate && !@meta[:rotate].nil? + # log "Adding rotation #{@meta[:rotate]}" + # arg = case @meta[:rotate] + # when 90 then 'transpose=1' + # when 180 then 'vflip, hflip' + # when 270 then 'transpose=2' + # end + # if arg + # if @convert_options[:output][:vf] + # @convert_options[:output][:vf] += ", #{arg}" + # else + # @convert_options[:output][:vf] = "#{arg}" + # end + # end + # @convert_options[:output][:vf] = "'#{@convert_options[:output][:vf]}'" + # end if @convert_options.present? if @convert_options[:input]