From 3fe02fb23b124e56a77e75cd9f923f36b5257868 Mon Sep 17 00:00:00 2001 From: bajankristof Date: Thu, 5 Jun 2025 10:08:12 +0200 Subject: [PATCH 1/2] fix: ensure consistent bit rates in the built-in MPEG-DASH presets --- lib/ffmpeg/presets/dash/h264.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/ffmpeg/presets/dash/h264.rb b/lib/ffmpeg/presets/dash/h264.rb index e333978..7c7089b 100644 --- a/lib/ffmpeg/presets/dash/h264.rb +++ b/lib/ffmpeg/presets/dash/h264.rb @@ -278,6 +278,13 @@ def initialize( h264_presets = preset.usable_h264_presets(media) if media.video_streams? + # Use the highest quality H.264 preset, profile and constant rate factor + # for all video representations, to make sure that the bitrates are + # consistent across all representations. + video_preset h264_presets.first.video_preset + video_profile h264_presets.first.video_profile + constant_rate_factor h264_presets.first.constant_rate_factor, stream_type: 'v' + # Use the default video stream for all representations. h264_presets.each_with_index do |h264_preset, index| map media.video_mapping_id do @@ -287,9 +294,6 @@ def initialize( h264_preset.scale_filter(media), h264_preset.dar_filter(media), stream_index: index - video_preset h264_preset.video_preset, stream_index: index - video_profile h264_preset.video_profile, stream_index: index - constant_rate_factor h264_preset.constant_rate_factor, stream_type: 'v', stream_index: index min_keyframe_interval preset.keyframe_interval * frame_rate, stream_index: index max_keyframe_interval preset.keyframe_interval * frame_rate, stream_index: index force_keyframes "expr:gte(t,n_forced*#{preset.keyframe_interval})", stream_index: index From f430bacd83e540704f54e8a546c6649e14c6cffd Mon Sep 17 00:00:00 2001 From: bajankristof Date: Thu, 5 Jun 2025 10:10:32 +0200 Subject: [PATCH 2/2] chore: update version to 7.1.3 and document changes --- CHANGELOG | 7 ++++++- lib/ffmpeg/version.rb | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2778062..07a2e2d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,9 @@ -== 7.2.2 2025-05-09 +== 7.1.3 2025-06-05 + +Fixes: +* Ensure consistent bit rates for all video representations in the built-in MPEG-DASH presets. + +== 7.1.2 2025-05-09 Fixes: * Removed `-reconnect_at_eof` from `FFMPEG::CommandArgs::NetworkStreaming` to prevent retries diff --git a/lib/ffmpeg/version.rb b/lib/ffmpeg/version.rb index 019ac7f..56b1b92 100644 --- a/lib/ffmpeg/version.rb +++ b/lib/ffmpeg/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FFMPEG - VERSION = '7.1.2' + VERSION = '7.1.3' end