Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- final ArrayList<SilenceInfo> silence = new ArrayList<SilenceInfo>();
- ProcessBuilder n = new ProcessBuilder();
- // just run silence detect to null
- List<String> meta = new ArrayList<String>();
- meta.add("ffmpeg");
- meta.add("-i");
- meta.add("PATH/TO/MP3");
- meta.add("-af");
- meta.add("silencedetect=n=-50dB:d=1");
- meta.add("-f");
- meta.add("null");
- meta.add("-");
- n.command(meta);
- // TODO: run it, parse the lines and add the SilenceInfos to silence!
- // we got the silence now!
- double firstSilenceEnd = 0, lastSilenceStart = 0;
- boolean cutStart = false, cutEnd = false;
- // no silence at all
- if(silence.size() == 0) {
- // skip
- } else if(silence.size() == 1) {
- // has to be at the end because no end was given
- lastSilenceStart = silence.get(0).getTimeStart();
- cutEnd = true;
- } else {
- // silence at all ends
- for(SilenceInfo s : silence) {
- if(firstSilenceEnd == 0 && s.getTimeEnd() != -1)
- firstSilenceEnd = s.getTimeEnd();
- if(s.getTimeStart() != -1)
- lastSilenceStart = s.getTimeStart();
- }
- cutStart = true;
- cutEnd = true;
- }
- n = new ProcessBuilder();
- meta = new ArrayList<String>();
- meta.add("ffmpeg");
- meta.add("-i");
- meta.add("PATH/TO/MP3);
- if(cutStart) {
- meta.add("-ss");
- meta.add(firstSilenceEnd + "");
- }
- if(cutEnd) {
- meta.add("-t");
- meta.add((lastSilenceStart - firstSilenceEnd) + "");
- }
- meta.add("-y");
- meta.add("-ab");
- meta.add("AUDIO BIRATE EG 192k");
- meta.add("PATH/TO/TARGET");
- n.command(meta);
- // TODO: run it
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement