forked from j62/ctbrec
1
0
Fork 0

Add settings for FFmpeg

This commit is contained in:
0xboobface 2020-02-22 15:40:01 +01:00
parent 855604aab5
commit 208aa16c80
1 changed files with 45 additions and 10 deletions

View File

@ -77,6 +77,8 @@ public class SettingsTab extends Tab implements TabSelectionListener {
private TextField onlineCheckIntervalInSecs; private TextField onlineCheckIntervalInSecs;
private TextField leaveSpaceOnDevice; private TextField leaveSpaceOnDevice;
private TextField minimumLengthInSecs; private TextField minimumLengthInSecs;
private TextField ffmpegParameters;
private TextField fileExtension;
private CheckBox useAuthentication = new CheckBox(); private CheckBox useAuthentication = new CheckBox();
private CheckBox useTLS = new CheckBox(); private CheckBox useTLS = new CheckBox();
private CheckBox chooseStreamQuality = new CheckBox(); private CheckBox chooseStreamQuality = new CheckBox();
@ -447,7 +449,39 @@ public class SettingsTab extends Tab implements TabSelectionListener {
} }
}); });
GridPane.setMargin(minimumLengthInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(minimumLengthInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN));
layout.add(minimumLengthInSecs, 1, row); layout.add(minimumLengthInSecs, 1, row++);
tt = new Tooltip("FFmpeg parameters to use when merging stream segments");
l = new Label("FFmpeg parameters");
l.setTooltip(tt);
layout.add(l, 0, row);
String ffmpegParams = Config.getInstance().getSettings().ffmpegMergedDownloadArgs;
ffmpegParameters = new TextField(ffmpegParams);
ffmpegParameters.setTooltip(tt);
ffmpegParameters.textProperty().addListener((observable, oldValue, newValue) -> {
if(!ffmpegParameters.getText().isEmpty()) {
Config.getInstance().getSettings().ffmpegMergedDownloadArgs = ffmpegParameters.getText();
saveConfig();
}
});
GridPane.setMargin(ffmpegParameters, new Insets(0, 0, 0, CHECKBOX_MARGIN));
layout.add(ffmpegParameters, 1, row++);
tt = new Tooltip("File extension to use for recordings");
l = new Label("File Extension");
l.setTooltip(tt);
layout.add(l, 0, row);
String fileSuffix = Config.getInstance().getSettings().ffmpegFileSuffix;
fileExtension = new TextField(fileSuffix);
fileExtension.setTooltip(tt);
fileExtension.textProperty().addListener((observable, oldValue, newValue) -> {
if(!fileExtension.getText().isEmpty()) {
Config.getInstance().getSettings().ffmpegFileSuffix = fileExtension.getText();
saveConfig();
}
});
GridPane.setMargin(fileExtension, new Insets(0, 0, 0, CHECKBOX_MARGIN));
layout.add(fileExtension, 1, row);
TitledPane locations = new TitledPane("Recorder", layout); TitledPane locations = new TitledPane("Recorder", layout);
locations.setCollapsible(false); locations.setCollapsible(false);
@ -534,6 +568,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
GridPane.setFillWidth(mediaPlayer, true); GridPane.setFillWidth(mediaPlayer, true);
GridPane.setHgrow(mediaPlayer, Priority.ALWAYS); GridPane.setHgrow(mediaPlayer, Priority.ALWAYS);
GridPane.setMargin(mediaPlayer, new Insets(0, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(mediaPlayer, new Insets(0, 0, 0, CHECKBOX_MARGIN));
GridPane.setColumnSpan(mediaPlayer, 3);
layout.add(mediaPlayer, 1, row++); layout.add(mediaPlayer, 1, row++);
Label l = new Label("Allow multiple players"); Label l = new Label("Allow multiple players");
@ -545,10 +580,10 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(multiplePlayers, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(multiplePlayers, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(multiplePlayers, 1, row++); layout.add(multiplePlayers, 1, row);
l = new Label("Show \"Player Starting\" Message"); l = new Label("Show \"Player Starting\" Message");
layout.add(l, 0, row); layout.add(l, 2, row);
showPlayerStarting.setSelected(Config.getInstance().getSettings().showPlayerStarting); showPlayerStarting.setSelected(Config.getInstance().getSettings().showPlayerStarting);
showPlayerStarting.setOnAction(e -> { showPlayerStarting.setOnAction(e -> {
Config.getInstance().getSettings().showPlayerStarting = showPlayerStarting.isSelected(); Config.getInstance().getSettings().showPlayerStarting = showPlayerStarting.isSelected();
@ -556,7 +591,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(showPlayerStarting, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(showPlayerStarting, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(showPlayerStarting, 1, row++); layout.add(showPlayerStarting, 3, row++);
l = new Label("Display stream resolution in overview"); l = new Label("Display stream resolution in overview");
layout.add(l, 0, row); layout.add(l, 0, row);
@ -568,10 +603,10 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(loadResolution, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(loadResolution, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(loadResolution, 1, row++); layout.add(loadResolution, 1, row);
l = new Label("Manually select stream quality"); l = new Label("Manually select stream quality");
layout.add(l, 0, row); layout.add(l, 2, row);
chooseStreamQuality.setSelected(Config.getInstance().getSettings().chooseStreamQuality); chooseStreamQuality.setSelected(Config.getInstance().getSettings().chooseStreamQuality);
chooseStreamQuality.setOnAction(e -> { chooseStreamQuality.setOnAction(e -> {
Config.getInstance().getSettings().chooseStreamQuality = chooseStreamQuality.isSelected(); Config.getInstance().getSettings().chooseStreamQuality = chooseStreamQuality.isSelected();
@ -579,7 +614,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(chooseStreamQuality, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(chooseStreamQuality, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(chooseStreamQuality, 1, row++); layout.add(chooseStreamQuality, 3, row++);
l = new Label("Enable live previews (experimental)"); l = new Label("Enable live previews (experimental)");
layout.add(l, 0, row); layout.add(l, 0, row);
@ -591,12 +626,12 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(livePreviews, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(livePreviews, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(livePreviews, 1, row++); layout.add(livePreviews, 1, row);
Tooltip tt = new Tooltip("The overviews will still be updated, but the thumbnails won't be changed. This is useful for less powerful systems."); Tooltip tt = new Tooltip("The overviews will still be updated, but the thumbnails won't be changed. This is useful for less powerful systems.");
l = new Label("Update thumbnails"); l = new Label("Update thumbnails");
l.setTooltip(tt); l.setTooltip(tt);
layout.add(l, 0, row); layout.add(l, 2, row);
updateThumbnails.setTooltip(tt); updateThumbnails.setTooltip(tt);
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails); updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
updateThumbnails.setOnAction(e -> { updateThumbnails.setOnAction(e -> {
@ -605,7 +640,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}); });
GridPane.setMargin(l, new Insets(3, 0, 0, 0)); GridPane.setMargin(l, new Insets(3, 0, 0, 0));
GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN)); GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
layout.add(updateThumbnails, 1, row++); layout.add(updateThumbnails, 3, row++);
tt = new Tooltip("Update the thumbnail overviews every x seconds"); tt = new Tooltip("Update the thumbnail overviews every x seconds");
l = new Label("Update overview interval (seconds)"); l = new Label("Update overview interval (seconds)");