Skip to content

Commit fbdeffc

Browse files
author
Roland Kersche
committed
Finish v1.22.0
2 parents 30afce3 + 979eb10 commit fbdeffc

8 files changed

Lines changed: 180 additions & 7 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Add this to your pom.xml:
1111
<dependency>
1212
<groupId>com.bitmovin.api</groupId>
1313
<artifactId>bitmovin-java</artifactId>
14-
<version>1.21.0</version>
14+
<version>1.22.0</version>
1515
</dependency>
1616
```
1717

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.bitmovin.api</groupId>
66
<artifactId>bitmovin-java</artifactId>
7-
<version>1.21.0</version>
7+
<version>1.22.0</version>
88
<name>Bitmovin Java Client</name>
99
<url>https://github.com/bitmovin/bitmovin-java</url>
1010
<description>JAVA-Client which enables you to seamlessly integrate the all new Bitmovin API into your existing projects.</description>

src/main/java/com/bitmovin/api/BitmovinApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public class BitmovinApi
4747
private static String X_API_CLIENT_VERSION_CONFIGURATION_KEY = "x-api-client-version";
4848

4949
private static String DEFAULT_X_API_CLIENT = "bitmovin-java-api";
50-
private static String DEFAULT_X_API_CLIENT_VERSION = "1.21.0";
50+
private static String DEFAULT_X_API_CLIENT_VERSION = "1.22.0";
5151

5252
private Properties properties;
5353

src/main/java/com/bitmovin/api/constants/ApiUrls.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public class ApiUrls
8282
public static final String progressiveMovMuxings = "encoding/encodings/{encoding_id}/muxings/progressive-mov";
8383
public static final String broadcastTsMuxings = "encoding/encodings/{encoding_id}/muxings/broadcast-ts";
8484
public static final String broadcastTsMuxingDetails = "encoding/encodings/{encoding_id}/muxings/broadcast-ts/{muxingId}";
85+
public static final String mp3Muxings = "encoding/encodings/{encoding_id}/muxings/mp3";
8586

8687
public static final String widevineDrms = "encoding/encodings/{encoding_id}/muxings/fmp4/{muxing_id}/drm/widevine";
8788
public static final String playReadyDrms = "encoding/encodings/{encoding_id}/muxings/fmp4/{muxing_id}/drm/playready";
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.bitmovin.api.encoding.encodings.muxing;
2+
3+
public class MP3Muxing extends Muxing
4+
{
5+
private String filename;
6+
7+
public String getFilename()
8+
{
9+
return filename;
10+
}
11+
12+
public void setFilename(String filename)
13+
{
14+
this.filename = filename;
15+
}
16+
}

src/main/java/com/bitmovin/api/resource/encoding/EncodingMuxingResource.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.bitmovin.api.encoding.encodings.drms.PrimeTimeDrm;
1414
import com.bitmovin.api.encoding.encodings.drms.WidevineDrm;
1515
import com.bitmovin.api.encoding.encodings.muxing.FMP4Muxing;
16+
import com.bitmovin.api.encoding.encodings.muxing.MP3Muxing;
1617
import com.bitmovin.api.encoding.encodings.muxing.MP4Muxing;
1718
import com.bitmovin.api.encoding.encodings.muxing.ProgressiveMOVMuxing;
1819
import com.bitmovin.api.encoding.encodings.muxing.ProgressiveTSMuxing;
@@ -223,4 +224,10 @@ public BroadcastTsMuxing addBroadcastTsMuxingToEncoding(Encoding encoding, Broad
223224
String newUrl = ApiUrls.broadcastTsMuxings.replace("{encoding_id}", encoding.getId());
224225
return RestClient.post(this.headers, newUrl, muxing);
225226
}
227+
228+
public MP3Muxing addMp3MuxingToEncoding(Encoding encoding, MP3Muxing muxing) throws BitmovinApiException, UnirestException, IOException, URISyntaxException
229+
{
230+
String newUrl = ApiUrls.mp3Muxings.replace("{encoding_id}", encoding.getId());
231+
return RestClient.post(this.headers, newUrl, muxing);
232+
}
226233
}
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
package com.bitmovin.api.examples;
2+
3+
import com.bitmovin.api.BitmovinApi;
4+
import com.bitmovin.api.encoding.AclEntry;
5+
import com.bitmovin.api.encoding.AclPermission;
6+
import com.bitmovin.api.encoding.EncodingOutput;
7+
import com.bitmovin.api.encoding.InputStream;
8+
import com.bitmovin.api.encoding.codecConfigurations.MP3AudioConfig;
9+
import com.bitmovin.api.encoding.encodings.Encoding;
10+
import com.bitmovin.api.encoding.encodings.muxing.MP3Muxing;
11+
import com.bitmovin.api.encoding.encodings.muxing.MuxingStream;
12+
import com.bitmovin.api.encoding.encodings.streams.Stream;
13+
import com.bitmovin.api.encoding.enums.CloudRegion;
14+
import com.bitmovin.api.encoding.enums.StreamSelectionMode;
15+
import com.bitmovin.api.encoding.inputs.HttpsInput;
16+
import com.bitmovin.api.encoding.outputs.Output;
17+
import com.bitmovin.api.encoding.outputs.S3Output;
18+
import com.bitmovin.api.encoding.status.Task;
19+
import com.bitmovin.api.enums.Status;
20+
import com.bitmovin.api.exceptions.BitmovinApiException;
21+
import com.bitmovin.api.http.RestException;
22+
import com.mashape.unirest.http.exceptions.UnirestException;
23+
import org.junit.Test;
24+
25+
import java.io.IOException;
26+
import java.net.URISyntaxException;
27+
import java.util.ArrayList;
28+
import java.util.Collections;
29+
import java.util.Date;
30+
31+
public class CreateEncodingWithMp3Muxing
32+
{
33+
private static String ApiKey = "<INSERT_YOUR_APIKEY>";
34+
35+
private static CloudRegion cloudRegion = CloudRegion.AWS_EU_WEST_1;
36+
private static String HTTPS_INPUT_HOST = "<INSERT_YOUR_HTTP_HOST>"; // ex.: storage.googleapis.com/
37+
private static String HTTPS_INPUT_PATH = "<INSERT_YOUR_PATH_TO_INPUT_FILE>";
38+
39+
private static String S3_OUTPUT_ACCESSKEY = "<INSERT_YOUR_ACCESSKEY>";
40+
private static String S3_OUTPUT_SECRET_KEY = "<INSERT_YOUR_SECRETKEY>";
41+
private static String S3_OUTPUT_BUCKET_NAME = "BUCKET_NAME";
42+
private static String OUTPUT_BASE_PATH = "path/to/your/outputs/" + new Date().getTime();
43+
44+
private static BitmovinApi bitmovinApi;
45+
46+
@Test
47+
public void testEncodingWithMP3Muxing() throws IOException, BitmovinApiException, UnirestException, URISyntaxException, RestException, InterruptedException
48+
{
49+
bitmovinApi = new BitmovinApi(ApiKey);
50+
51+
Encoding encoding = new Encoding();
52+
encoding.setName("Encoding Java MP3 Muxing");
53+
encoding.setCloudRegion(cloudRegion);
54+
encoding = bitmovinApi.encoding.create(encoding);
55+
56+
HttpsInput input = new HttpsInput();
57+
input.setHost(HTTPS_INPUT_HOST);
58+
input = bitmovinApi.input.https.create(input);
59+
60+
S3Output output = new S3Output();
61+
output.setAccessKey(S3_OUTPUT_ACCESSKEY);
62+
output.setSecretKey(S3_OUTPUT_SECRET_KEY);
63+
output.setBucketName(S3_OUTPUT_BUCKET_NAME);
64+
output = bitmovinApi.output.s3.create(output);
65+
66+
MP3AudioConfig mp3AudioConfig = new MP3AudioConfig();
67+
mp3AudioConfig.setBitrate(128000L);
68+
mp3AudioConfig.setRate(48000f);
69+
mp3AudioConfig = bitmovinApi.configuration.audioMP3.create(mp3AudioConfig);
70+
71+
InputStream inputStreamAudio = new InputStream();
72+
inputStreamAudio.setInputPath(HTTPS_INPUT_PATH);
73+
inputStreamAudio.setInputId(input.getId());
74+
inputStreamAudio.setSelectionMode(StreamSelectionMode.AUDIO_RELATIVE);
75+
inputStreamAudio.setPosition(0);
76+
77+
Stream audioStream = new Stream();
78+
audioStream.setCodecConfigId(mp3AudioConfig.getId());
79+
audioStream.setInputStreams(Collections.singleton(inputStreamAudio));
80+
audioStream = bitmovinApi.encoding.stream.addStream(encoding, audioStream);
81+
82+
this.createMp3Muxing(encoding, output, audioStream, OUTPUT_BASE_PATH, "myMp3.mp3", AclPermission.PUBLIC_READ);
83+
84+
System.out.println(String.format("Starting Encoding with id %s", encoding.getId()));
85+
bitmovinApi.encoding.start(encoding);
86+
System.out.println("Waiting for Encoding to finish...");
87+
88+
Task status = bitmovinApi.encoding.getStatus(encoding);
89+
90+
while (status.getStatus() != Status.FINISHED && status.getStatus() != Status.ERROR)
91+
{
92+
status = bitmovinApi.encoding.getStatus(encoding);
93+
Thread.sleep(2500);
94+
}
95+
96+
System.out.println(String.format("Encoding finished with status %s", status.getStatus().toString()));
97+
98+
if (status.getStatus() != Status.FINISHED)
99+
{
100+
System.out.println("Encoding has status error ... can not create manifest");
101+
}
102+
103+
}
104+
105+
private EncodingOutput createEncodingOutput(Output output, String outputPath, AclPermission defaultAclPermission)
106+
{
107+
EncodingOutput encodingOutput = new EncodingOutput();
108+
encodingOutput.setOutputPath(outputPath);
109+
encodingOutput.setOutputId(output.getId());
110+
111+
if (output.getAcl() != null && output.getAcl().size() > 0)
112+
{
113+
encodingOutput.setAcl(output.getAcl());
114+
}
115+
else
116+
{
117+
ArrayList<AclEntry> aclEntries = new ArrayList<>();
118+
aclEntries.add(new AclEntry(defaultAclPermission));
119+
encodingOutput.setAcl(aclEntries);
120+
}
121+
122+
return encodingOutput;
123+
}
124+
125+
private MP3Muxing createMp3Muxing(Encoding encoding, Output output, Stream stream, String outputPath, String filename, AclPermission aclPermission) throws URISyntaxException, BitmovinApiException, UnirestException, IOException
126+
{
127+
EncodingOutput encodingOutput = this.createEncodingOutput(output, outputPath, aclPermission);
128+
129+
MP3Muxing muxing = new MP3Muxing();
130+
muxing.addOutput(encodingOutput);
131+
muxing.setFilename(filename);
132+
133+
MuxingStream muxingStream = new MuxingStream();
134+
muxingStream.setStreamId(stream.getId());
135+
136+
muxing.addStream(muxingStream);
137+
muxing = bitmovinApi.encoding.muxing.addMp3MuxingToEncoding(encoding, muxing);
138+
return muxing;
139+
}
140+
}

src/test/java/com/bitmovin/api/examples/analytics/RetrieveAndUpdateAnalyticsLicense.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.bitmovin.api.BitmovinApi;
44
import com.bitmovin.api.analytics.license.AnalyticsLicense;
55
import com.bitmovin.api.analytics.license.AnalyticsLicenseDomain;
6+
import org.junit.Assert;
67
import org.junit.Before;
78
import org.junit.Test;
89

@@ -11,9 +12,7 @@
1112

1213
import static org.hamcrest.CoreMatchers.*;
1314
import static org.hamcrest.MatcherAssert.assertThat;
14-
import static org.hamcrest.Matchers.contains;
1515
import static org.hamcrest.collection.IsEmptyCollection.empty;
16-
import static org.hamcrest.beans.HasPropertyWithValue.hasProperty;
1716

1817
public class RetrieveAndUpdateAnalyticsLicense
1918
{
@@ -56,12 +55,22 @@ public void testAddAndDeleteDomain() throws Exception
5655
List<AnalyticsLicenseDomain> domains = bitmovinApi.analytics.licenses.getAnalyticsLicense(analyticsLicenseId).getDomains();
5756

5857
assertThat(domains, is(not(empty())));
59-
assertThat(domains, hasItem(hasProperty("url", is(equalTo(newDomainUrl)))));
58+
boolean foundDomain = false;
59+
for (AnalyticsLicenseDomain d: domains)
60+
if (d.getUrl().equals(newDomainUrl))
61+
foundDomain = true;
62+
63+
Assert.assertTrue(foundDomain);
6064

6165
bitmovinApi.analytics.domains.deleteDomain(analyticsLicense, domain);
6266
domains = bitmovinApi.analytics.licenses.getAnalyticsLicense(analyticsLicenseId).getDomains();
6367

64-
assertThat(domains, not(hasItem(hasProperty("url", is(newDomainUrl)))));
68+
foundDomain = false;
69+
for (AnalyticsLicenseDomain d: domains)
70+
if (d.getUrl().equals(newDomainUrl))
71+
foundDomain = true;
72+
73+
Assert.assertFalse(foundDomain);
6574
}
6675

6776
private void printLicenseDetails(AnalyticsLicense license)

0 commit comments

Comments
 (0)