Skip to content

Commit c7143cb

Browse files
author
Andrea Medeghini
committed
add examples
1 parent fe731b2 commit c7143cb

11 files changed

Lines changed: 420 additions & 0 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@
2121
/ffmpeg4java-windows/src/main/resources/ffmpeg4java.dll
2222
/ffmpeg4java-linux/src/main/resources/libffmpeg4java.so
2323
/ffmpeg4java-macos/src/main/resources/libffmpeg4java.dylib
24+
/ffmpeg4java-macos-examples/output.mov
25+
/ffmpeg4java-linux-examples/output.mov
26+
/ffmpeg4java-windows-examples/output.mov

ffmpeg4java-linux-examples/pom.xml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.nextbreakpoint</groupId>
6+
<artifactId>com.nextbreakpoint.ffmpeg4java</artifactId>
7+
<version>7.0.1-1.0</version>
8+
</parent>
9+
<artifactId>com.nextbreakpoint.ffmpeg4java.linux.examples</artifactId>
10+
<packaging>jar</packaging>
11+
<name>FFmpeg4Java Linux Examples</name>
12+
<description>FFmpeg4Java provides a Java wrapper of FFmpeg library</description>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.nextbreakpoint</groupId>
16+
<artifactId>com.nextbreakpoint.ffmpeg4java.linux</artifactId>
17+
<version>${project.version}</version>
18+
</dependency>
19+
</dependencies>
20+
<build>
21+
<plugins>
22+
<plugin>
23+
<groupId>org.apache.maven.plugins</groupId>
24+
<artifactId>maven-dependency-plugin</artifactId>
25+
<executions>
26+
<execution>
27+
<id>copy-lib</id>
28+
<phase>test-compile</phase>
29+
<goals>
30+
<goal>unpack</goal>
31+
</goals>
32+
<configuration>
33+
<artifactItems>
34+
<artifactItem>
35+
<groupId>com.nextbreakpoint</groupId>
36+
<artifactId>com.nextbreakpoint.ffmpeg4java.linux</artifactId>
37+
<classifier>x86_64</classifier>
38+
<type>jar</type>
39+
<overWrite>true</overWrite>
40+
<outputDirectory>${project.build.directory}/lib</outputDirectory>
41+
</artifactItem>
42+
</artifactItems>
43+
<includes>**/*.so</includes>
44+
</configuration>
45+
</execution>
46+
</executions>
47+
</plugin>
48+
<plugin>
49+
<groupId>org.codehaus.mojo</groupId>
50+
<artifactId>exec-maven-plugin</artifactId>
51+
<executions>
52+
<execution>
53+
<id>run</id>
54+
<phase>test</phase>
55+
<goals>
56+
<goal>exec</goal>
57+
</goals>
58+
<configuration>
59+
<executable>java</executable>
60+
<arguments>
61+
<argument>--enable-preview</argument>
62+
<argument>--enable-native-access=ALL-UNNAMED</argument>
63+
<argument>-classpath</argument>
64+
<classpath/>
65+
<argument>-Djava.library.path=${project.build.directory}/lib</argument>
66+
<argument>com.nextbreakpoint.ffmpeg4java.linux.ConvertVideoMain</argument>
67+
<argument>sample.mpg</argument>
68+
<argument>output.mov</argument>
69+
</arguments>
70+
</configuration>
71+
</execution>
72+
</executions>
73+
</plugin>
74+
</plugins>
75+
</build>
76+
</project>
758 KB
Binary file not shown.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.nextbreakpoint.ffmpeg4java.linux;
2+
3+
import javax.imageio.ImageIO;
4+
import java.awt.image.BufferedImage;
5+
import java.awt.image.DataBufferInt;
6+
import java.io.File;
7+
import java.io.FileOutputStream;
8+
import java.io.IOException;
9+
import java.lang.foreign.Arena;
10+
import java.lang.foreign.MemorySegment;
11+
import java.lang.foreign.ValueLayout;
12+
import java.util.function.BiConsumer;
13+
14+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_alloc_context3;
15+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_close;
16+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_open2;
17+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_parameters_from_context;
18+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_parameters_to_context;
19+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_receive_frame;
20+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_receive_packet;
21+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_send_frame;
22+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.avcodec_send_packet;
23+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.sws_freeContext;
24+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.sws_getCachedContext;
25+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg.sws_scale;
26+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.AV_CODEC_ID_NONE;
27+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.AV_PKT_DATA_CPB_PROPERTIES;
28+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_dump_format;
29+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_frame_alloc;
30+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_guess_format;
31+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_packet_alloc;
32+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_packet_rescale_ts;
33+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_packet_unref;
34+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_read_frame;
35+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_stream_new_side_data;
36+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_write_frame;
37+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.av_write_trailer;
38+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avcodec_find_decoder;
39+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avcodec_find_encoder;
40+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_alloc_context;
41+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_close_input;
42+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_find_stream_info;
43+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_free_context;
44+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_new_stream;
45+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_open_input;
46+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avformat_write_header;
47+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avio_close;
48+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_1.avio_open2;
49+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.AVIO_FLAG_WRITE;
50+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.AVMEDIA_TYPE_VIDEO;
51+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.AV_PIX_FMT_RGB24;
52+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.AV_PIX_FMT_YUV420P;
53+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.C_POINTER;
54+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.SWS_BILINEAR;
55+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.av_free;
56+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.av_image_alloc;
57+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.av_image_fill_arrays;
58+
import static com.nextbreakpoint.ffmpeg4java.linux.Libffmpeg_2.av_image_get_buffer_size;
59+
import static java.lang.foreign.MemorySegment.NULL;
60+
61+
class GenerateVideo {
62+
}

ffmpeg4java-macos-examples/pom.xml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.nextbreakpoint</groupId>
6+
<artifactId>com.nextbreakpoint.ffmpeg4java</artifactId>
7+
<version>7.0.1-1.0</version>
8+
</parent>
9+
<artifactId>com.nextbreakpoint.ffmpeg4java.macos.examples</artifactId>
10+
<packaging>jar</packaging>
11+
<name>FFmpeg4Java MacOS Examples</name>
12+
<description>FFmpeg4Java provides a Java wrapper of FFmpeg library</description>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.nextbreakpoint</groupId>
16+
<artifactId>com.nextbreakpoint.ffmpeg4java.macos</artifactId>
17+
<version>${project.version}</version>
18+
</dependency>
19+
</dependencies>
20+
<build>
21+
<plugins>
22+
<plugin>
23+
<groupId>org.apache.maven.plugins</groupId>
24+
<artifactId>maven-dependency-plugin</artifactId>
25+
<executions>
26+
<execution>
27+
<id>copy-lib</id>
28+
<phase>test-compile</phase>
29+
<goals>
30+
<goal>unpack</goal>
31+
</goals>
32+
<configuration>
33+
<artifactItems>
34+
<artifactItem>
35+
<groupId>com.nextbreakpoint</groupId>
36+
<artifactId>com.nextbreakpoint.ffmpeg4java.macos</artifactId>
37+
<classifier>x86_64</classifier>
38+
<type>jar</type>
39+
<overWrite>true</overWrite>
40+
<outputDirectory>${project.build.directory}/lib</outputDirectory>
41+
</artifactItem>
42+
</artifactItems>
43+
<includes>**/*.dylib</includes>
44+
</configuration>
45+
</execution>
46+
</executions>
47+
</plugin>
48+
<plugin>
49+
<groupId>org.codehaus.mojo</groupId>
50+
<artifactId>exec-maven-plugin</artifactId>
51+
<executions>
52+
<execution>
53+
<id>run</id>
54+
<phase>test</phase>
55+
<goals>
56+
<goal>exec</goal>
57+
</goals>
58+
<configuration>
59+
<executable>java</executable>
60+
<arguments>
61+
<argument>--enable-preview</argument>
62+
<argument>--enable-native-access=ALL-UNNAMED</argument>
63+
<argument>-classpath</argument>
64+
<classpath/>
65+
<argument>-Djava.library.path=${project.build.directory}/lib</argument>
66+
<argument>com.nextbreakpoint.ffmpeg4java.macos.ConvertVideoMain</argument>
67+
<argument>sample.mpg</argument>
68+
<argument>output.mov</argument>
69+
</arguments>
70+
</configuration>
71+
</execution>
72+
</executions>
73+
</plugin>
74+
</plugins>
75+
</build>
76+
</project>
758 KB
Binary file not shown.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.nextbreakpoint.ffmpeg4java.macos;
2+
3+
import javax.imageio.ImageIO;
4+
import java.awt.image.BufferedImage;
5+
import java.awt.image.DataBufferInt;
6+
import java.io.File;
7+
import java.io.FileOutputStream;
8+
import java.io.IOException;
9+
import java.lang.foreign.Arena;
10+
import java.lang.foreign.MemorySegment;
11+
import java.lang.foreign.ValueLayout;
12+
import java.util.function.BiConsumer;
13+
14+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_alloc_context3;
15+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_close;
16+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_open2;
17+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_parameters_from_context;
18+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_parameters_to_context;
19+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_receive_frame;
20+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_receive_packet;
21+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_send_frame;
22+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.avcodec_send_packet;
23+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.sws_freeContext;
24+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.sws_getCachedContext;
25+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg.sws_scale;
26+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.AV_CODEC_ID_NONE;
27+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.AV_PKT_DATA_CPB_PROPERTIES;
28+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_dump_format;
29+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_frame_alloc;
30+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_guess_format;
31+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_packet_alloc;
32+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_packet_rescale_ts;
33+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_packet_unref;
34+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_read_frame;
35+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_stream_new_side_data;
36+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_write_frame;
37+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.av_write_trailer;
38+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avcodec_find_decoder;
39+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avcodec_find_encoder;
40+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_alloc_context;
41+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_close_input;
42+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_find_stream_info;
43+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_free_context;
44+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_new_stream;
45+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_open_input;
46+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avformat_write_header;
47+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avio_close;
48+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_1.avio_open2;
49+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.AVIO_FLAG_WRITE;
50+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.AVMEDIA_TYPE_VIDEO;
51+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.AV_PIX_FMT_RGB24;
52+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.AV_PIX_FMT_YUV420P;
53+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.C_POINTER;
54+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.SWS_BILINEAR;
55+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.av_free;
56+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.av_image_alloc;
57+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.av_image_fill_arrays;
58+
import static com.nextbreakpoint.ffmpeg4java.macos.Libffmpeg_2.av_image_get_buffer_size;
59+
import static java.lang.foreign.MemorySegment.NULL;
60+
61+
class GenerateVideo {
62+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.nextbreakpoint</groupId>
6+
<artifactId>com.nextbreakpoint.ffmpeg4java</artifactId>
7+
<version>7.0.1-1.0</version>
8+
</parent>
9+
<artifactId>com.nextbreakpoint.ffmpeg4java.windows.examples</artifactId>
10+
<packaging>jar</packaging>
11+
<name>FFmpeg4Java Windows Examples</name>
12+
<description>FFmpeg4Java provides a Java wrapper of FFmpeg library</description>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.nextbreakpoint</groupId>
16+
<artifactId>com.nextbreakpoint.ffmpeg4java.windows</artifactId>
17+
<version>${project.version}</version>
18+
</dependency>
19+
</dependencies>
20+
<build>
21+
<plugins>
22+
<plugin>
23+
<groupId>org.apache.maven.plugins</groupId>
24+
<artifactId>maven-dependency-plugin</artifactId>
25+
<executions>
26+
<execution>
27+
<id>copy-lib</id>
28+
<phase>test-compile</phase>
29+
<goals>
30+
<goal>unpack</goal>
31+
</goals>
32+
<configuration>
33+
<artifactItems>
34+
<artifactItem>
35+
<groupId>com.nextbreakpoint</groupId>
36+
<artifactId>com.nextbreakpoint.ffmpeg4java.windows</artifactId>
37+
<classifier>x86_64</classifier>
38+
<type>jar</type>
39+
<overWrite>true</overWrite>
40+
<outputDirectory>${project.build.directory}/lib</outputDirectory>
41+
</artifactItem>
42+
</artifactItems>
43+
<includes>**/*.dll</includes>
44+
</configuration>
45+
</execution>
46+
</executions>
47+
</plugin>
48+
<plugin>
49+
<groupId>org.codehaus.mojo</groupId>
50+
<artifactId>exec-maven-plugin</artifactId>
51+
<executions>
52+
<execution>
53+
<id>run</id>
54+
<phase>test</phase>
55+
<goals>
56+
<goal>exec</goal>
57+
</goals>
58+
<configuration>
59+
<executable>java</executable>
60+
<arguments>
61+
<argument>--enable-preview</argument>
62+
<argument>--enable-native-access=ALL-UNNAMED</argument>
63+
<argument>-classpath</argument>
64+
<classpath/>
65+
<argument>-Djava.library.path=${project.build.directory}/lib</argument>
66+
<argument>com.nextbreakpoint.ffmpeg4java.windows.ConvertVideoMain</argument>
67+
<argument>sample.mpg</argument>
68+
<argument>output.mov</argument>
69+
</arguments>
70+
</configuration>
71+
</execution>
72+
</executions>
73+
</plugin>
74+
</plugins>
75+
</build>
76+
</project>
758 KB
Binary file not shown.

0 commit comments

Comments
 (0)