@@ -8,23 +8,39 @@ module FFMPEG
88 module Presets
99 # Preset to encode DASH media files.
1010 class DASH < Preset
11+ attr_reader :segment_duration , :min_keyframe_interval , :max_keyframe_interval , :scene_change_threshold
12+
1113 # @param name [String] The name of the preset.
1214 # @param filename [String] The filename format of the output.
1315 # @param metadata [Object] The metadata to associate with the preset.
16+ # @param segment_duration [Integer] The duration of each segment in seconds.
17+ # @param min_keyframe_interval [Integer] The minimum keyframe interval in frames.
18+ # @param max_keyframe_interval [Integer] The maximum keyframe interval in frames.
19+ # @param scene_change_threshold [Integer] The scene change threshold.
1420 # @yield The block to execute to compose the command arguments.
1521 def initialize (
1622 name : nil ,
1723 filename : nil ,
1824 metadata : nil ,
25+ segment_duration : 2 ,
26+ min_keyframe_interval : 48 ,
27+ max_keyframe_interval : 48 ,
28+ scene_change_threshold : 0 ,
1929 &
2030 )
21- super do
31+ @segment_duration = segment_duration
32+ @min_keyframe_interval = min_keyframe_interval
33+ @max_keyframe_interval = max_keyframe_interval
34+ @scene_change_threshold = scene_change_threshold
35+ preset = self
36+
37+ super ( name :, filename :, metadata :) do
2238 format_name 'dash'
2339 adaptation_sets 'id=0,streams=v id=1,streams=a'
24- segment_duration 2
25- min_keyframe_interval 48
26- max_keyframe_interval 48
27- scene_change_threshold 0
40+ segment_duration preset . segment_duration
41+ min_keyframe_interval preset . min_keyframe_interval
42+ max_keyframe_interval preset . max_keyframe_interval
43+ scene_change_threshold preset . scene_change_threshold
2844
2945 muxing_flags '+faststart'
3046 map_chapters '-1'
0 commit comments