ffmprb 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cab9a42d86cde16665ecb56282e4539aacb44050
4
- data.tar.gz: 3490a22eeb910ad2a4dc7ac621f3a8f8ecbd6e24
3
+ metadata.gz: 510aa0451bf42ca9dc3dad8268bc017cce41f331
4
+ data.tar.gz: 9abf39c9c5081038aecf607cf4c16fdc49788514
5
5
  SHA512:
6
- metadata.gz: 260a73fdf0a94a9244892f9ea66d9608fcb365a5be1b6c61abe6a065ce1d783cb7b33f0467a44d1b0896c8e4aff1198ad3c427433e59f79375ce53882d919233
7
- data.tar.gz: cbc7b19a6db51ca517863f9cd106e21042bfb59e84eb0cab080297ef620d33e4d86b67b19b198ddb032b0235702802eff63e120da07ab41b43f154f4321eaf73
6
+ metadata.gz: 364cbc89864751a3837cb6c2239a823bf964f948b3504b741754116744cd5e7e7981523e0d88d88e66b486d3c011dac9f572c6619e97985363887fe693c5e827
7
+ data.tar.gz: 25e2170a21c60ced85fc43fa6c33007782b981741c12377c2aedd1f7e67e626a8ebffa40b9b7eb92272b949f4f1872295dd0ce1887ef89fdcfd892fc613dd093
data/lib/defaults.rb CHANGED
@@ -2,10 +2,12 @@ module Ffmprb
2
2
 
3
3
  Filter.silence_noise_max_db = -40
4
4
 
5
+ Process.duck_audio_silent_min = 3
6
+ Process.duck_audio_transition_length = 1
7
+ Process.duck_audio_transition_in_start = -0.4
8
+ Process.duck_audio_transition_out_start = -0.6
5
9
  Process.duck_audio_volume_hi = 0.9
6
10
  Process.duck_audio_volume_lo = 0.1
7
- Process.duck_audio_transition_length = 1
8
- Process.duck_audio_silent_min = 3
9
11
  Process.timeout = 15
10
12
 
11
13
  Util.ffmpeg_cmd = ['ffmpeg']
@@ -5,7 +5,7 @@ module Ffmprb
5
5
  def find_silence(input_file, output_file)
6
6
  logger.debug "Finding silence (#{input_file.path}->#{output_file.path})"
7
7
  silence = []
8
- Util.ffmpeg('-i', input_file.path, *silence_detect_options, output_file.path).
8
+ Util.ffmpeg('-i', input_file.path, *find_silence_detect_options, output_file.path).
9
9
  scan(SILENCE_DETECT_REGEX).each do |mark, time|
10
10
  time = time.to_f
11
11
 
@@ -31,8 +31,8 @@ module Ffmprb
31
31
 
32
32
  SILENCE_DETECT_REGEX = /\[silencedetect\s.*\]\s*silence_(\w+):\s*(\d+\.?d*)/
33
33
 
34
- def silence_detect_options
35
- @silence_detect_options ||= Filter.complex_options(Filter.silencedetect)
34
+ def find_silence_detect_options
35
+ Filter.complex_options Filter.silencedetect
36
36
  end
37
37
 
38
38
  end
@@ -4,8 +4,10 @@ module Ffmprb
4
4
 
5
5
  class << self
6
6
 
7
- attr_accessor :duck_audio_volume_hi, :duck_audio_volume_lo
8
- attr_accessor :duck_audio_silent_min, :duck_audio_transition_length
7
+ attr_accessor :duck_audio_volume_hi, :duck_audio_volume_lo,
8
+ :duck_audio_silent_min
9
+ attr_accessor :duck_audio_transition_length,
10
+ :duck_audio_transition_in_start, :duck_audio_transition_out_start
9
11
 
10
12
  attr_accessor :timeout
11
13
 
@@ -23,7 +25,7 @@ module Ffmprb
23
25
 
24
26
  def duck_audio(av_main_i, a_overlay_i, silence, av_main_o,
25
27
  volume_lo: duck_audio_volume_lo, volume_hi: duck_audio_volume_hi,
26
- silent_min: duck_audio_silent_min, transition_length: duck_audio_transition_length,
28
+ silent_min: duck_audio_silent_min,
27
29
  video: {resolution: Ffmprb::CGA, fps: 30} # XXX temporary
28
30
  )
29
31
  Ffmprb.process(av_main_i, a_overlay_i, silence, av_main_o) do |main_input, overlay_input, duck_data, main_output|
@@ -37,14 +39,16 @@ module Ffmprb
37
39
  duck_data.each do |silent|
38
40
  next if silent.end_at && silent.start_at && (silent.end_at - silent.start_at) < silent_min
39
41
 
42
+ transition_in_start = silent.start_at + Process.duck_audio_transition_in_start
40
43
  ducked_overlay_volume.merge!(
41
- [silent.start_at - transition_length/2, 0.0].max => volume_lo,
42
- (silent.start_at + transition_length/2) => volume_hi
44
+ [transition_in_start, 0.0].max => volume_lo,
45
+ (transition_in_start + Process.duck_audio_transition_length) => volume_hi
43
46
  ) if silent.start_at
44
47
 
48
+ transition_out_start = silent.end_at + Process.duck_audio_transition_out_start
45
49
  ducked_overlay_volume.merge!(
46
- [silent.end_at - transition_length/2, 0.0].max => volume_hi,
47
- (silent.end_at + transition_length/2) => volume_lo
50
+ [transition_out_start, 0.0].max => volume_hi,
51
+ (transition_out_start + Process.duck_audio_transition_length) => volume_lo
48
52
  ) if silent.end_at
49
53
  end
50
54
  overlay in_over.volume ducked_overlay_volume
@@ -1,3 +1,3 @@
1
1
  module Ffmprb
2
- VERSION = '0.7.4'
2
+ VERSION = '0.7.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffmprb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - showbox.com
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-10-15 00:00:00.000000000 Z
12
+ date: 2015-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mkfifo