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());
|
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
|
@Override
|
||||||
public void visit(AudioEffect p, MediaSession input) {
|
public void visit(AudioEffect p, MediaSession input) {
|
||||||
if (discardAudio) return;
|
if (discardAudio) return;
|
||||||
|
@ -5,6 +5,7 @@ import com.annimon.ffmpegbot.parameters.*;
|
|||||||
public interface Visitor<I> {
|
public interface Visitor<I> {
|
||||||
void visit(DisableAudio p, I input);
|
void visit(DisableAudio p, I input);
|
||||||
void visit(AudioBitrate p, I input);
|
void visit(AudioBitrate p, I input);
|
||||||
|
void visit(AudioCrystalizer p, I input);
|
||||||
void visit(AudioEffect p, I input);
|
void visit(AudioEffect p, I input);
|
||||||
void visit(AudioPitch p, I input);
|
void visit(AudioPitch p, I input);
|
||||||
void visit(AudioVolume 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;
|
import java.util.List;
|
||||||
|
|
||||||
public abstract class BooleanParameter extends Parameter<Boolean> {
|
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);
|
super(id, name, List.of(false, true), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String describeValue(Boolean value) {
|
public String describeValue(Boolean value) {
|
||||||
if (value) {
|
if (value != null && value) {
|
||||||
return "ON";
|
return "ON";
|
||||||
} else {
|
} else {
|
||||||
return "OFF";
|
return "OFF";
|
||||||
|
@ -3,7 +3,7 @@ package com.annimon.ffmpegbot.parameters;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public abstract class StringParameter extends Parameter<String> {
|
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);
|
super(id, name, possibleValues, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ public class AudioResolver implements ParametersResolver {
|
|||||||
disableAudioParam(parameters, fileInfo.fileType());
|
disableAudioParam(parameters, fileInfo.fileType());
|
||||||
parameters.addAll(List.of(
|
parameters.addAll(List.of(
|
||||||
new AudioBitrate(),
|
new AudioBitrate(),
|
||||||
|
new AudioCrystalizer(),
|
||||||
new AudioEffect(),
|
new AudioEffect(),
|
||||||
new AudioPitch(),
|
new AudioPitch(),
|
||||||
new AudioVolume()
|
new AudioVolume()
|
||||||
|
Loading…
Reference in New Issue
Block a user