# Loongnix-Desktop上编译EasyMedia
在`loongnix-desktop`系统上编译`Easymedia`,依赖ffmpeg4.4-1.5.6版本。
## 安装编译
**1. 安装系统依赖**
```
sudo apt install git maven openjdk-8-jdk ffmpeg libavutil-dev libswresample-dev libavdevice-dev libavfilter-dev libswscale-dev libavformat-dev libavcodec-dev
```
**2. 编译ffmpeg-4.4-1.5.6-linux-loongarch64.jar**
EasyMedia强依赖ffmpeg,loongson的maven仓库的版本是6.0,因此我们需要先编译ffmpeg的4.4版本。
- 下载javacpp-presets源码
```
git clone https://github.com/bytedeco/javacpp-presets.git
切换至1.5.6版本
git checkout 1.5.6
```
- 编辑pom.xml文件
```
添加架构,
${javacpp.platform}${javacpp.platform.extension}
添加 头文件路径, 在合适路径插入includePath linkPath
org.bytedeco
javacpp
/usr/include/loongarch64-linux-gnu/
/usr/lib/loongarch64-linux-gnu/
```
- 执行编译等到ffmpeg-linux-loongarch64.jar
```
cd ffmpeg
mvn install -Djavacpp.platform=linux-loongarch64 -Djavacpp.cppbuild.skip=true
编译完成之后,jar在target下
loongson@loongson-pc:~/javacpp-presets$ ls -l ffmpeg/target/
总用量 11592
drwxr-xr-x 3 loongson loongson 17 4月 23 13:36 classes
-rw-r--r-- 1 loongson loongson 312987 4月 23 13:56 ffmpeg.jar
-rw-r--r-- 1 loongson loongson 11132978 4月 23 13:56 ffmpeg-linux-loongarch64.jar
-rw-r--r-- 1 loongson loongson 415600 4月 23 13:56 ffmpeg-sources.jar
drwxr-xr-x 3 loongson loongson 25 4月 23 13:36 generated-sources
drwxr-xr-x 2 loongson loongson 51 4月 23 13:57 javadoc-bundle-options
drwxr-xr-x 2 loongson loongson 28 4月 23 13:56 maven-archiver
drwxr-xr-x 3 loongson loongson 35 4月 23 13:36 maven-status
drwxr-xr-x 3 loongson loongson 31 4月 23 13:56 moditect
drwxr-xr-x 4 loongson loongson 33 4月 23 13:55 native
```
**3. 将ffmpeg-linux-loongarch64.jar手动安装到 Maven 本地仓库中**
因为EasyMedia依赖ffmpeg-linux-loongarch64.jar包,我们需要将这个包添加到EasyMedia源码中生成一个完整的jar包。
```
mvn install:install-file \
-Dfile=/home/loongson/javacpp-presets/ffmpeg/target/ffmpeg-linux-loongarch64.jar \
-DgroupId=org.bytedeco \
-DartifactId=ffmpeg \
-Dversion=4.4-1.5.6 \
-Dclassifier=linux-loongarch64 \
-Dpackaging=jar
# 安装后,JAR 会被复制到:
~/.m2/repository/org/bytedeco/ffmpeg/4.4-1.5.6/ffmpeg-4.4-1.5.6-linux-loongarch64.jar
# 同时会生成 pom.xml 文件:
~/.m2/repository/org/bytedeco/ffmpeg/4.4-1.5.6/ffmpeg-4.4-1.5.6.pom
随后在编译Easym的时候会将该jar包引入。
```
**4. 修改EasyMedia的pom文件**
```
添加loongarch64架构,删除其他架构
org.bytedeco
ffmpeg
linux-loongarch64
```
添加龙芯的maven源
```
z主要添加位置。
loongson
Loongson Maven
https://maven.loongnix.cn/loongarchabi1/maven/
true
true
loongson
Loongson Maven
https://maven.loongnix.cn/loongarchabi1/maven/
true
true
```
**5. 编译生成EasyMedia的jar包**
```
mvn clean package -DskipTests
-DskipTests 跳过测试
```