1package eu.siacs.conversations.utils;
2
3import com.otaliastudios.transcoder.strategy.DefaultAudioStrategy;
4import com.otaliastudios.transcoder.strategy.DefaultVideoStrategy;
5
6public final class TranscoderStrategies {
7
8 public static final DefaultVideoStrategy VIDEO_720P = DefaultVideoStrategy.atMost(720)
9 .bitRate(2L * 1000 * 1000)
10 .frameRate(30)
11 .keyFrameInterval(3F)
12 .build();
13
14 public static final DefaultVideoStrategy VIDEO_360P = DefaultVideoStrategy.atMost(360)
15 .bitRate(1000 * 1000)
16 .frameRate(30)
17 .keyFrameInterval(3F)
18 .build();
19
20 //TODO do we want to add 240p (@500kbs) and 1080p (@4mbs?) ?
21 // see suggested bit rates on https://www.videoproc.com/media-converter/bitrate-setting-for-h264.htm
22
23 public static final DefaultAudioStrategy AUDIO_HQ = DefaultAudioStrategy.builder()
24 .bitRate(192 * 1000)
25 .channels(2)
26 .sampleRate(DefaultAudioStrategy.SAMPLE_RATE_AS_INPUT)
27 .build();
28
29 public static final DefaultAudioStrategy AUDIO_MQ = DefaultAudioStrategy.builder()
30 .bitRate(128 * 1000)
31 .channels(2)
32 .sampleRate(DefaultAudioStrategy.SAMPLE_RATE_AS_INPUT)
33 .build();
34
35 //TODO if we add 144p we definitely want to add a lower audio bit rate as well
36
37 private TranscoderStrategies() {
38 throw new IllegalStateException("Do not instantiate me");
39 }
40
41}