View difference between Paste ID: 9FUisQp3 and wAyAXuX6
SHOW: | | - or go back to the newest paste.
1
final ArrayList<SilenceInfo> silence = new ArrayList<SilenceInfo>();
2
3
ProcessBuilder n = new ProcessBuilder();
4
5
// just run silence detect to null
6
List<String> meta = new ArrayList<String>();
7
meta.add("ffmpeg");
8
meta.add("-i");
9
meta.add("PATH/TO/MP3");
10
meta.add("-af");
11
meta.add("silencedetect=n=-50dB:d=1");
12
meta.add("-f");
13
meta.add("null");
14
meta.add("-");
15
n.command(meta);
16
17
// TODO: run it, parse the lines and add the SilenceInfos to silence!
18
19
// we got the silence now!		
20
double firstSilenceEnd = 0, lastSilenceStart = 0;
21
22
boolean cutStart = false, cutEnd = false;
23
24
// no silence at all
25
if(silence.size() == 0) {
26
	// skip 
27
} else if(silence.size() == 1) {
28
	// has to be at the end because no end was given
29
	lastSilenceStart = silence.get(0).getTimeStart();
30
	cutEnd = true;
31
} else {
32
	// silence at all ends
33
	for(SilenceInfo s : silence) {
34
		if(firstSilenceEnd == 0 && s.getTimeEnd() != -1)
35
			firstSilenceEnd = s.getTimeEnd();
36
		
37
		if(s.getTimeStart() != -1)
38
			lastSilenceStart = s.getTimeStart();
39
	}
40
	cutStart = true;
41
	cutEnd = true;
42
}
43
44
n = new ProcessBuilder();
45
46
meta = new ArrayList<String>();
47
meta.add("ffmpeg");
48
meta.add("-i");
49
meta.add("PATH/TO/MP3);
50
if(cutStart) {
51
	meta.add("-ss");
52
	meta.add(firstSilenceEnd + "");
53
}
54
if(cutEnd) {
55
	meta.add("-t");
56
	meta.add((lastSilenceStart - firstSilenceEnd) + "");
57
}
58
meta.add("-y");
59
meta.add("-ab");
60
meta.add("AUDIO BIRATE EG 192k");
61
meta.add("PATH/TO/TARGET");
62
n.command(meta);
63
64
// TODO: run it