Skip to content

Commit 2c27266

Browse files
committed
fix: handle missing bitrate in some muxers
fixup
1 parent fc34c19 commit 2c27266

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

lib/ffmpeg/command_args.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,10 @@ def adjusted_audio_bit_rate(target_value)
130130

131131
def min_bit_rate(*values)
132132
bit_rate =
133-
values.compact.map do |value|
134-
next value if value.is_a?(Integer)
133+
values.filter_map do |value|
134+
# Some muxers (webm) might not expose birate under certain conditions
135+
next false if value.nil?
136+
next (value.positive? ? value : false) if value.is_a?(Integer)
135137

136138
unless value.is_a?(String)
137139
raise ArgumentError,

spec/ffmpeg/command_args_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ module FFMPEG
9696
expect(args.to_a).to eq(%w[])
9797
end
9898
end
99+
100+
context 'when the reported media bitrate is 0' do
101+
it 'returns the requested bitrate' do
102+
media = instance_double(Media, video_bit_rate: 0)
103+
args = CommandArgs.compose(media) { min_video_bit_rate '2M' }
104+
expect(args.to_a).to eq(%w[-minrate 2000k])
105+
end
106+
end
99107
end
100108

101109
describe '#max_video_bit_rate' do

0 commit comments

Comments
 (0)