diff --git a/lib/paperclip/transcoder.rb b/lib/paperclip/transcoder.rb index ed5425a3b..d2d946d3a 100644 --- a/lib/paperclip/transcoder.rb +++ b/lib/paperclip/transcoder.rb @@ -43,7 +43,8 @@ module Paperclip unless eligible_to_passthrough?(metadata) size_limit_in_bits = MediaAttachment::VIDEO_LIMIT * 8 desired_bitrate = (metadata.width * metadata.height * 30 * BITS_PER_PIXEL).floor - maximum_bitrate = (size_limit_in_bits / metadata.duration).floor - 192_000 # Leave some space for the audio stream + duration = [metadata.duration, 1].max + maximum_bitrate = (size_limit_in_bits / duration).floor - 192_000 # Leave some space for the audio stream bitrate = [desired_bitrate, maximum_bitrate].min @output_options['b:v'] = bitrate