Skip to content

Commit cbbeeac

Browse files
committedAug 11, 2024
test: Add tests regarding duration strings
1 parent 8f396ef commit cbbeeac

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed
 

‎src/test/java/net/bramp/ffmpeg/FFmpegTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@
22

33
import static org.hamcrest.Matchers.hasItem;
44
import static org.junit.Assert.assertEquals;
5+
import static org.junit.Assert.fail;
56
import static org.mockito.Mockito.*;
67
import static org.mockito.hamcrest.MockitoHamcrest.argThat;
78

89
import java.io.IOException;
910
import java.util.List;
11+
import java.util.concurrent.TimeUnit;
1012

1113
import com.google.common.collect.Lists;
14+
import net.bramp.ffmpeg.builder.FFmpegBuilder;
1215
import net.bramp.ffmpeg.fixtures.Codecs;
1316
import net.bramp.ffmpeg.fixtures.Filters;
1417
import net.bramp.ffmpeg.fixtures.Formats;
1518
import net.bramp.ffmpeg.fixtures.ChannelLayouts;
1619
import net.bramp.ffmpeg.fixtures.PixelFormats;
20+
import net.bramp.ffmpeg.fixtures.Samples;
1721
import net.bramp.ffmpeg.info.Filter;
1822
import net.bramp.ffmpeg.lang.NewProcessAnswer;
1923
import org.junit.Before;
@@ -61,6 +65,32 @@ public void testVersion() throws Exception {
6165
verify(runFunc, times(1)).run(argThatHasItem("-version"));
6266
}
6367

68+
@Test
69+
public void testStartOffsetOption() throws Exception {
70+
FFmpeg ffmpeg = new FFmpeg();
71+
72+
FFmpegBuilder builder = ffmpeg.builder().addInput(Samples.big_buck_bunny_720p_1mb).setStartOffset(1, TimeUnit.SECONDS).done().addOutput(Samples.output_mp4).done();
73+
74+
try {
75+
ffmpeg.run(builder);
76+
} catch (Throwable t) {
77+
fail(t.getClass().getSimpleName() + " was thrown");
78+
}
79+
}
80+
81+
@Test
82+
public void testDurationOption() throws Exception {
83+
FFmpeg ffmpeg = new FFmpeg();
84+
85+
FFmpegBuilder builder = ffmpeg.builder().addInput(Samples.big_buck_bunny_720p_1mb).setDuration(1, TimeUnit.SECONDS).done().addOutput(Samples.output_mp4).done();
86+
87+
try {
88+
ffmpeg.run(builder);
89+
} catch (Throwable t) {
90+
fail(t.getClass().getSimpleName() + " was thrown");
91+
}
92+
}
93+
6494
@Test
6595
public void testCodecs() throws IOException {
6696
// Run twice, the second should be cached

‎src/test/java/net/bramp/ffmpeg/builder/FFmpegHlsOutputBuilderTest.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,54 @@ public void testConvertVideoToHls() throws IOException {
106106
assertTrue(Files.exists(segmentFilePath));
107107
}
108108

109+
@Test
110+
public void testConvertVideoToHlsSetHlsTime() throws IOException {
111+
Path manifestFilePath = Paths.get("tmp/output.m3u8");
112+
Path segmentFilePath = Paths.get("tmp/file000.ts");
113+
114+
Files.createDirectories(Paths.get("tmp/"));
115+
Files.deleteIfExists(manifestFilePath);
116+
Files.deleteIfExists(segmentFilePath);
117+
118+
List<String> command = new FFmpegBuilder()
119+
.setInput(Samples.TEST_PREFIX + Samples.base_big_buck_bunny_720p_1mb)
120+
.done()
121+
.addHlsOutput("tmp/output.m3u8")
122+
.setHlsTime(5, TimeUnit.SECONDS)
123+
.setHlsSegmentFileName("tmp/file%03d.ts")
124+
.done()
125+
.build();
126+
127+
new FFmpeg().run(command);
128+
129+
assertTrue(Files.exists(manifestFilePath));
130+
assertTrue(Files.exists(segmentFilePath));
131+
}
132+
133+
@Test
134+
public void testConvertVideoToHlsSetHlsInitTime() throws IOException {
135+
Path manifestFilePath = Paths.get("tmp/output.m3u8");
136+
Path segmentFilePath = Paths.get("tmp/file000.ts");
137+
138+
Files.createDirectories(Paths.get("tmp/"));
139+
Files.deleteIfExists(manifestFilePath);
140+
Files.deleteIfExists(segmentFilePath);
141+
142+
List<String> command = new FFmpegBuilder()
143+
.setInput(Samples.TEST_PREFIX + Samples.base_big_buck_bunny_720p_1mb)
144+
.done()
145+
.addHlsOutput("tmp/output.m3u8")
146+
.setHlsInitTime(5, TimeUnit.SECONDS)
147+
.setHlsSegmentFileName("tmp/file%03d.ts")
148+
.done()
149+
.build();
150+
151+
new FFmpeg().run(command);
152+
153+
assertTrue(Files.exists(manifestFilePath));
154+
assertTrue(Files.exists(segmentFilePath));
155+
}
156+
109157
@Test
110158
public void testHlsTime() {
111159
List<String> command = new FFmpegHlsOutputBuilder(new FFmpegBuilder(), "output.m3u8")

0 commit comments

Comments
 (0)