From 310eea513e500ba268c61735162e7de4e965d12d Mon Sep 17 00:00:00 2001 From: Joel Widmer Date: Wed, 21 Aug 2024 10:44:50 +0200 Subject: [PATCH 1/3] feat: Add support for -bf option Fixes: #346 --- .../builder/AbstractFFmpegOutputBuilder.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java b/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java index 19b4be98..2b0e36b8 100644 --- a/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java +++ b/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java @@ -67,6 +67,12 @@ public abstract class AbstractFFmpegOutputBuilder Do not use b-frames at all + * + * @param bFrames number of b-frames + * @return this + */ + public T setBFrames(int bFrames) { + this.bFrames = bFrames; + return (T) this; + } + /** * Sets Video Filter * @@ -349,6 +367,10 @@ protected void addVideoFlags(FFmpegBuilder parent, ImmutableList.Builder if (!Strings.isNullOrEmpty(video_bit_stream_filter)) { args.add("-bsf:v", video_bit_stream_filter); } + + if (bFrames != null) { + args.add("-bf", Integer.toString(bFrames)); + } } @Override From a866df53a42e230b5326450b66ae94407ebf079b Mon Sep 17 00:00:00 2001 From: Joel Widmer Date: Wed, 21 Aug 2024 16:05:44 +0200 Subject: [PATCH 2/3] test: Add builder tests for -bf --- .../ffmpeg/builder/AbstractFFmpegOutputBuilderTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilderTest.java b/src/test/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilderTest.java index 483c06c0..1d7fc4d2 100644 --- a/src/test/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilderTest.java +++ b/src/test/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilderTest.java @@ -111,4 +111,13 @@ public void testSetComplexFilter() { assertThat(removeCommon(command), is(ImmutableList.of("-filter_complex", "complex-filter"))); } + + @Test + public void testSetBFrames() { + List command = getBuilder() + .setBFrames(2) + .build(0); + + assertThat(removeCommon(command), is(ImmutableList.of("-bf", "2"))); + } } \ No newline at end of file From 4c44ab78b9274c3e0eadbd8c31428db884a2eb86 Mon Sep 17 00:00:00 2001 From: Joel Widmer Date: Wed, 21 Aug 2024 16:39:41 +0200 Subject: [PATCH 3/3] docs: Fix javadoc --- .../net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java b/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java index 0e1dcbd7..0ee671f0 100644 --- a/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java +++ b/src/main/java/net/bramp/ffmpeg/builder/AbstractFFmpegOutputBuilder.java @@ -128,7 +128,7 @@ public T setVideoPreset(String preset) { /** * Sets the number of b-frames ffmpeg is allowed to use. - * 0 -> Do not use b-frames at all + * 0 means: Do not use b-frames at all * * @param bFrames number of b-frames * @return this