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}