diff --git a/README.md b/README.md
index deb015f..945e273 100644
--- a/README.md
+++ b/README.md
@@ -13,5 +13,5 @@ nvm clean package
```
## Run
```
-java -jar ./target/paperffeditor-0.1.6-jar-with-dependencies.jar
+java -jar ./target/paperffeditor-{version}-jar-with-dependencies.jar
```
diff --git a/pom.xml b/pom.xml
index 704668f..65d1401 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.papersaccul.paperffeditor
paperffeditor
- 0.1.6
+ 0.1.7
com.papersaccul.paperffeditor
diff --git a/src/main/java/com/papersaccul/paperffeditor/model/VideoSettings.java b/src/main/java/com/papersaccul/paperffeditor/model/VideoSettings.java
index 3aff297..321dde2 100644
--- a/src/main/java/com/papersaccul/paperffeditor/model/VideoSettings.java
+++ b/src/main/java/com/papersaccul/paperffeditor/model/VideoSettings.java
@@ -84,7 +84,7 @@ private void setDefaultSettingsOnInputFile(String inputFilePath) {
}
notifyObservers();
}
-
+
private List observers = new ArrayList<>();
diff --git a/src/main/java/com/papersaccul/paperffeditor/util/FFmpegCommandBuilder.java b/src/main/java/com/papersaccul/paperffeditor/util/FFmpegCommandBuilder.java
index c781014..264ac1f 100644
--- a/src/main/java/com/papersaccul/paperffeditor/util/FFmpegCommandBuilder.java
+++ b/src/main/java/com/papersaccul/paperffeditor/util/FFmpegCommandBuilder.java
@@ -142,17 +142,20 @@ public static Map parseVideoInfo(String filePath, VideoSettings
}
Map details = new HashMap<>();
+ // String videoBitrate = "";
+ // String audioBitrate = "";
try {
Process process = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line;
- boolean isVideo = false;
while ((line = reader.readLine()) != null) {
- if (line.contains("Stream #0:0") && line.contains("Video: ")) {
- isVideo = true;
+ // Video
+ if (line.contains("Stream") && line.contains("Video:")) {
+
details.put("videoCodec", cleanCodecName(extractDetail(line, "Video: ")));
String drawingMethodDetail = extractDetail(line, "Video: ", "(").trim();
details.put("drawingMethod", drawingMethodDetail);
+
String resolutionDetail = extractDetail(line, "),", "[SAR");
if (resolutionDetail.isEmpty()) {
resolutionDetail = extractDetail(line, drawingMethodDetail + ")", "[SAR");
@@ -163,20 +166,17 @@ public static Map parseVideoInfo(String filePath, VideoSettings
details.put("videoWidth", width);
details.put("videoHeight", resolutionParts[1].split(" ")[0].trim());
}
-
- String frameRateDetail = extractFrameRate(line);
- details.put("frameRate", frameRateDetail);
- } else if (line.contains("Stream #0:1") || (line.contains("Stream #0:0") && !isVideo)) {
+ details.put("frameRate", extractFrameRate(line));
+ details.put("videoBitrate", extractBitrate(line));
+
+ // Audio
+ } else if (line.contains("Stream") && line.contains("Audio:")) {
details.put("audioCodec", cleanCodecName(extractDetail(line, "Audio: ")));
details.put("audioChannels", extractDetail(line, "Audio: ", ","));
-
- String audioBitrateDetail = extractAudioBitrate(line);
- details.put("audioBitrate", audioBitrateDetail);
- }
- if (line.contains("bitrate:")) {
- details.put("videoBitrate", extractDetail(line, "bitrate: "));
+ details.put("audioBitrate", extractAudioBitrate(line));
}
}
+
} catch (IOException e) {
e.printStackTrace();
}
@@ -219,4 +219,16 @@ private static String extractAudioBitrate(String line) {
}
return "Detail not found";
}
+
+ private static String extractBitrate(String line) {
+ String bitrate = "Detail not found";
+ String[] parts = line.split(",");
+ for (String part : parts) {
+ if (part.trim().contains("kb/s")) {
+ bitrate = part.trim().split(" ")[0];
+ break;
+ }
+ }
+ return bitrate;
+ }
}