0
0
Fork 0

Change video compression parameters (#26631)

This commit is contained in:
Eugen Rochko 2023-08-28 19:40:08 +02:00 committed by GitHub
parent dd72a8d28b
commit 01b87a1632
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 12 deletions

View file

@ -4,6 +4,9 @@ module Paperclip
# This transcoder is only to be used for the MediaAttachment model
# to check when uploaded videos are actually gifv's
class Transcoder < Paperclip::Processor
# This is the H.264 "High" value taken from https://www.dr-lex.be/info-stuff/videocalc.html
BITS_PER_PIXEL = 0.11
def initialize(file, options = {}, attachment = nil)
super
@ -38,8 +41,11 @@ module Paperclip
@output_options['vframes'] = 1
when 'mp4'
unless eligible_to_passthrough?(metadata)
@output_options['acodec'] = 'aac'
@output_options['strict'] = 'experimental'
bitrate = (metadata.width * metadata.height * 30 * BITS_PER_PIXEL) / 1_000
@output_options['b:v'] = "#{bitrate}k"
@output_options['maxrate'] = "#{bitrate + 192}k"
@output_options['bufsize'] = "#{bitrate * 5}k"
if high_vfr?(metadata)
@output_options['vsync'] = 'vfr'