mirror of
https://github.com/aNNiMON/ffmpegbot
synced 2024-09-19 22:54:20 +03:00
Add audio crystalizer
This commit is contained in:
parent
5a94344a1f
commit
55d1eea1a6
@ -44,6 +44,14 @@ public class FFmpegCommandBuilder implements Visitor<MediaSession> {
|
||||
audioCommands.add(p.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(AudioCrystalizer p, MediaSession input) {
|
||||
if (discardAudio) return;
|
||||
final String value = p.getValue();
|
||||
if (value.isEmpty() || value.equals("0")) return;
|
||||
audioFilters.add("crystalizer=" + value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(AudioEffect p, MediaSession input) {
|
||||
if (discardAudio) return;
|
||||
|
@ -5,6 +5,7 @@ import com.annimon.ffmpegbot.parameters.*;
|
||||
public interface Visitor<I> {
|
||||
void visit(DisableAudio p, I input);
|
||||
void visit(AudioBitrate p, I input);
|
||||
void visit(AudioCrystalizer p, I input);
|
||||
void visit(AudioEffect p, I input);
|
||||
void visit(AudioPitch p, I input);
|
||||
void visit(AudioVolume p, I input);
|
||||
|
@ -0,0 +1,24 @@
|
||||
package com.annimon.ffmpegbot.parameters;
|
||||
|
||||
import com.annimon.ffmpegbot.commands.ffmpeg.Visitor;
|
||||
import java.util.List;
|
||||
|
||||
public class AudioCrystalizer extends StringParameter {
|
||||
private static final List<String> VALUES = List.of(
|
||||
"-8", "-4", "-2", "0", "2", "4", "8"
|
||||
);
|
||||
|
||||
public AudioCrystalizer() {
|
||||
super("crystalizer", "Audio crystalizer", VALUES, "0");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int defaultColumnsCount() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <I> void accept(Visitor<I> visitor, I input) {
|
||||
visitor.visit(this, input);
|
||||
}
|
||||
}
|
@ -3,13 +3,13 @@ package com.annimon.ffmpegbot.parameters;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class BooleanParameter extends Parameter<Boolean> {
|
||||
public BooleanParameter(String id, String name, Boolean value) {
|
||||
protected BooleanParameter(String id, String name, Boolean value) {
|
||||
super(id, name, List.of(false, true), value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describeValue(Boolean value) {
|
||||
if (value) {
|
||||
if (value != null && value) {
|
||||
return "ON";
|
||||
} else {
|
||||
return "OFF";
|
||||
|
@ -3,7 +3,7 @@ package com.annimon.ffmpegbot.parameters;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class StringParameter extends Parameter<String> {
|
||||
public StringParameter(String id, String name, List<String> possibleValues, String value) {
|
||||
protected StringParameter(String id, String name, List<String> possibleValues, String value) {
|
||||
super(id, name, possibleValues, value);
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ public class AudioResolver implements ParametersResolver {
|
||||
disableAudioParam(parameters, fileInfo.fileType());
|
||||
parameters.addAll(List.of(
|
||||
new AudioBitrate(),
|
||||
new AudioCrystalizer(),
|
||||
new AudioEffect(),
|
||||
new AudioPitch(),
|
||||
new AudioVolume()
|
||||
|
Loading…
Reference in New Issue
Block a user