[object Object] Icon

Encoding
Learn how to create, start, manage and modify Encodings

[object Object] Icon

Player
Learn how to create, start, manage and modify Players

[object Object] Icon

Analytics
Learn how to create, start, manage and modify Analyticss

Docs Home
User shortcuts for search
Focus by pressing f
Hide results by pressing Esc
Navigate via   keys

Wed Oct 16 2019

Can I create progressive MOV / MP4 / TS outputs as well?

Yes. Generating progressive outputs with the Bitmovin Encoding API is possible as well, and can simply be performed by using the according progressive MP4 / MOV / TS muxing type, instead of fMP4/TS muxings that are typically used for generating HLS or MPEG-DASH content. The main difference is, that instead of providing one stream to the muxing, you provide two - a video and a audio stream. You can add more than one as well.

HINT: While creating MP4 outputs with multiple audio tracks with our service is possible as well, common web browsers don't support it to select a specific audio track, and therefore only play the first one available.

Open API SDK for Java example to create progressive muxings:

1HttpInput input = createHttpInput(configProvider.getHttpInputHost());
2String inputFilePath = configProvider.getHttpInputFilePath();
3
4Output output =
5 createS3Output(
6 configProvider.getS3OutputBucketName(),
7 configProvider.getS3OutputAccessKey(),
8 configProvider.getS3OutputSecretKey());
9
10// Add an H.264 video stream to the encoding
11H264VideoConfiguration h264Config = createH264VideoConfig();
12Stream h264VideoStream = createStream(encoding, input, inputFilePath, h264Config);
13
14// Create an MP4 muxing with the H.264 and AAC streams
15createMp4Muxing(
16 encoding,
17 output,
18 "mp4-h264-aac",
19 Arrays.asList(h264VideoStream, aacAudioStream),
20 "video.mp4");
21
22// Create a progressive TS muxing with the H.264 and AAC streams
23createProgressiveTsMuxing(
24 encoding,
25 output,
26 "progressivets-h264-aac",
27 Arrays.asList(h264VideoStream, aacAudioStream),
28 "video.ts");
29...

createMp4Muxing() method: (Example)

1private static Mp4Muxing createMp4Muxing(
2 Encoding encoding, Output output, String outputPath, List<Stream> streams, String fileName)
3 throws BitmovinException {
4 Mp4Muxing muxing = new Mp4Muxing();
5 muxing.addOutputsItem(buildEncodingOutput(output, outputPath));
6 muxing.setFilename(fileName);
7
8 for (Stream stream : streams) {
9 MuxingStream muxingStream = new MuxingStream();
10 muxingStream.setStreamId(stream.getId());
11 muxing.addStreamsItem(muxingStream);
12 }
13
14 return bitmovinApi.encoding.encodings.muxings.mp4.create(encoding.getId(), muxing);
15 }

createProgressiveTsMuxing() method: (Example)

1private static ProgressiveTsMuxing createProgressiveTsMuxing(
2 Encoding encoding, Output output, String outputPath, List<Stream> streams, String fileName)
3 throws BitmovinException {
4 ProgressiveTsMuxing muxing = new ProgressiveTsMuxing();
5 muxing.addOutputsItem(buildEncodingOutput(output, outputPath));
6 muxing.setFilename(fileName);
7
8 for (Stream stream : streams) {
9 MuxingStream muxingStream = new MuxingStream();
10 muxingStream.setStreamId(stream.getId());
11 muxing.addStreamsItem(muxingStream);
12 }
13
14 return bitmovinApi.encoding.encodings.muxings.progressiveTs.create(encoding.getId(), muxing);
15}

See the full version for this and many other examples our Public Github Example Repository for each of our Open API SDK's.

Give us feedback